summaryrefslogtreecommitdiffstats
path: root/ds9/library/catcds.tcl
blob: 95b399f0015fd8456ecbef3208aa7658449b51c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#  Copyright (C) 1999-2018
#  Smithsonian Astrophysical Observatory, Cambridge, MA, USA
#  For conditions of distribution and use, see copyright notice in "copyright"

package provide DS9 1.0

proc CATCDS {varname} {
    upvar #0 $varname var
    global $varname
    global pcat

    global debug
    if {$debug(tcl,cat)} {
	puts stderr "CATCDS $varname"
    }

    # go for votable or tsv
    set var(proc,parser) VOTParse

    # url
    set site [CATCDSURL $var(server)]
    set cgidir {viz-bin}
    set script {votable}
    set var(url) "http://$site/$cgidir/$script"
    
    # query
    switch $var(skyformat) {
	degrees {
	    set xx $var(x)
	    set yy $var(y)
	}
	sexagesimal {
	    switch -- $var(sky) {
		fk4 -
		fk5 -
		icrs {set xx [h2d [Sex2H $var(x)]]}
		galactic -
		ecliptic {set xx [Sex2D $var(x)]}
	    }
	    set yy [Sex2D $var(y)]
	}
    }

    if {$yy>0} {
	set yy "+$yy"
    }

    switch -- $var(sky) {
	fk4 {set eq "B1950"}
	fk5 -
	icrs {set eq "J2000"}
	galactic {set eq "Gal"}
	ecliptic {set eq "Ecl"}
    }

    switch -- $var(rformat) {
	degrees {set cr "-c.rd"}
	arcmin {set cr "-c.rm"}
	arcsec {set cr "-c.rs"}
    }

    set rr $var(radius)

    set query [http::formatQuery -source $var(catalog) -c $xx$yy -c.eq $eq $cr $rr -oc.form dec]

    append query "&[http::formatQuery -out.form VOTable]"
    switch -- $var(psky) {
	fk4 {append query "&[http::formatQuery -out.add _RAB,_DEB]"}
	fk5 -
	icrs {append query "&[http::formatQuery -out.add _RAJ,_DEJ]"}
	galactic {append query "&[http::formatQuery -out.add _GLON,_GLAT]"}
	ecliptic {append query "&[http::formatQuery -out.add _ELON,_ELAT]"}
    }

    # options
    if {!$var(allrows)} {
	append query "&-out.max=$var(max)"
    }
    if {$var(allcols)} {
	append query "&-out.all"
    }

    # url?query
    set var(query) $query

    CATLoad $varname
}

proc CATCDSURL {server} {
    switch -- $server {
	france -
	cds {return {vizier.u-strasbg.fr}}
	tokyo -
	japan -
	adac {return {vizier.nao.ac.jp}}
	canada -
	cadc {return {vizier.hia.nrc.ca}}
	uk -
	cambridge {return {vizier.ast.cam.ac.uk}}
	usa -
	cfa -
	harvard -
	sao {return {vizier.cfa.harvard.edu}}
	hawaii -
	ukirt {return {www.ukirt.jach.hawaii.edu}}
	india -
	iucaa {return {vizier.iucaa.in}}
	china -
	bejing {return {vizier.china-vo.org}}
	safrica -
	saao {return {viziersaao.chpc.ac.za}}
	russia -
	inasan {
	    # no longer active
	    return {vizier.u-strasbg.fr}
	}
    }
}

proc CATCDSAck {varname} {
    upvar #0 $varname var
    global $varname

    set msg {Acknowledgments for CDS

This research has made use of the VizieR catalogue access tool, CDS,
Strasbourg, France. VizieR is a joint effort of 
CDS (Centre de Données astronomiques de Strasbourg) and 
ESA-ESRIN (Information Systems Division). 
    }

    SimpleTextDialog ${varname}ack [msgcat::mc {Acknowledgment}] \
	80 10 insert top $msg
}