Skip to content

Commit 5e45c4c

Browse files
committed
Add support for ATMO-2020 models
1 parent 28c680d commit 5e45c4c

File tree

1 file changed

+69
-11
lines changed

1 file changed

+69
-11
lines changed

vigan/astro/evolution.py

Lines changed: 69 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)