Generating synthetic star catalogs from simulated data for next-gen observatories with py-ananke

Generating synthetic star catalogs from simulated data for next-gen observatories with py-ananke - Published in JOSS (2024)

https://github.com/athob/py-ananke

Science Score: 100.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 9 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: arxiv.org, joss.theoj.org, zenodo.org
  • Committers with academic emails
    1 of 5 committers (20.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Engineering Computer Science - 32% confidence
Last synced: 4 months ago · JSON representation ·

Repository

Python pipeline to generate mock astrometric and photometric catalogs of synthetic stars derived from particle-based simulated star populations

Basic Info
  • Host: GitHub
  • Owner: athob
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Homepage: http://py-ananke.rtfd.io/
  • Size: 1.49 MB
Statistics
  • Stars: 23
  • Watchers: 5
  • Forks: 7
  • Open Issues: 1
  • Releases: 10
Created over 3 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation Zenodo

README.md

py-ananke

PyPI - Version Documentation Status Python package status arXiv DOI Slack

Welcome to py-ananke, a Python package that offers ananke which is a comprehensive pipeline designed to generate mock astrometric and photometric catalogs of synthetic stars derived from particle-based simulated star populations.

Project genesis

GAIA mock star survey from FIRE RGB flux map of a synthetic survey of the FIRE-2 simulated galaxy m12f (image credit: Sanderson et al. 2020).

The package was designed to provide easy installation and distribution of the ananke software, as described in Sanderson et al. 2020. In this work, the team focused on cosmological simulations, such as the latte suite of FIRE simulations which have limited resolution and cannot accurately represent fully resolved stellar populations with individual stars. To address this challenge, the authors of ananke developed a framework consisting of scripts and data that enabled the generation of synthetic GAIA star surveys from these simulated galaxies. The framework combines density estimations and IMF sampling techniques to create representative populations of mock stars.

An essential aspect of ananke is its integration with the EnLink/EnBiD C++ software for computing phase space densities. These computed densities are then used as input for the Galaxia C++ software, which generates synthetic surveys by incorporating user-supplied GAIA isochrones to produce the mock photometry.

The development of py-ananke aims to make this sophisticated framework accessible to a broader community. By providing a self-contained and easily installable Python package, we strive to facilitate the usage and adoption of ananke for generating mock star surveys from cosmological simulations, enabling the investigation of stellar halos around nearby galaxies.

Getting started

py-ananke is compatible with Python versions above 3.7.12 and below 3.11. The project is organized into three branches: main, stable, and develop. The main branch contains the latest released version, while the stable and develop branches host versions currently in development, with stable being the most recent stable version. py-ananke uses dedicated wrapper submodules, namely py-EnBiD-ananke and py-Galaxia-ananke, specifically developed to handle the installation and utilization of the C++ backend software, EnBiD, and a modified version of Galaxia called galaxia-ananke. These submodules relieve users from the need to directly manage the C++ software while isolating the C++ wrapping process. This allows py-ananke to focus on processing inputs and outputs using pure Python. It is worth noting that galaxia-ananke incorporates several pre-installed photometric systems, represented by sets of isochrones generated from the CMD web interface (commonly referred to as Padova isochrones). Among the available options are HST, GAIA, Euclid, Rubin, JWST & Roman.

Installation

ananke is available on the PyPI, so it may be installed using the command:

bash pip install ananke

Alternatively, if you wish to run the latest version on the repository, you can use the following pip command, which pulls it directly from the repository's main branch:

bash pip install git+https://github.com/athob/py-ananke@main

You may also change the branch to use in the above command by replacing the main that follows the @ symbol. If you prefer, you may clone the repository to your local machine and then install py-ananke using the following pip command, which installs it from your local copy of the repository:

bash git clone https://github.com/athob/py-ananke cd py-ananke pip install .

Please note that the command with flag pip install . --no-cache-dir may be necessary due to some dependencies issues.

After installation, the module can be imported in Python under the name ananke and be ran as such.

Simplified use case

The repository includes a Jupyter notebook that demonstrates a simplified use case utilizing a dummy set of randomly generated particle data. You can access the notebook directly at jupyter/example_notebook.ipynb. This notebook provides a step-by-step example to help you understand the functionality and usage of py-ananke in a straightforward manner.

Note that you will need Jupyter installed on the machine where you intend to test this notebook, which will not be automatically installed by the py-ananke's installation as it is not required to run its modules. Please follow the Project Jupyter dedicated instructions for installing its tools such as JupyterLab or Jupyter Notebook.

What's under the hood

Work in progress...

On-going development

py-ananke is now published in The Journal of Open Source Software. You can also access the associated arXiv publication.

Upcoming updates

We have an exciting roadmap of upcoming updates planned, which we aim to implement prior to or following the submission. Here are some of the planned updates in no particular order:

  • Improving Extinction: The extinction feature is currently in an experimental state, and we have identified areas for significant improvement. Firstly, while the user can supply their own extinction coefficients Aλ/A0 for any photometric system, only GAIA currently has default coefficients. Future updates will expand the range of default extinction coefficients for different systems. Secondly, the estimation of dust column density maps per particle currently requires user input. Our plan is to incorporate a treatment that directly computes dust column densities from the simulated metal-enriched gas provided by the user.
  • Implementing Error Modelling: The original ananke framework (Sanderson et al. 2020) featured error modelling as a significant component. In future updates, we will introduce a framework that allows for the incorporation of simple error models into the pipeline, enhancing the robustness of the generated mock surveys.
  • Interfacing with Isochrone Databases: py-ananke currently includes pre-loaded isochrones for a chosen photometric system (some of which are listed in the introduction section). Our plan is to implement a direct interface with established isochrone databases such as Padova or MIST, enabling users to download available photometric systems on-the-fly. Additionally, we aim to develop a framework that allows py-ananke to output photometry in a range of commonly used calibration standards.
  • Additional Modularization: While EnBiD serves as the density estimation routine of choice, we plan to expand the options by adding more choices such as EnLink. Furthermore, we intend to diversify the selection of kernel functions for density estimation and sampling mock stars in phase space, making it possible to utilize anisotropic kernel functions. Additionally, we will enhance the flexibility of py-ananke by incorporating a wider range of initial mass functions (IMFs) and allowing mass sampling based on present mass functions, particularly for generating mock stars in globular clusters.
  • Quality of Life Updates: We are dedicated to enhancing the user experience and overall usability of py-ananke. To that end, we will be implementing various quality of life updates, refining the software interface, improving documentation, and streamlining the overall workflow.

These upcoming updates signify our commitment to continuously improve py-ananke and address the evolving needs of the community. We encourage users to stay engaged with the project, provide feedback, and contribute to its development as we work towards a more comprehensive and user-friendly tool for generating mock surveys.

Contributing

You can readily access the code in the main GitHub repository, as well as its submodules repositories. We encourage users to utilize the Github issues feature to report any bugs encountered or suggest new ideas for improvement. Contributions to the project are highly valued and greatly appreciated. To contribute, we kindly request that you make your changes in a separate branch or fork of the repository. Once your contributions are ready, you can submit a pull request to merge them into the develop branch. If you choose to make your contributions in a fork, please make sure to base those changes from the develop branch in that fork, and have your pull requests originate from your forked develop branch and target this repository's develop branch. Additionally, you may need to confirm that the Workflow permissions in your fork settings are set to Read and write (Settings > Actions > General > Workflow permissions) in case the CI/CD GitHub Action doesn't complete.

py-ananke & the community

License

py-ananke is distributed under the GNU General Public License (GPL) version 3, offering you the freedom to utilize, modify, and distribute the software. The GPL v3 ensures that you have the flexibility to adapt py-ananke to suit your specific needs, while also contributing to the open-source community. We encourage you to read the full license text to understand your rights and responsibilities when using py-ananke.

Citing py-ananke

If py-ananke has played a role in your research project or software development, we kindly request that you acknowledge and cite the project. Citing py-ananke not only gives credit to the dedicated efforts of its creators but also helps others discover and benefit from this software.

To cite py-ananke, please use DOI 10.21105/joss.06234 as a reference in your publications, or cite as the following:

text Thob, Adrien C. R. et al. 2024, “Generating synthetic star catalogs from simulated data for next-gen observatories with py-ananke”, The Journal of Open Source Software, 9, 6234, doi:10.21105/joss.06234.

Alternatively, you may use one of the entries associated with py-ananke as listed by The SAO/NASA Astrophysics Data System, such as the following BibTeX entry:

text @ARTICLE{2024JOSS....9.6234T, author = {{Thob}, Adrien and {Sanderson}, Robyn and {Eden}, Andrew and {Nikakhtar}, Farnik and {Panithanpaisal}, Nondh and {Garavito-Camargo}, Nicol{\'a}s and {Sharma}, Sanjib}, title = "{Generating synthetic star catalogs from simulated data for next-gen observatories with py-ananke}", journal = {The Journal of Open Source Software}, keywords = {C++, astronomy, galaxies, stars, simulations, mock observations, Jupyter Notebook, Python, Astrophysics - Astrophysics of Galaxies, Astrophysics - Instrumentation and Methods for Astrophysics}, year = 2024, month = oct, volume = {9}, number = {102}, eid = {6234}, pages = {6234}, doi = {10.21105/joss.06234}, archivePrefix = {arXiv}, eprint = {2312.02268}, primaryClass = {astro-ph.GA}, adsurl = {https://ui.adsabs.harvard.edu/abs/2024JOSS....9.6234T}, adsnote = {Provided by the SAO/NASA Astrophysics Data System} }

Dissemination

Below, you will find a selection of scientific papers that showcase the potential and capabilities of py-ananke. These papers serve as valuable resources for understanding the practical implementation and impact of py-ananke in various domains.

  • Gray et al. 2025, “EDGE: A new model for Nuclear Star Cluster formation in dwarf galaxies”, Monthly Notices of the Royal Astronomical Society, Volume 539, Issue 2, May 2025, Pages 1167–1179, https://doi.org/10.1093/mnras/staf521

py-ananke has also been discussed extensively in various workshops and conferences.

Acknowledgements

We extend our sincere gratitude to Robyn Sanderson (UPenn), Andrew Eden (FloridaTech), Farnik Nikakhtar (Yale), Nondh Panithanpaisal (UPenn/CarnegieObs), and Nicolas Garavito-Camargo (FlatironCCA) for their invaluable contributions and support during the development of this package. Their expertise, guidance, and collaboration have been instrumental in shaping the vision and advancement of this project. We also appreciate the valuable feedback and suggestions provided by the wider community, including the extended Galaxy Dynamics @ UPenn group and the participants of the "anankethon" workshop, which have significantly contributed to the refinement and enhancement of the package.

Owner

  • Name: Adrien Thob
  • Login: athob
  • Kind: user
  • Location: Philadelphia, USA
  • Company: University of Pennsylvania

Postdoctoral researcher at the University of Pennsylvania, working on galaxy formation and computational cosmology, interested in algorithmic optimization

JOSS Publication

Generating synthetic star catalogs from simulated data for next-gen observatories with py-ananke
Published
October 23, 2024
Volume 9, Issue 102, Page 6234
Authors
Adrien C.r. Thob ORCID
Department of Physics & Astronomy, University of Pennsylvania, 209 S 33rd Street, Philadelphia, PA 19104, USA
Robyn E. Sanderson ORCID
Department of Physics & Astronomy, University of Pennsylvania, 209 S 33rd Street, Philadelphia, PA 19104, USA
Andrew P. Eden ORCID
Department of Aerospace, Physics and Space Sciences, Florida Institute of Technology, Melbourne, FL 32901, USA
Farnik Nikakhtar ORCID
Department of Physics, Yale University, New Haven, CT 06511, USA
Nondh Panithanpaisal ORCID
Department of Physics & Astronomy, University of Pennsylvania, 209 S 33rd Street, Philadelphia, PA 19104, USA, The Observatories of the Carnegie Institution for Science, 813 Santa Barbara Street, Pasadena, CA 91101, USA, TAPIR, Mailcode 350-17, California Institute of Technology, Pasadena, CA 91125, USA
Nicolás Garavito-Camargo ORCID
Center for Computational Astrophysics, Flatiron Institute, Simons Foundation, 162 Fifth Avenue, New York, NY 10010, USA
Sanjib Sharma ORCID
Space Telescope Science Institute, 3700 San Martin Drive, Baltimore, MD 21218, USA
Editor
Warrick Ball ORCID
Tags
C++ astronomy galaxies stars simulations mock observations

Citation (CITATION.cff)

cff-version: "1.2.0"
authors:
- family-names: Thob
  given-names: Adrien C. R.
  orcid: "https://orcid.org/0000-0001-7928-1973"
- family-names: Sanderson
  given-names: Robyn E.
  orcid: "https://orcid.org/0000-0003-3939-3297"
- family-names: Eden
  given-names: Andrew P.
  orcid: "https://orcid.org/0009-0004-2146-4856"
- family-names: Nikakhtar
  given-names: Farnik
  orcid: "https://orcid.org/0000-0002-3641-4366"
- family-names: Panithanpaisal
  given-names: Nondh
  orcid: "https://orcid.org/0000-0001-5214-8822"
- family-names: Garavito-Camargo
  given-names: Nicolás
  orcid: "https://orcid.org/0000-0001-7107-1744"
- family-names: Sharma
  given-names: Sanjib
  orcid: "https://orcid.org/0000-0002-0920-809X"
contact:
- family-names: Thob
  given-names: Adrien C. R.
  orcid: "https://orcid.org/0000-0001-7928-1973"
doi: 10.5281/zenodo.13942954
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Thob
    given-names: Adrien C. R.
    orcid: "https://orcid.org/0000-0001-7928-1973"
  - family-names: Sanderson
    given-names: Robyn E.
    orcid: "https://orcid.org/0000-0003-3939-3297"
  - family-names: Eden
    given-names: Andrew P.
    orcid: "https://orcid.org/0009-0004-2146-4856"
  - family-names: Nikakhtar
    given-names: Farnik
    orcid: "https://orcid.org/0000-0002-3641-4366"
  - family-names: Panithanpaisal
    given-names: Nondh
    orcid: "https://orcid.org/0000-0001-5214-8822"
  - family-names: Garavito-Camargo
    given-names: Nicolás
    orcid: "https://orcid.org/0000-0001-7107-1744"
  - family-names: Sharma
    given-names: Sanjib
    orcid: "https://orcid.org/0000-0002-0920-809X"
  date-published: 2024-10-23
  doi: 10.21105/joss.06234
  issn: 2475-9066
  issue: 102
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 6234
  title: Generating synthetic star catalogs from simulated data for
    next-gen observatories with py-ananke
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.06234"
  volume: 9
title: Generating synthetic star catalogs from simulated data for
  next-gen observatories with py-ananke

GitHub Events

Total
  • Release event: 1
  • Watch event: 5
  • Delete event: 1
  • Push event: 67
  • Pull request review event: 1
  • Pull request event: 2
  • Fork event: 2
  • Create event: 4
Last Year
  • Release event: 1
  • Watch event: 5
  • Delete event: 1
  • Push event: 67
  • Pull request review event: 1
  • Pull request event: 2
  • Fork event: 2
  • Create event: 4

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 240
  • Total Committers: 5
  • Avg Commits per committer: 48.0
  • Development Distribution Score (DDS): 0.046
Past Year
  • Commits: 86
  • Committers: 2
  • Avg Commits per committer: 43.0
  • Development Distribution Score (DDS): 0.047
Top Committers
Name Email Commits
Adrien Thob a****b@g****m 229
NGC j****c@e****u 4
Warrick Ball w****l@g****m 4
Robyn Sanderson a****n 2
Nondh Panithanpaisal n****1@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 3
  • Total pull requests: 11
  • Average time to close issues: 4 months
  • Average time to close pull requests: about 3 hours
  • Total issue authors: 3
  • Total pull request authors: 5
  • Average comments per issue: 5.67
  • Average comments per pull request: 0.09
  • Merged pull requests: 10
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 6
  • Average time to close issues: N/A
  • Average time to close pull requests: 26 minutes
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 12.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • warrickball (1)
  • rrjbca (1)
  • CarrieFilion (1)
Pull Request Authors
  • athob (7)
  • warrickball (6)
  • jngaravitoc (2)
  • nonsk131 (1)
  • astrorobyn (1)
Top Labels
Issue Labels
documentation (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 3,689 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 3
  • Total maintainers: 1
pypi.org: ananke

py-ananke: Provides a pipeline to generate mock synthetic star catalogs from star particle based simulated data.

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 3,689 Last month
Rankings
Dependent packages count: 10.1%
Downloads: 15.9%
Average: 31.1%
Dependent repos count: 67.3%
Maintainers (1)
Last synced: 4 months ago

Dependencies

setup.py pypi
  • EnBiD_ananke *
  • Galaxia_ananke *