Skip to content

Commit

Permalink
Merge 71011e2 into ffe5dc9
Browse files Browse the repository at this point in the history
  • Loading branch information
hover2pi committed Dec 21, 2020
2 parents ffe5dc9 + 71011e2 commit 2f99358
Show file tree
Hide file tree
Showing 7 changed files with 218 additions and 19 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Mix-Len Y Z [Fe/H] [a/Fe]
# 1.884 0.2755 1.8757e-02 0.00 0.00
#
# Age = 3.00 Myr, No. Masses = 31
#
# N Mass log(g) log(Teff) log(L/Lo) log(R/Ro)
1.00000000 0.12000000 3.74614299 3.48953604 -1.31747884 -0.11455149
2.00000000 0.13000000 3.75817014 3.49281894 -1.28169391 -0.10323190
3.00000000 0.14000000 3.76665784 3.49584614 -1.24579001 -0.09133728
4.00000000 0.15000000 3.77383835 3.49865761 -1.21162286 -0.07987655
5.00000000 0.16000000 3.78047028 3.50128340 -1.17962906 -0.06912905
6.00000000 0.17000000 3.78694377 3.50375106 -1.14989046 -0.05919174
7.00000000 0.18000000 3.79364900 3.50608814 -1.12248885 -0.05016159
8.00000000 0.19000000 3.80097613 3.50832218 -1.09750608 -0.04213555
9.00000000 0.20000000 3.80931532 3.51048075 -1.07502396 -0.03521057
10.00000000 0.21000000 3.81803057 3.51258242 -1.05416092 -0.02898349
11.00000000 0.22000000 3.82238117 3.51460985 -1.03018179 -0.02105059
12.00000000 0.23000000 3.81915501 3.51655197 -0.99987453 -0.00978180
13.00000000 0.24000000 3.81535884 3.51845855 -0.96997324 0.00135773
14.00000000 0.25000000 3.81800693 3.52038052 -0.94721102 0.00889973
15.00000000 0.26000000 3.82392464 3.52231253 -0.92837077 0.01445861
16.00000000 0.27000000 3.82860290 3.52424014 -0.90894424 0.02031331
17.00000000 0.28000000 3.83238371 3.52616869 -0.88920850 0.02631814
18.00000000 0.29000000 3.83649772 3.52810788 -0.87031715 0.03188155
19.00000000 0.30000000 3.84087897 3.53006486 -0.85214438 0.03705295
20.00000000 0.31000000 3.84521933 3.53204431 -0.83433198 0.04200170
21.00000000 0.32000000 3.84953841 3.53404341 -0.81687136 0.04673580
22.00000000 0.33000000 3.85391077 3.53605812 -0.79981698 0.05123446
23.00000000 0.34000000 3.85830299 3.53808681 -0.78312574 0.05552311
24.00000000 0.35000000 3.86266665 3.54012690 -0.76674488 0.05963402
25.00000000 0.36000000 3.86700159 3.54216944 -0.75068060 0.06358083
26.00000000 0.37000000 3.87131068 3.54420599 -0.73494085 0.06737553
27.00000000 0.38000000 3.87556087 3.54623649 -0.71948184 0.07104239
28.00000000 0.39000000 3.87971829 3.54826185 -0.70425779 0.07460462
29.00000000 0.40000000 3.88378175 3.55027831 -0.68926672 0.07806912
30.00000000 0.41000000 3.88776540 3.55228801 -0.67449590 0.08143600
31.00000000 0.42000000 3.89171206 3.55432122 -0.65984579 0.08469432
32.00000000 0.43000000 3.89565314 3.55640828 -0.64520937 0.08783738
33.00000000 0.44000000 3.89954565 3.55855181 -0.63053659 0.09088626
34.00000000 0.45000000 3.90332768 3.56074282 -0.61580321 0.09387194
35.00000000 0.46000000 3.90693602 3.56295364 -0.60103130 0.09683707
36.00000000 0.47000000 3.91032028 3.56514229 -0.58631368 0.09981764
37.00000000 0.48000000 3.91348242 3.56722807 -0.57197987 0.10281135
38.00000000 0.49000000 3.91645055 3.56914713 -0.55831965 0.10580242
39.00000000 0.50000000 3.91930504 3.57094156 -0.54522699 0.10875945
40.00000000 0.51000000 3.92211701 3.57267086 -0.53251591 0.11165598
41.00000000 0.52000000 3.92486836 3.57435818 -0.52007634 0.11450082
42.00000000 0.53000000 3.92753688 3.57601712 -0.50783438 0.11730380
43.00000000 0.54000000 3.93017301 3.57765951 -0.49578494 0.12004349
44.00000000 0.55000000 3.93282961 3.57929872 -0.48391728 0.12269826
45.00000000 0.56000000 3.93549657 3.58095608 -0.47212950 0.12527671
46.00000000 0.57000000 3.93815121 3.58264641 -0.46033480 0.12779311
47.00000000 0.58000000 3.94078347 3.58435036 -0.44859794 0.13025400
48.00000000 0.59000000 3.94338893 3.58604589 -0.43699956 0.13266308
49.00000000 0.60000000 3.94597283 3.58773430 -0.42553205 0.13502038
50.00000000 0.61000000 3.94853809 3.58942235 -0.41416474 0.13732712
51.00000000 0.62000000 3.95106836 3.59111526 -0.40286300 0.13959298
52.00000000 0.63000000 3.95354846 3.59281515 -0.39160470 0.14182690
53.00000000 0.64000000 3.95598706 3.59451328 -0.38042166 0.14402647
54.00000000 0.65000000 3.95838848 3.59620037 -0.36934312 0.14619160
55.00000000 0.66000000 3.96071586 3.59787593 -0.35833382 0.14834292
56.00000000 0.67000000 3.96293891 3.59953900 -0.34736919 0.15049749
57.00000000 0.68000000 3.96509493 3.60117782 -0.33653203 0.15263753
58.00000000 0.69000000 3.96722376 3.60278179 -0.32590250 0.15474390
59.00000000 0.70000000 3.96930778 3.60435553 -0.31544280 0.15682682
60.00000000 0.71000000 3.97132389 3.60590588 -0.30509992 0.15889933
61.00000000 0.72000000 3.97328436 3.60743328 -0.29487791 0.16095615
62.00000000 0.73000000 3.97520973 3.60893662 -0.28479500 0.16298777
63.00000000 0.74000000 3.97711815 3.61041481 -0.27486892 0.16498592
64.00000000 0.75000000 3.97902295 3.61186752 -0.26511093 0.16694485
65.00000000 0.76000000 3.98092056 3.61329741 -0.25550656 0.16886751
66.00000000 0.77000000 3.98280323 3.61470789 -0.24603496 0.17075906
67.00000000 0.78000000 3.98466318 3.61610238 -0.23667526 0.17262464
68.00000000 0.79000000 3.98649263 3.61748428 -0.22740659 0.17446940
69.00000000 0.80000000 3.98828381 3.61885699 -0.21820811 0.17629848
70.00000000 0.81000000 3.99002895 3.62022394 -0.20905893 0.17811705
71.00000000 0.82000000 3.99172026 3.62158853 -0.19993821 0.17993023
72.00000000 0.83000000 3.99334999 3.62295416 -0.19082507 0.18174319
73.00000000 0.84000000 3.99491035 3.62432425 -0.18169865 0.18356106
74.00000000 0.85000000 3.99639357 3.62570221 -0.17253809 0.18538899
75.00000000 0.86000000 3.99779187 3.62709145 -0.16332252 0.18723214
76.00000000 0.87000000 3.99909749 3.62849537 -0.15403108 0.18909566
77.00000000 0.88000000 4.00030265 3.62991739 -0.14464292 0.19098467
78.00000000 0.89000000 4.00139957 3.63136092 -0.13513716 0.19290435
14 changes: 9 additions & 5 deletions sedkit/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from pkg_resources import resource_filename

