@@ -35,10 +35,10 @@ def _read_model_BHAC2015(path, fname, instrument):
3535 Returns
3636 -------
3737 masses : vector
38- Numpy vector with unique masses
38+ Numpy vector with unique masses, in MJup
3939
4040 ages : vector
41- Numpy vector with unique ages
41+ Numpy vector with unique ages, in Myr
4242
4343 values : array
4444 Array with names of parameters
@@ -117,10 +117,10 @@ def _read_model_PHOENIX_websim(path, fname, instrument):
117117 Returns
118118 -------
119119 masses : vector
120- Numpy vector with unique masses
120+ Numpy vector with unique masses, in MJup
121121
122122 ages : vector
123- Numpy vector with unique ages
123+ Numpy vector with unique ages, in Myr
124124
125125 values : array
126126 Array with names of parameters
@@ -217,10 +217,10 @@ def _read_model_sonora(path, fname, instrument):
217217 Returns
218218 -------
219219 masses : vector
220- Numpy vector with unique masses
220+ Numpy vector with unique masses, in MJup
221221
222222 ages : vector
223- Numpy vector with unique ages
223+ Numpy vector with unique ages, in Myr
224224
225225 values : array
226226 Array with names of parameters
@@ -265,10 +265,58 @@ def _read_model_bex(path, fname, instrument):
265265 Returns
266266 -------
267267 masses : vector
268- Numpy vector with unique masses
268+ Numpy vector with unique masses, in MJup
269269
270270 ages : vector
271- Numpy vector with unique ages
271+ Numpy vector with unique ages, in Myr
272+
273+ values : array
274+ Array with names of parameters
275+
276+ data : array
277+ Numpy data array
278+ '''
279+
280+ df = pd .read_csv (path / fname , index_col = (0 , 1 ))
281+
282+ masses = np .sort (np .unique (df .index .get_level_values (0 ))) # MJup
283+ ages = np .sort (np .unique (df .index .get_level_values (1 ))) # yr
284+ values = df .columns
285+
286+ data = np .zeros ((len (masses ), len (ages ), len (values )))
287+ for iv , val in enumerate (values ):
288+ for im , mass in enumerate (masses ):
289+ tmp = df .loc [(mass , slice (None )), val ]
290+ data [im , :, iv ] = tmp
291+
292+ # converts ages in Myr
293+ ages = ages / 1e6
294+
295+ return masses , ages , values , data
296+
297+
298+ def _read_model_atmo (path , fname , instrument ):
299+ '''
300+ (Private) Read the ATMO models
301+
302+ Parameters
303+ ----------
304+ path : str
305+ Full path to the directory containing the model files
306+
307+ fname : str
308+ Full model file name
309+
310+ instrument : str
311+ Name of the instrument (or observatory) for the file
312+
313+ Returns
314+ -------
315+ masses : vector
316+ Numpy vector with unique masses, in MJup
317+
318+ ages : vector
319+ Numpy vector with unique ages, in Myr
272320
273321 values : array
274322 Array with names of parameters
@@ -307,10 +355,10 @@ def _reshape_data(dataframe):
307355 Returns
308356 -------
309357 masses : vector
310- Numpy vector with unique masses
358+ Numpy vector with unique masses, in MJup
311359
312360 ages : vector
313- Numpy vector with unique ages
361+ Numpy vector with unique ages, in Myr
314362
315363 values : array
316364 Array with names of parameters
@@ -587,7 +635,17 @@ def _read_model_data(paths, models, instrument, model):
587635 {'instrument' : 'irdis' , 'name' : 'bex_dusty_coldest' , 'file' : 'bex_ames-dusty_coldest.csv.gz' , 'function' : _read_model_bex },
588636 {'instrument' : 'irdis' , 'name' : 'bex_dusty_warm' , 'file' : 'bex_ames-dusty_warm.csv.gz' , 'function' : _read_model_bex },
589637 {'instrument' : 'irdis' , 'name' : 'bex_dusty_hot' , 'file' : 'bex_ames-dusty_hot.csv.gz' , 'function' : _read_model_bex },
590- {'instrument' : 'irdis' , 'name' : 'bex_dusty_hottest' , 'file' : 'bex_ames-dusty_hottest.csv.gz' , 'function' : _read_model_bex }
638+ {'instrument' : 'irdis' , 'name' : 'bex_dusty_hottest' , 'file' : 'bex_ames-dusty_hottest.csv.gz' , 'function' : _read_model_bex },
639+
640+ {'instrument' : 'mko' , 'name' : 'atmo_ceq' , 'file' : 'ATMO_CEQ_MKO.csv.gz' , 'function' : _read_model_atmo },
641+ {'instrument' : 'mko' , 'name' : 'atmo_neq_strong' , 'file' : 'ATMO_NEQ_strong_MKO.csv.gz' , 'function' : _read_model_atmo },
642+ {'instrument' : 'mko' , 'name' : 'atmo_neq_weak' , 'file' : 'ATMO_NEQ_weak_MKO.csv.gz' , 'function' : _read_model_atmo },
643+ {'instrument' : 'irac' , 'name' : 'atmo_ceq' , 'file' : 'ATMO_CEQ_MKO.csv.gz' , 'function' : _read_model_atmo },
644+ {'instrument' : 'irac' , 'name' : 'atmo_neq_strong' , 'file' : 'ATMO_NEQ_strong_MKO.csv.gz' , 'function' : _read_model_atmo },
645+ {'instrument' : 'irac' , 'name' : 'atmo_neq_weak' , 'file' : 'ATMO_NEQ_weak_MKO.csv.gz' , 'function' : _read_model_atmo },
646+ {'instrument' : 'wise' , 'name' : 'atmo_ceq' , 'file' : 'ATMO_CEQ_MKO.csv.gz' , 'function' : _read_model_atmo },
647+ {'instrument' : 'wise' , 'name' : 'atmo_neq_strong' , 'file' : 'ATMO_NEQ_strong_MKO.csv.gz' , 'function' : _read_model_atmo },
648+ {'instrument' : 'wise' , 'name' : 'atmo_neq_weak' , 'file' : 'ATMO_NEQ_weak_MKO.csv.gz' , 'function' : _read_model_atmo },
591649 ],
592650 'data' : {}
593651}
0 commit comments