CatalogΒΆ

Collections of SED objects can be stored and analyzed in a Catalog object. One can be initialized and populated with an SED object using the add_SED method.

from sedkit import Catalog, VegaSED
vega = VegaSED()
cat1 = Catalog(name='My New Catalog')
cat1.add_SED(vega)

Catalogs can be merged with the addition operator.

from sedkit import SED
sirius = SED('Sirius', spectral_type='A1V', method_list=['find_2MASS', 'find_WISE'])
cat2 = Catalog('My Second Catalog')
cat2.add_SED(sirius)
cat = cat1 + cat2

To check the table of data and calculated parameters, just call the results property. The wavelength and flux density units of all the SEDs can be checked and set with the wave_units and flux_units properties.

cat.results
import astropy.units as q
cat.wave_units = q.AA
cat.flux_units = q.W / q.m**3

Additional columns of data can be added to the results table with the add_column method.

rv = np.array([-13.9, -5.5]) * q.km / q.s
rv_unc = np.array([0.9, 0.1]) * q.km / q.s
cat.add_column('radial_velocity', rv, rv_unc)

Data for individual columns (and associated uncertainties when applicable) can be retrieved by passing the desired column names to the get_data method.

spt_data, plx_data = cat.get_data('spectral_type', 'parallax')

The SED object for a source can be retrieved with the get_SED method.

vega = cat.get_SED('Vega')

An interactive scatter plot of any two numeric columns can be made by passing the desired x and y parameter names from the results table to the plot method. Photometric colors can be calculated by passing two photometric band names with a - sign. The order argument accepts an integer and plots a polynomial of the given order. For busy plots, individual sources can be identified by passing the SED name to the identify argument. Similarly, setting the argument label_points=True prints the name of each source next to its data point.

cat.plot('Lbol', 'spectral_type', order=1)      # Lbol v. SpT plot with first order polynomial fit
cat.plot('spectral_type', '2MASS.J-2MASS.H')    # SpT v. J-H color plot
cat.plot('age', 'distance', identify=['Vega'])  # Age v. Dist with Vega circled in red
cat.plot('parallax', 'mbol', label_points=True) # Plx v. mbol with labeled points

The SEDs can be plotted for visual comparison with the plot_SEDs method. The can be normalized to 1 by setting the argument normalize=True.

cat.plot_SEDs('*', normalize=True)  # Plot of all SEDs
cat.plot_SEDs(['Vega', 'Sirius'])   # Normalized plot of Vega and Sirius

The results table, photometry, and plots of each SED can be exported to a zip file or directory with the export method.

cat.export('/path/to/target/dir', zip=True)

The whole Catalog object can be serialized and loaded with the save and load methods, respectively.

cat_file = '/path/to/cat.p'
cat.save(cat_file)
new_cat = Catalog('A-type stars')
new_cat.load(cat_file)

A catalog can also be made from an ASCII file with column names name, ra, and dec by passing the filepath to the from_file method. For each source in the list, an SED is created, the methods in the run_methods argument are run, and the SED is added to the catalog.

source_list = '/path/to/sources.csv'
new_cat = Catalog()
new_cat.from_file(source_list, run_methods=['find_2MASS', 'find_WISE', 'find_Gaia'])