from astropy.io import ascii
import astropy.tables as at
import astropy.table as at


def process_dmestar(dir=None, filename='dmestar_solar.txt'):
Expand All @@ -37,7 +37,11 @@ def process_dmestar(dir=None, filename='dmestar_solar.txt'):

tables.append(t)

table = at.vstack(tables)
table.meta = None
path = resource_filename('sedkit', 'data/models/evolutionary/')
table.write(os.path.join(path, filename), format='csv')
if len(tables) > 0:
table = at.vstack(tables)
table.meta = None
path = resource_filename('sedkit', 'data/models/evolutionary/')
table.write(os.path.join(path, filename), format='csv')

else:
print('No DMEStar files to process at {}'.format(dir))
12 changes: 6 additions & 6 deletions sedkit/spectrum.py
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ def best_fit_model(self, modelgrid, report=None, name=None):
rep.add_tools(hover)

# Plot the fits
rep.circle(report, 'gstat', source=best, color='red', legend=bf['label'])
rep.circle(report, 'gstat', source=best, color='red', legend_label=bf['label'])
rep.circle(report, 'gstat', source=others)

# Show the plot
Expand Down Expand Up @@ -434,7 +434,7 @@ def fit(self, spec, weights=None, wave_units=None, scale=True, plot=False):

