/usr/share/gnudatalanguage/astrolib/querysimbad.pro is in gdl-astrolib 2018.02.16+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 | PRO QuerySimbad, name, ra, de, id, Found = found, NED = ned, ERRMSG = errmsg, $
Verbose = verbose, CFA=cfa, Server=server, SILENT=silent, $
Print = print,Vmag=Vmag,Jmag=Jmag,Hmag=Hmag,Kmag=Kmag,parallax=parallax
;+
; NAME:
; QUERYSIMBAD
;
; PURPOSE:
; Query the SIMBAD/NED/Vizier astronomical name resolver to obtain coordinates
;
; EXPLANATION:
; Uses the IDLnetURL object to query either the SIMBAD or NED nameserver
; over the Web to return J2000 coordinates. By default, QuerySimbad
; first queries the Simbad database, then (if no match found) the NED
; database, and then the Vizier database.
;
; For details on the SIMBAD service, see http://simbad.u-strasbg.fr/Simbad
; and for the NED service, see http://ned.ipac.caltech.edu/
;
; CALLING SEQUENCE:
; QuerySimbad, name, ra, dec, [ id, Found=, /NED, /CFA, ERRMSG=, /VERBOSE]
; /PRINT, Vmag=V, Jmag=J, Hmag=H, Kmag=Kmag, parallax=parallax
;
; INPUTS:
; name - a scalar string containing the target name in SIMBAD (or NED)
; nomenclature. For SIMBAD details see
; http://vizier.u-strasbg.fr/cgi-bin/Dic-Simbad .
;
; OUTPUTS:
; ra - Right ascension of the target in J2000.0 in *degrees*, scalar
; dec - declination of the target in degrees, scalar
;
; OPTIONAL INPUT KEYWORD:
; /CFA - if set, then use the Simbad server at the Center for Astrophysics
; rather than the default server in Strasbourg, France.
; ERRMSG = If defined and passed, then any error messages will be
; returned to the user in this parameter rather than
; depending on the MESSAGE routine in IDL. If no errors are
; encountered, then a null string is returned.
; /NED - if set, then only the nameserver of the NASA Extragalactic database
; is used to resolve the name and return coordinates. Note that
; /NED cannot be used with Galactic objects
; /VERBOSE - If set, then the HTTP-GET command is displayed
; /PRINT - if set, then output coordinates are displayed at the terminal
; By default, the coordinates are displayed if no output parameters
; are supplied to QUERYSIMBAD
; /SILENT - If set, then don't print warnings if multiple SIMBAD objects
; correspond to the supplied name.
; OPTIONAL OUTPUT:
; id - the primary SIMBAD (or NED) ID of the target, scalar string
; As of June 2009, a more reliable ID seems to be found when using
; CFA (/CFA) server.
;
; OPTIONAL KEYWORD OUTPUTS:
; found - set to 1 if the translation was successful, or to 0 if the
; the object name could not be translated by SIMBAD or NED
; Errmsg - if supplied, then any error messages are returned in this
; keyword, rather than being printed at the terminal. May be either
; a scalar or array.
; Server - Character indicating which server was actually used to resolve
; the object, 'S'imbad, 'N'ed or 'V'izier
; Vmag - supply to receive the SIMBAD V magnitude
; Jmag - supply to receive the SIMBAD J magntiude
; Hmag - supply to receive the SIMBAD H magnitude
; Kmag - supply to receive the SIMBAD K magnitude
; Parallax - supply to receive the SIMBAD parallax in milliarcseconds
;
; EXAMPLES:
; (1) Display the J2000 coordinates for the ultracompact HII region
; G45.45+0.06
;
; IDL> QuerySimbad,'GAL045.45+00.06'
; ===>19 14 21.30 +11 09 13.0
; PROCEDURES USED:
; REPSTR(), ADSTRING()
; NOTES:
; The actual query is made to the Sesame name resolver
; ( see http://cdsweb.u-strasbg.fr/doc/sesame.htx ). The Sesame
; resolver first searches the Simbad name resolver, then NED and then
; Vizier.
; MODIFICATION HISTORY:
; Written by M. Feldt, Heidelberg, Oct 2001 <mfeldt@mpia.de>
; Added option to use NED server, better parsing of SIMBAD names such as
; IRAS F10190+5349 W. Landsman March 2003
; Turn off extended name search for NED server, fix negative declination
; with /NED W. Landsman April 2003
; Use Simbad Sesame sever, add /Verbose, /CADC keywords
; B. Stecklum, TLS Tautenburg/ W. Landsman, Feb 2007
; Update NED query to account for new IPAC format, A. Barth March 2007
; Update NED query to account for another new IPAC format, A. Barth
; July 2007
; Update message when NED does not find object W.L. October 2008
; Remove CADC keyword, add CFA keyword, warning if more than two
; matches W.L. November 2008
; Make NED queries through the Sesame server, add Server output
; keyword W.L. June 2009
; Don't get primary name if user didn't ask for it W.L. Aug 2009
; Added /SILENT keyword W.L. Oct 2009
; Added /PRINT keyword W.L. Oct 2011
; Added ability to get V, J, H, and K magnitudes as well as
; a parallax - jswift, Jan 2014
; Use IDLnetURL instead of WebGet() W.L. Oct. 2014
;-
compile_opt idl2
if N_params() LT 1 then begin
print,'Syntax - QuerySimbad, name, ra, dec, [ id, ]'
print,' Found=, /CFA, /NED, ERRMSG=, /VERBOSE]'
print,' Input - object name, scalar string'
print,' Output - Ra, dec of object (degrees)'
return
endif
Catch, theError
IF theError NE 0 THEN BEGIN
Catch,/CANCEL
void = cgErrorMsg(/Quiet)
RETURN
ENDIF
;;
fluxes = arg_present(Vmag) || arg_present(Jmag) || arg_present(Hmag) $
|| arg_present(Kmag)
printerr = ~arg_present(errmsg)
if ~printerr then errmsg = ''
host = keyword_set(cfa) ? 'vizier.cfa.harvard.edu' : $
'cdsweb.u-strasbg.fr'
path = "/viz-bin/nph-sesame/-oI
if fluxes then path+='F'
if keyword_set(NED) then path+='/N' else path+='/SNV'
queryURL = repstr(strcompress(name,/remove),'+','%2B')
;;
if keyword_set(verbose) then message,/INF,'http://' + host + path + '?' + queryURL
oURL = obj_new('IDLnetURL')
oURL-> SetProperty, URL_Scheme = 'http',URL_Host=host,URL_Query=QueryURL, $
URL_PATH=path
result = oURL-> GET(/STRING_ARRAY)
found = 0
;;
if arg_present(server) then $
server = strmid(result[1],2,1)
; look for J2000 coords
prefix = strmid(Result,0,5)
idx=where(strmid(prefix,0,3) EQ '%J ',cnt)
if cnt GE 1 then begin
if cnt GT 1 then begin
if ~keyword_set(SILENT) then $
message,/INF,'Warning - More than one match found for name ' + name
idx = idx[0]
endif
found=1
ra = 0.0d & de = 0.0d
reads,strmid(Result[idx],2),ra,de
if N_params() GT 3 then begin
idx2= where(strpos(Result, '%I.0 ') ne -1,cnt)
if cnt GT 0 then id = strtrim(strmid(Result[idx2],4),2) else $
if ~keyword_set(SILENT) then $
message,'Warning - could not determine primary ID',/inf
endif
; Get V mag if present
vi = where(strpos(Result, '%M.V ') ne -1,vcnt)
if vcnt GE 1 then reads,strmid(Result[vi],4),vmag
; Get J mag if present
ji = where(strpos(Result, '%M.J ') ne -1,jcnt)
if jcnt GE 1 then reads,strmid(Result[ji],4),jmag
; Get H mag if present
hi = where(strpos(Result, '%M.H ') ne -1,hcnt)
if hcnt GE 1 then reads,strmid(Result[hi],4),hmag
; Get K mag if present
ki = where(strpos(Result, '%M.K ') ne -1,kcnt)
if kcnt GE 1 then reads,strmid(Result[ki],4),kmag
; Get parallax if present
plxi = where(strpos(Result, '%X ') ne -1,plxcnt)
if plxcnt GE 1 then reads,strmid(Result[plxi],2),parallax
ENDIF ELSE BEGIN
errmsg = ['No objects returned found. The server answered:' , $
strjoin(result)]
if printerr then begin
message, errmsg[0], /info
message,strjoin(result),/info
endif
ENDELSE
if found GT 0 && ((N_params() LT 2) || keyword_set(print)) then $
print,adstring(ra,de,1)
return
END
|