Examples¶
List file types handled by all collaborator packages¶
The current list considers projects aosss, ariastro, f311, and PyFANT.
"""Lists different subsets of DataFile subclasses"""
import f311
titles = ("text", "binary", "1D spectrum")
allclasses = (f311.classes_txt(), f311.classes_bin(), f311.classes_sp())
for title, classes in zip(titles, allclasses):
print("\n*** Classes that can handle {} files***".format(title))
for cls in classes:
print("{:25}: {}".format(cls.__name__, cls.__doc__.strip().split("\n")[0]))
*** Classes that can handle text files***
FileAbXFwhm : `x.py` Differential Abundances X FWHMs (Python source)
FileAbonds : PFANT Stellar Chemical Abundances
FileAbsoru2 : PFANT "Absoru2" file
FileAtoms : PFANT Atomic Lines
FileConfigConvMol : Configuration file for molecular lines conversion GUI (Python code)
FileDissoc : PFANT Stellar Dissociation Equilibrium Information
FileHmap : PFANT Hydrogen Lines Map
FileKuruczMolecule : Kurucz molecular lines file
FileKuruczMolecule1 : Kurucz molecular lines file following format of file "c2dabrookek.asc"
FileKuruczMoleculeBase : Base class for the two types of Kurucz molecular lines file
FileKuruczMoleculeOld : Kurucz molecular lines file, old format #0
FileKuruczMoleculeOld1 : Kurucz molecular lines file, old format #1
FileMain : PFANT Main Stellar Configuration
FileModTxt : MARCS Atmospheric Model (text file)
FileMolConsts : Molecular constants config file (Python code)
FileMolecules : PFANT Molecular Lines
FileOpa : MARCS ".opa" (opacity model) file format.
FileOptions : PFANT Command-line Options
FilePar : WebSim-COMPASS ".par" (parameters) file
FilePartit : PFANT Partition Function
FilePlezTiO : Plez molecular lines file, TiO format
FilePy : Configuration file saved as a .py Python source script
FilePyConfig : Base class for config files. Inherit and set class variable 'modulevarname' besides usual
FileSpectrum : Base class for all files representing a single 1D spectrum
FileSpectrumNulbad : PFANT Spectrum (`nulbad` output)
FileSpectrumPfant : PFANT Spectrum (`pfant` output)
FileSpectrumXY : "Lambda-flux" Spectrum (2-column text file)
FileTRAPRBInput : Input file for the TRAPRB Fortran code (which calculates Franck-Condon factors)
FileTRAPRBOutput : Output file for the TRAPRB Fortran code (which calculates Franck-Condon factors)
FileToH : PFANT Hydrogen Line Profile
FileVald3 : VALD3 atomic or molecular lines file
*** Classes that can handle binary files***
FileFullCube : FITS WebSim Compass Data Cube
FileHitranDB : HITRAN Molecules Catalogue
FileModBin : PFANT Atmospheric Model (binary file)
FileMolDB : Database of Molecular Constants
FileMoo : Atmospheric model or grid of models (with opacities included)
FileSQLiteDB : Represents a SQLite database file.
FileSparseCube : FITS Sparse Data Cube (storage to take less disk space)
FileSpectrumFits : FITS Spectrum
FileSpectrumList : FITS Spectrum List
FileGalfit : FITS file with frames named INPUT_*, MODEL_*, RESIDUAL_* (Galfit software output)
*** Classes that can handle 1D spectrum files***
FileSpectrum : Base class for all files representing a single 1D spectrum
FileSpectrumFits : FITS Spectrum
FileSpectrumNulbad : PFANT Spectrum (`nulbad` output)
FileSpectrumPfant : PFANT Spectrum (`pfant` output)
FileSpectrumXY : "Lambda-flux" Spectrum (2-column text file)
By the way, the table above was generated with the following code:
Another way to list the file types (as ReST table)¶
import f311.filetypes as ft
print("\n".join(ft.tabulate_filetypes_rest(description_width=55)))
Description | Default filename | Class name | Editors |
---|---|---|---|
“Lambda-flux” Spectrum (2-column text file) | FileSpectrumXY | splisted.py |
|
Atmospheric model or grid of models (with opacities
included) |
grid.moo | FileMoo | |
Configuration file for molecular lines conversion GUI
(Python code) |
configconvmol.py | FileConfigConvMol | |
Database of Molecular Constants | moldb.sqlite | FileMolDB | convmol.py , moldbed.py |
FITS Sparse Data Cube (storage to take less disk space) | default.sparsecube | FileSparseCube | |
FITS Spectrum | FileSpectrumFits | splisted.py |
|
FITS Spectrum List | default.splist | FileSpectrumList | splisted.py |
FITS WebSim Compass Data Cube | default.fullcube | FileFullCube | cubeed.py |
FITS file with frames named INPUT_*, MODEL_*,
RESIDUAL_* (Galfit software output) |
FileGalfit | ||
File containing Franck-Condon Factors (FCFs) | FileFCF | ||
HITRAN Molecules Catalogue | hitrandb.sqlite | FileHitranDB | |
Kurucz molecular lines file | FileKuruczMolecule | ||
Kurucz molecular lines file, old format #0 | FileKuruczMoleculeOld | ||
Kurucz molecular lines file, old format #1 | FileKuruczMoleculeOld1 | ||
MARCS “.opa” (opacity model) file format. | modeles.opa | FileOpa | |
MARCS Atmospheric Model (text file) | FileModTxt | ||
Molecular constants config file (Python code) | configmolconsts.py | FileMolConsts | mced.py |
PFANT “Absoru2” file | absoru2.dat | FileAbsoru2 | |
PFANT Atmospheric Model (binary file) | modeles.mod | FileModBin | |
PFANT Atomic Lines | atoms.dat | FileAtoms | ated.py |
PFANT Command-line Options | options.py | FileOptions | x.py |
PFANT Hydrogen Line Profile | thalpha | FileToH | |
PFANT Hygrogen Lines Map | hmap.dat | FileHmap | |
PFANT Main Stellar Configuration | main.dat | FileMain | mained.py , x.py |
PFANT Molecular Lines | molecules.dat | FileMolecules | mled.py |
PFANT Partition Function | partit.dat | FilePartit | |
PFANT Spectrum (nulbad output) | FileSpectrumNulbad | splisted.py |
|
PFANT Spectrum (pfant output) | flux.norm | FileSpectrumPfant | splisted.py |
PFANT Stellar Chemical Abundances | abonds.dat | FileAbonds | abed.py , x.py |
PFANT Stellar Dissociation Equilibrium Information | dissoc.dat | FileDissoc | |
Plez molecular lines file, TiO format | FilePlezTiO | ||
VALD3 atomic or molecular lines file | FileVald3 | ||
WebSim-COMPASS “.par” (parameters) file | FilePar | ||
x.py Differential Abundances X FWHMs (Python source) | abxfwhm.py | FileAbXFwhm | x.py |
Convert 1D spectral file to FITS format¶
#!/usr/bin/env python
"""Converts 1D spectral file of any supported type to FITS format.
The new file is saved with name "<original-filename>.fits".
TODO handle non-equally spaced wavelength values
"""
import f311
import sys
import logging
if __name__ == "__main__":
if len(sys.argv) < 2 or any([x.startswith("-") for x in sys.argv[1:]]):
print(__doc__+"\nUsage:\n\n convert-to-fits.py filename0 [filename1 [filename2 [...]]]\n")
sys.exit()
for filename in sys.argv[1:]:
print("Converting file '{}'...".format(filename))
try:
spectrum = f311.load_spectrum(filename)
if spectrum is None:
print("File '{}' not recognized as a 1D spectral file".format(filename))
continue
filename_new = filename+".fits"
fnew = f311.FileSpectrumFits()
fnew.spectrum = spectrum
fnew.save_as(filename_new)
print("Successfully saved '{}'".format(filename_new))
except:
logging.exception("Error converting file '{}'".format(filename))
Todo
More examples