if plot:
fig = self.plot(best_fit=False)
fig.line(spec.wave, spec.flux * ynorm, legend='Fit')
fig.line(spec.wave, spec.flux * ynorm, legend_label='Fit')
show(fig)

return gstat, ynorm, xnorm
Expand Down Expand Up @@ -740,7 +740,7 @@ def plot(self, fig=None, components=False, best_fit=True, scale='log', draw=Fals

# Plot the spectrum
c = kwargs.get('color', next(u.COLORS))
fig.line(self.wave, self.flux * const, color=c, alpha=0.8, legend=self.name)
fig.line(self.wave, self.flux * const, color=c, alpha=0.8, legend_label=self.name)

# Plot the uncertainties
if self.unc is not None:
Expand All @@ -751,12 +751,12 @@ def plot(self, fig=None, components=False, best_fit=True, scale='log', draw=Fals
# Plot the components
if components and self.components is not None:
for spec in self.components:
fig.line(spec.wave, spec.flux * const, color=next(u.COLORS), legend=spec.name)
fig.line(spec.wave, spec.flux * const, color=next(u.COLORS), legend_label=spec.name)

# Plot the best fit
if best_fit:
for name, bf in self.best_fit.items():
fig.line(bf.spectrum[0], bf.spectrum[1] * const, alpha=0.3, color=next(u.COLORS), legend=bf.label)
fig.line(bf.spectrum[0], bf.spectrum[1] * const, alpha=0.3, color=next(u.COLORS), legend_label=bf.label)

if draw:
show(fig)
Expand Down Expand Up @@ -942,7 +942,7 @@ def synthetic_flux(self, bandpass, force=False, plot=False):
if plot:
fig = figure()
fig.line(self.wave, self.flux, color='navy')
fig.circle([bandpass.eff], [flx], color='red')
fig.circle([bandpass.wave_eff], [flx], color='red')
show(fig)

return flx, unc
Expand Down
25 changes: 17 additions & 8 deletions sedkit/tests/test_catalog.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
"""A suite of tests for the catalog.py module"""
import unittest
import copy
import os

import astropy.units as q
from pkg_resources import resource_filename

from .. import sed
from .. import catalog
Expand Down Expand Up @@ -79,6 +79,13 @@ def test_filter(self):
f_cat = cat.filter('spectral_type', '>30')
self.assertEqual(len(f_cat.results), 1)

def test_from_file(self):
"""Test from_file method"""
cat = self.cat
file = resource_filename('sedkit', 'data/sources.txt')
cat.from_file(file)
self.assertTrue(len(cat.results) > 0)

def test_get_data(self):
"""Test get_data method"""
# Make the catalog
Expand Down Expand Up @@ -130,19 +137,21 @@ def test_plot_SEDs(self):
# Make the catalog
cat = copy.copy(self.cat)
cat.add_SED(self.vega)
v1 = copy.copy(self.vega)
v1.name = 'foo'
cat.add_SED(v1)

# Plot the SEDs
cat.plot_SEDs(['Vega', 'foo'])
cat.plot_SEDs(['Vega'])
cat.plot_SEDs('*')

def test_save(self):
"""Test save method"""
def test_save_and_load(self):
"""Test save and load methods"""
# Make the catalog
cat = copy.copy(self.cat)
cat.save('test.p')

# Try to load it
new_cat = catalog.Catalog("Loaded Catalog")
new_cat.load('test.p')

os.system('rm test.p')

def test_source(self):
Expand Down
16 changes: 16 additions & 0 deletions sedkit/tests/test_helpers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
"""A suite of tests for the helpers.py module"""
import os
from pkg_resources import resource_filename

from sedkit import helpers as help


def test_process_dmestar():
"""Test the process_dmestar function"""
# Process DMEStar files
dir = resource_filename('sedkit', 'data/models/evolutionary/DMESTAR/')
help.process_dmestar(dir=dir, filename='dmestar_test.txt')

# Delete temporary file
path = resource_filename('sedkit', 'data/models/evolutionary/dmestar_test.txt')
os.system('rm {}'.format(path))
69 changes: 69 additions & 0 deletions sedkit/tests/test_spectrum.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""A suite of tests for the spectrum.py module"""
import unittest
import copy
from pkg_resources import resource_filename

import numpy as np
import astropy.units as q
Expand Down Expand Up @@ -97,6 +98,16 @@ def test_addition(self):
spec4 = self.spec + None
self.assertEqual(spec4.size, self.spec.size)

def test_convolve_filter(self):
"""Test convolve_filter method"""
# Spectrum and filter
spec = self.spec

# Convolve them
new_spec = spec.convolve_filter('2MASS.J')

self.assertNotEqual(spec.data.shape, new_spec.data.shape)

def test_export(self):
"""Test export method"""
# Good export
Expand Down Expand Up @@ -139,6 +150,9 @@ def test_renormalize(self):
norm = s.renormalize(mag, bp, no_spec=True)
self.assertIsInstance(norm, float)

# Return Spectrum object
spec = s.renormalize(mag, bp, no_spec=False)

def test_resamp(self):
"""Test that the spectrum can be interpolated to new wavelengths"""
# New wavelength array
Expand All @@ -165,6 +179,28 @@ def test_restore(self):
# Make sure it matched the original
self.assertTrue(np.all(self.spec.wave == restored_spec.wave))

def test_synthetic_mag(self):
"""Test the synthetic_magniture and synthetic_flux methods"""
# Get a spectrum
s1 = self.spec

# Test mag
filt = Filter('2MASS.J')
mag, mag_unc = s1.synthetic_magnitude(filt)
self.assertIsInstance(mag, float)
self.assertIsInstance(mag_unc, float)

# Test flux
flx, flx_unc = s1.synthetic_flux(filt, plot=True)
self.assertIsInstance(flx, q.quantity.Quantity)
self.assertIsInstance(flx_unc, q.quantity.Quantity)

# Test out of range band returns None
filt = Filter('WISE.W4')
mag, mag_unc = s1.synthetic_magnitude(filt)
self.assertIsNone(mag)
self.assertIsNone(mag_unc)

def test_norm_to_spec(self):
"""Test that a spectrum is properly normalized to another spectrum"""
# Get two flat spectra
Expand All @@ -191,6 +227,39 @@ def test_trim(self):
self.assertEqual(self.flat1.size, untrimmed.size)


class TestFileSpectrum(unittest.TestCase):
"""Tests for the FileSpectrum class"""
def setUp(self):
"""Setup the tests"""
# Files for testing
self.fitsfile = resource_filename('sedkit', 'data/Trappist-1_NIR.fits')
self.txtfile = resource_filename('sedkit', 'data/STScI_Vega.txt')

def test_fits(self):
"""Test that a fits file can be loaded"""
spec = sp.FileSpectrum(self.fitsfile, wave_units='um', flux_units='erg/s/cm2/AA')

def test_txt(self):
"""Test that a txt file can be loaded"""
spec = sp.FileSpectrum(self.txtfile, wave_units='um', flux_units='erg/s/cm2/AA')


class TestModelSpectrum(unittest.TestCase):
"""Tests for the ModelSpectrum class"""
def setUp(self):
"""Setup the tests"""
pass

def test_Atlas(self):
"""Test of the ATLAS models"""
self.atlas = sp.ModelSpectrum(stellar_model='ATLAS')

def test_Phoenix(self):
"""Test of the PHOENIX models"""
# self.phoenix = sp.ModelSpectrum(stellar_model='PHOENIX')
pass


class TestVega(unittest.TestCase):
"""Tests for the Vega class"""
def setUp(self):
Expand Down
17 changes: 17 additions & 0 deletions sedkit/tests/test_utilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,23 @@
from .. import utilities as u


def test_convert_mag():
"""Test the convert_mag function"""
mag, mag_unc = 12.3, 0.1

# AB to Vega
corr, corr_unc = u.convert_mag('2MASS.J', mag, mag_unc, old='AB', new='Vega')
assert corr < mag

# Vega to AB
corr, corr_unc = u.convert_mag('2MASS.J', mag, mag_unc, old='Vega', new='AB')
assert corr > mag

# Other
corr, corr_unc = u.convert_mag('2MASS.J', mag, mag_unc, old='ST', new='SDSS')
assert corr == mag


def test_equivalent():
"""Test for equivalent function"""
# Positive tests
Expand Down

0 comments on commit 2f99358

Please sign in to comment.