Skip to content

Commit

Permalink
Merge f3070b1 into 1c5e488
Browse files Browse the repository at this point in the history
  • Loading branch information
Tomas Stolker committed Apr 30, 2020
2 parents 1c5e488 + f3070b1 commit aa2a10e
Show file tree
Hide file tree
Showing 26 changed files with 423 additions and 306 deletions.
1 change: 1 addition & 0 deletions requirements.txt
Expand Up @@ -10,4 +10,5 @@ pymultinest ~= 2.9
scipy ~= 1.4
spectres ~= 2.1
tqdm ~= 4.45
typeguard ~= 2.7
xlrd ~= 1.2
1 change: 1 addition & 0 deletions species/analysis/fit_model.py
Expand Up @@ -11,6 +11,7 @@
import emcee
import numpy as np

# installation of MultiNest is not possible on readthedocs
try:
import pymultinest
except:
Expand Down
47 changes: 16 additions & 31 deletions species/analysis/photometry.py
Expand Up @@ -131,19 +131,6 @@ def spectrum_to_flux(self,
raise ValueError('Calculation of the mean flux is not possible because the '
'wavelength array is empty.')

indices = np.where((wavelength > self.wavel_range[0]) &
(wavelength < self.wavel_range[1]))[0]

if indices.size == 1:
raise ValueError('Calculating synthetic photometry requires more than one '
'wavelength point.')

wavelength = wavelength[indices]
flux = flux[indices]

if error is not None:
error = error[indices]

indices = np.where((self.wavel_range[0] <= wavelength) &
(wavelength <= self.wavel_range[1]))[0]

Expand All @@ -160,7 +147,7 @@ def spectrum_to_flux(self,

warnings.warn(f'The filter profile of {self.filter_name} '
f'({self.wavel_range[0]:.4f}-{self.wavel_range[1]:.4f}) extends '
f' beyond the wavelength range of the spectrum ({wavelength[0]:.4f} '
f'beyond the wavelength range of the spectrum ({wavelength[0]:.4f} '
f'-{wavelength[-1]:.4f}). The flux is set to NaN. Setting the '
f'\'threshold\' parameter will loosen the wavelength constraints.')

Expand Down Expand Up @@ -202,21 +189,19 @@ def spectrum_to_flux(self,
syn_flux = integral1/integral2

if error is not None and not np.any(np.isnan(error)):
error_flux = np.zeros(200)
phot_random = np.zeros(200)

for i in range(200):
spec_random = flux+np.random.normal(loc=0.,
scale=1.,
size=wavelength.shape[0])*error

spec_tmp = self.spectrum_to_flux(wavelength,
spec_random,
error=None,
threshold=threshold)[0]
spec_random = flux + np.random.normal(loc=0.,
scale=1.,
size=wavelength.shape[0])*error

error_flux[i] = spec_tmp
phot_random[i] = self.spectrum_to_flux(wavelength,
spec_random,
error=None,
threshold=threshold)[0]

error_flux = np.std(error_flux)
error_flux = np.std(phot_random)

else:
error_flux = None
Expand Down Expand Up @@ -269,21 +254,21 @@ def spectrum_to_magnitude(self,
app_mag = self.vega_mag - 2.5*math.log10(syn_flux[0]/zp_flux)

if error is not None and not np.any(np.isnan(error)):
error_app_mag = np.zeros(200)
mag_random = np.zeros(200)

for i in range(200):
spec_random = flux+np.random.normal(loc=0.,
scale=1.,
size=wavelength.shape[0])*error
spec_random = flux + np.random.normal(loc=0.,
scale=1.,
size=wavelength.shape[0])*error

flux_random = self.spectrum_to_flux(wavelength,
spec_random,
error=None,
threshold=threshold)

error_app_mag[i] = self.vega_mag - 2.5*np.log10(flux_random[0]/zp_flux)
mag_random[i] = self.vega_mag - 2.5*np.log10(flux_random[0]/zp_flux)

error_app_mag = np.std(error_app_mag)
error_app_mag = np.std(mag_random)

else:
error_app_mag = None
Expand Down
21 changes: 14 additions & 7 deletions species/core/box.py
Expand Up @@ -60,13 +60,20 @@ def create_box(boxtype,

elif boxtype == 'photometry':
box = PhotometryBox()
box.name = kwargs['name']
box.sptype = kwargs['sptype']
box.wavelength = kwargs['wavelength']
box.flux = kwargs['flux']
box.app_mag = kwargs['app_mag']
box.abs_mag = kwargs['abs_mag']
box.filter_name = kwargs['filter_name']
if 'name' in kwargs:
box.name = kwargs['name']
if 'sptype' in kwargs:
box.sptype = kwargs['sptype']
if 'wavelength' in kwargs:
box.wavelength = kwargs['wavelength']
if 'flux' in kwargs:
box.flux = kwargs['flux']
if 'app_mag' in kwargs:
box.app_mag = kwargs['app_mag']
if 'abs_mag' in kwargs:
box.abs_mag = kwargs['abs_mag']
if 'filter_name' in kwargs:
box.filter_name = kwargs['filter_name']

elif boxtype == 'residuals':
box = ResidualsBox()
Expand Down
17 changes: 4 additions & 13 deletions species/data/ames_cond.py
Expand Up @@ -3,6 +3,7 @@
"""

import os
import math
import gzip
import tarfile
import warnings
Expand All @@ -11,7 +12,7 @@
import spectres
import numpy as np

from species.util import data_util
from species.util import data_util, read_util


def add_ames_cond(input_path,
Expand Down Expand Up @@ -73,12 +74,7 @@ def add_ames_cond(input_path,
logg = []
flux = []

wavelength = [wavel_range[0]]

while wavelength[-1] <= wavel_range[1]:
wavelength.append(wavelength[-1] + wavelength[-1]/(2.*spec_res))

wavelength = np.asarray(wavelength[:-1])
wavelength = read_util.create_wavelengths(wavel_range, spec_res)

for _, _, file_list in os.walk(data_folder):
for filename in sorted(file_list):
Expand Down Expand Up @@ -168,12 +164,7 @@ def add_ames_cond(input_path,
logg.append(logg_val)

try:
flux.append(spectres.spectres(wavelength,
data[:, 0],
data[:, 1],
fill=0.,
verbose=False))

flux.append(spectres.spectres(wavelength, data[:, 0], data[:, 1]))
except ValueError:
flux.append(np.zeros(wavelength.shape[0]))

Expand Down
9 changes: 2 additions & 7 deletions species/data/ames_dusty.py
Expand Up @@ -11,7 +11,7 @@
import spectres
import numpy as np

from species.util import data_util
from species.util import data_util, read_util


def add_ames_dusty(input_path,
Expand Down Expand Up @@ -73,12 +73,7 @@ def add_ames_dusty(input_path,
logg = []
flux = []

wavelength = [wavel_range[0]]

while wavelength[-1] <= wavel_range[1]:
wavelength.append(wavelength[-1] + wavelength[-1]/(2.*spec_res))

wavelength = np.asarray(wavelength[:-1])
wavelength = read_util.create_wavelengths(wavel_range, spec_res)

for _, _, file_list in os.walk(data_folder):
for filename in sorted(file_list):
Expand Down
9 changes: 2 additions & 7 deletions species/data/btnextgen.py
Expand Up @@ -11,7 +11,7 @@
import numpy as np
import pandas as pd

from species.util import data_util
from species.util import data_util, read_util


def add_btnextgen(input_path,
Expand Down Expand Up @@ -77,12 +77,7 @@ def add_btnextgen(input_path,
feh = []
flux = []

wavelength = [wavel_range[0]]

while wavelength[-1] <= wavel_range[1]:
wavelength.append(wavelength[-1] + wavelength[-1]/(2.*spec_res))

wavelength = np.asarray(wavelength[:-1])
wavelength = read_util.create_wavelengths(wavel_range, spec_res)

for _, _, file_list in os.walk(data_folder):
for filename in sorted(file_list):
Expand Down
9 changes: 2 additions & 7 deletions species/data/btsettl.py
Expand Up @@ -16,7 +16,7 @@
import spectres
import numpy as np

from species.util import data_util
from species.util import data_util, read_util


def add_btsettl(input_path,
Expand Down Expand Up @@ -76,12 +76,7 @@ def add_btsettl(input_path,
logg = []
flux = []

wavelength = [wavel_range[0]]

while wavelength[-1] <= wavel_range[1]:
wavelength.append(wavelength[-1] + wavelength[-1]/(2.*spec_res))

wavelength = np.asarray(wavelength[:-1])
wavelength = read_util.create_wavelengths(wavel_range, spec_res)

for _, _, file_list in os.walk(data_folder):
for filename in sorted(file_list):
Expand Down
4 changes: 2 additions & 2 deletions species/data/companions.py
Expand Up @@ -102,8 +102,8 @@ def get_data():
'PDS 70 b': {'distance': (113.43, 0.52),
'app_mag': {'Paranal/SPHERE.IRDIS_D_H23_2': (17.94, 0.24), # Keppler et al. 2018
'Paranal/SPHERE.IRDIS_D_H23_3': (17.95, 0.17), # Keppler et al. 2018
'Paranal/SPHERE.IRDIS_D_K12_1': (16.78, 0.31), # Stolker et al. in prep.
'Paranal/SPHERE.IRDIS_D_K12_2': (16.23, 0.32), # Stolker et al. in prep.
'Paranal/SPHERE.IRDIS_D_K12_1': [(16.78, 0.31), (16.68, 0.04)], # Stolker et al. in prep.
'Paranal/SPHERE.IRDIS_D_K12_2': [(16.23, 0.32), (16.35, 0.07)], # Stolker et al. in prep.
'Paranal/NACO.Lp': (14.08, 0.33), # Stolker et al. in prep.
'Paranal/NACO.NB405': (13.91, 0.34), # Stolker et al. in prep.
'Paranal/NACO.Mp': (13.64, 0.22)}}, # Stolker et al. in prep.
Expand Down

0 comments on commit aa2a10e

Please sign in to comment.