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 |
|
|
Atmospheric model or grid of models (with opacities
|
grid.moo |
FileMoo |
|
Configuration file for molecular lines conversion GUI
|
configconvmol.py |
FileConfigConvMol |
|
Database of Molecular Constants |
moldb.sqlite |
FileMolDB |
|
FITS Sparse Data Cube (storage to take less disk space) |
default.sparsecube |
FileSparseCube |
|
FITS Spectrum |
FileSpectrumFits |
|
|
FITS Spectrum List |
default.splist |
FileSpectrumList |
|
FITS WebSim Compass Data Cube |
default.fullcube |
FileFullCube |
|
FITS file with frames named INPUT_*, MODEL_*,
|
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 |
|
PFANT “Absoru2” file |
absoru2.dat |
FileAbsoru2 |
|
PFANT Atmospheric Model (binary file) |
modeles.mod |
FileModBin |
|
PFANT Atomic Lines |
atoms.dat |
FileAtoms |
|
PFANT Command-line Options |
options.py |
FileOptions |
|
PFANT Hydrogen Line Profile |
thalpha |
FileToH |
|
PFANT Hygrogen Lines Map |
hmap.dat |
FileHmap |
|
PFANT Main Stellar Configuration |
main.dat |
FileMain |
|
PFANT Molecular Lines |
molecules.dat |
FileMolecules |
|
PFANT Partition Function |
partit.dat |
FilePartit |
|
PFANT Spectrum (nulbad output) |
FileSpectrumNulbad |
|
|
PFANT Spectrum (pfant output) |
flux.norm |
FileSpectrumPfant |
|
PFANT Stellar Chemical Abundances |
abonds.dat |
FileAbonds |
|
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 |
|
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