-
Notifications
You must be signed in to change notification settings - Fork 16
Home
Will Barnes edited this page Aug 18, 2017
·
3 revisions
This is a place for putting development notes related to the fiasco package, a Python interface to the CHIANTI atomic database.
One of the most difficult parts of the package to navigate will be the interaction with the CHIANTI atomic database itself. Below is a rough sketch of how I envision the database-codebase interaction will proceed.
-
Set of functions to parse raw ASCII into pandas dataframes
- One for each type of file in the database
- Set of dataframes for each ion in the database
- How to handle properties on the element level? e.g. abundance, ionization potential, etc.
-
Build single HDF5 out of the dataframes
- Easily stream data in and out of the file
- How to structure the data? Preserve the CHIANTI filetypes?
- Nested
-
Base class instantiated with a particular ion
- Properties for each of the distinct filetypes
- Base class for all other objects in fiasco
- Allow other applications to build capabilities on top of CHIANTI data without baggage of the full
Ion
object
-
Set database location with a property in the
rc
file- Other properties (e.g. specific datasets) set here as well
- Build HDF5 file the first time the package is imported, store in
~/.fiasco/
by default - SHA-1 hashes for each file in the database, store these in the
~/.fiasco/
directory - At each import, check the hashes to see if the HDF5 database needs to be updated
- Package template from SunPy or Astropy and helpers package from Astropy
- Hosted documentation with Sphinx and Read the Docs
- Testing infrastructure with pytest
- Automatic builds, tests, and docs tests on Travis CI
- Biggest problem: how to download the data? how should it be distributed?
- Always allow for a local copy that is already there through rc setting
- Download automatically at import if it can't be found
- Updating??? Store file hashes, check at each import, update HDF5 as needed (or optionally do not)