Chemical information calculator for resolved stellar spectroscopy


License
MIT
Install
pip install Chem-I-Calc==0.4.2.dev4

Documentation

Chem-I-Calc

Chem-I-Calc is a python package for evaluating the chemical information content of resolved star spectroscopy. It takes advantage of the Fisher information matrix and the Cramér-Rao inequality to quickly calculate the Cramér-Rao lower bounds (CRLBs), which give the best theoretically achievable precision from a set of observations.

Installation

Chem-I-Calc requires Python 3.5 or later. It and all of its dependencies can be installed from PyPi with

pip install Chem-I-Calc

or directly from Github with

pip install git+https://github.com/NathanSandford/Chem-I-Calc

Getting Started

Initial file downloads

These calculations require high-resolution (R~100,000) spectra in order to calculate spectral gradients for a wide variety of instrumental configurations. The files that include this data are too large to host on either Github or PyPi, instead, the first time the app looks for this data, the data is downloaded from a Google Drive, which may take 2-10 minutes depending on your internet connectivity. As chunks of the data are downloaded, it will display in the terminal/notebook output. The label file is about 50 chunks and the spectra file is about 26,600 chunks.

Interactive GUI

Chem-I-Calc will eventually include a web-hosted applet for quick and easy CRLB calculations for the broader astronomical community. The large files required for these calculations, however, have complicated deploying this application. As an intermediate stop-gap, the Chem-I-Calc package includes the code necessary to run the applet locally.

If you have installed Chem-I-Calc with pip you can start up the applet by running the command

run_chemicalc

in the python environmnent that Chem-I-Calc was installed in. If you have installed Chem-I-Calc by cloning the repository, you will need to navigate to Chem-I-Calc/chemicalc_app or make sure your path includes the file run_chemicalc.

After running the command in the terminal you should see the following output:

Serving Flask app "chemicalc_app" (lazy loading)
Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
Debug mode: off
Running on http://127.0.0.1:8050/ (Press CTRL+C to quit)

In an internet browser, navigate to the address output in the final line (e.g., http://127.0.0.1:8050/). The app should then load and be at your disposal!

Jupyter Notebooks

Chem-I-Calc is designed to be be both very interactive and modular, making it well suited for use in notebook environments. This allows interested users to explore beyond the capabilities of the GUI/applet. For example, one could easily use Chem-I-Calc with their own stellar spectral models, include a custom Signal/Noise prescription, and otherwise adapt the code to calculate CRLBs for their specific observations and analysis.

Tutorials for running Chem-I-Calc in a notebook can be found in Chem-I-Calc/notebooks/ and will be expanded upon as the package grows in features.

Authors

Collaborators

  • Dan Weisz
  • Yuan-Sen Ting
  • Hans-Walter Rix

Attribution

This work will be presented in an upcoming paper, Sandford et al. (in prep)

Contributions & Bug Reports

Like what this package is doing, but unsatisfied with some portion of it? I warmly welcome any and all contributions, particularly in feature additions, web deployment, bug fixes, and code optimizations. Don't hesitate to reach out to me if you have any ideas or contributions you would like to apply.