Skip to content

BrownDwarf/gollum

Repository files navigation

gollum

Version 0.4.3

ascl:2503.015

A microservice for programmatic access to precomputed synthetic spectral model grids in astronomy.

gollum demo

The goal of this repo is to provide a Python Application Programming Interface (API) to several different synthetic spectral models. gollum will be built on the astropy affiliated package specutils, and will be inspired by the API design of lightkurve. This project is loosely related to the parallel muler framework that is built on specutils and focuses on data. This project is all about models. The code itself and will have some overlap with functionality in Starfish, and this project could one day become a microservice to Starfish, rather than duplicate code.

Dashboard

We have a human-in-the-loop interactive dashboard which allows users to compare data to models. The current version of the dashboard supports the Sonora-Bobcat 2021 Models and the PHOENIX model grid.

dashboard demo

This dashboard allows users to control sliders correlating with intrinsic properties (effective temperature, surface gravity, and metallicity) and extrinsic properties (rotational broadening, radial velocity, and a normalization scalar). From the selected intrinsic values, the dashboard can find the closest matching model (based on the closest existing point in a jagged 3D array of existing intrinsic values) and display it on screen so that the user can compare it with the real data. The data itself shows up as a blue plot, while the model is red, which will allow users to make by-eye fittings of the models to the data displayed.

There is some latency in the updating of the model's graph when the user moves certain sliders too quickly. This latency comes from the large amount of data points and the effect of the curse of dimensionality when it comes to the search for the nearest grid point based on intrinsic values that the dashboard must do with each update of the sliders. This latency mostly only applies when the user moves the sliders very quickly, however. More gradual movement of the sliders allows for relatively smooth updating of the model spectrum with minimal latency.

Cite this software:

@ARTICLE{gollum,
       author = {{Shankar}, Sujay and {Gully-Santiago}, Michael and {Morley}, Caroline and {Cao}, Jiayi and {Kaplan}, Kyle and {Kimani-Stewart}, Karina and {Gonzalez-Arg{\'u}eta}, Diana},
        title = "{gollum: An intuitive programmatic and visual interface for precomputed synthetic spectral model grids}",
      journal = {The Journal of Open Source Software},
     keywords = {astronomy, spectroscopy, stars, echelle, Jupyter Notebook, Python},
         year = 2024,
        month = aug,
       volume = {9},
       number = {100},
          eid = {6601},
        pages = {6601},
          doi = {10.21105/joss.06601},
       adsurl = {https://ui.adsabs.harvard.edu/abs/2024JOSS....9.6601S},
      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

The package is under active development. Feel free to contibute by either raising issues here in GitHub or by submitting pull requests. If you have questions or need help, please also use GitHub issues to reach out to the development team and we will do our best to assist you.

Project Status

We welcome Pull Requests and Issue reports! We will be adding uv support in 2026, and a few small maintenance projects. Stay tuned for more updates.

Testing

By default, run only deterministic/offline unit tests:

uv run --extra test pytest -m "not integration" tests

Run integration tests (network/external model data required) explicitly:

uv run --extra test pytest -m "integration" tests

About

A microservice for programmatic access to precomputed synthetic spectral model grids in astronomy

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors