1
1
"""
2
- Module catalogues
3
- =================
4
- This module retrieves data from ELODIE/SOPHIE archive.
2
+ Module core
3
+ ===========
4
+ This module retrieves data from ELODIE/SOPHIE archive. It has two classes,
5
+ Elodie and Sophie, both could be constructed by passing an object name.
6
+
7
+ Help on Elodie FITS files:
8
+ http://atlas.obs-hp.fr/elodie/500/download.html
9
+
10
+ Help on Sophie FITS files:
11
+ http://atlas.obs-hp.fr/sophie/spec_help.html
5
12
"""
6
13
7
14
import numpy as np
10
17
from urllib .request import urlretrieve
11
18
from .columns import desc_el_ccf , desc_el_spec , desc_so_ccf , desc_so_spec
12
19
13
- def _get_df (base , col_dc , int_cols , float_cols ):
14
- url = base + str (list (col_dc .keys ())).replace ("'" , "" ).replace (" " , "" )[1 :- 1 ]
20
+ def _get_df (url_ , col_dc , int_cols , float_cols ):
21
+ url = url_ + str (list (col_dc .keys ())).replace ("'" , "" ).replace (" " , "" )[1 :- 1 ]
15
22
req = requests .request ('GET' , url )
16
23
r = req .content .decode ('utf-8' )
17
24
lines = r .splitlines ()
@@ -41,30 +48,31 @@ def __init__(self, obj):
41
48
spect : Spectra table
42
49
"""
43
50
self .obj = obj
51
+ self .BASE = 'http://atlas.obs-hp.fr/elodie/fE.cgi?'
44
52
45
53
def ccf (self ):
46
54
"""
47
55
Elodie Cross-Correlation Functions table
48
56
"""
49
- BASE = f'http://atlas.obs-hp.fr/elodie/fE.cgi? n=e501&o={ self .obj } &ob=jdb&a=csv&&d='
57
+ url_ = self . BASE + f' n=e501&o={ self .obj } &ob=jdb&a=csv&&d='
50
58
int_cols = ['datenuit' ]
51
59
float_cols = ['jdb' ,'exptim' ,'sn' ,'vfit' ,'sigfit' ,'ampfit' ,'ctefit' ]
52
- url , df = _get_df (BASE , desc_el_ccf , int_cols , float_cols )
60
+ url , df = _get_df (url_ , desc_el_ccf , int_cols , float_cols )
53
61
print (url .replace ('a=csv' , 'a=htab' ))
54
62
return df
55
63
56
64
def spec (self ):
57
65
"""
58
66
Elodie Spectra table
59
67
"""
60
- BASE = f'http://atlas.obs-hp.fr/elodie/fE.cgi? o={ self .obj } &a=csv&d='
68
+ url_ = self . BASE + f' o={ self .obj } &a=csv&d='
61
69
int_cols = ['dataset' ]
62
70
float_cols = ['exptime' ,'sn' ,'vfit' ,'sigfit' ,'ampfit' ]
63
- url , df = _get_df (BASE , desc_el_spec , int_cols , float_cols )
71
+ url , df = _get_df (url_ , desc_el_spec , int_cols , float_cols )
64
72
print (url .replace ('a=csv' , 'a=htab' ))
65
73
return df
66
74
67
- def get_spec (dataset , imanum , s1d = True , path = None ):
75
+ def get_spec (self , dataset , imanum , path = None , s1d = True ):
68
76
BASE = 'http://atlas.obs-hp.fr/elodie/E.cgi?'
69
77
s1 = '&z=s1d' if s1d else ''
70
78
PAR1 = f'&c=i&o=elodie:{ dataset } /{ imanum } '
@@ -90,32 +98,33 @@ def __init__(self, obj):
90
98
spect : Spectra table
91
99
"""
92
100
self .obj = obj
101
+ self .BASE = 'http://atlas.obs-hp.fr/sophie/sophie.cgi?'
93
102
94
103
def ccf (self ):
95
104
"""
96
105
Sophie Cross-Correlation Functions table
97
106
"""
98
- BASE = f'http://atlas.obs-hp.fr/sophie/sophie.cgi? n=sophiecc&ob=bjd&a=csv&o={ self .obj } &d='
107
+ url_ = self . BASE + f' n=sophiecc&ob=bjd&a=csv&o={ self .obj } &d='
99
108
int_cols = ['seq' ,'sseq' ,'slen' ,'nexp' ,'expno' ,'ccf_offline' ,'maxcpp' ,'lines' ]
100
109
float_cols = ['bjd' ,'rv' ,'err' ,'dvrms' ,'fwhm' ,'span' ,'contrast' ,'sn26' ]
101
- url , df = _get_df (BASE , desc_so_ccf , int_cols , float_cols )
110
+ url , df = _get_df (url_ , desc_so_ccf , int_cols , float_cols )
102
111
print (url .replace ('a=csv' , 'a=htab' ))
103
112
return df
104
113
105
114
def spec (self ):
106
115
"""
107
116
Sophie Spectra table
108
117
"""
109
- BASE = f'http://atlas.obs-hp.fr/sophie/sophie.cgi? n=sophie&a=csv&ob=bjd&c=o&o={ self .obj } &d='
118
+ url_ = self . BASE + f' n=sophie&a=csv&ob=bjd&c=o&o={ self .obj } &d='
110
119
int_cols = ['seq' ,'sseq' ,'slen' ,'nexp' ,'expno' ]
111
120
float_cols = ['bjd' ,'sn26' ,'exptime' ]
112
- url , df = _get_df (BASE , desc_so_spec , int_cols , float_cols )
121
+ url , df = _get_df (url_ , desc_so_spec , int_cols , float_cols )
113
122
print (url .replace ('a=csv' , 'a=htab' ))
114
123
return df
115
124
116
- def get_spec (seq , path = None ):
117
- url = f'http://atlas.obs-hp.fr/sophie/sophie.cgi?c=i&a=mime:application/fits&o=sophie:[s1d,{ seq } ]'
118
- filename = f'sophie_[s1d,{ seq } ].fits'
125
+ def get_spec (self , seq , path = None , s1d = True ):
126
+ s1d = 's1d' if s1d == True else 'e2ds'
127
+ url = self .BASE + f'c=i&a=mime:application/fits&o=sophie:[{ s1d } ,{ seq } ]'
128
+ filename = f'sophie_[{ s1d } ,{ seq } ].fits'
119
129
path = '' if path is None else path
120
130
urlretrieve (url , path + filename )
121
-
0 commit comments