-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathsimbad.py
39 lines (33 loc) · 1.11 KB
/
simbad.py
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
def simbad( source_name=None, verbose=False ):
"""Gets (radeg,dedeg) for a given SIMBAD resolvable name
(radedeg,dedeg) = simbad_coord( source_name )
output = tuple of (RA,DEC)"""
import urllib.request
#from urllib2 import urlopen,Request,quote
from xml.dom.minidom import parse
from numpy import float
if source_name==None:
print("Missing source name....")
return None
try:
ra,de = source_name.split()
ra = float(ra)
de = float(de)
return (float(ra),float(de))
except:
#cds. server is about 15% faster in response...
#url ='http://cdsweb.u-strasbg.fr/cgi-bin/nph-sesame/-ox?'
url ='http://cds.u-strasbg.fr/cgi-bin/nph-sesame/-ox?'
url += quote(source_name)
if verbose: print(url)
#res = urlopen(Request( url ))
request = urllib.request.Request(url)
response = urllib.request.urlopen(request)
xml = parse(response)
response.close()
if xml.getElementsByTagName('jradeg')==[]:
return (None,None)
else:
jradeg = xml.getElementsByTagName('jradeg')[0].childNodes[0].data
jdedeg = xml.getElementsByTagName('jdedeg')[0].childNodes[0].data
return (float(jradeg),float(jdedeg))