<div align="center">
<img src="https://raw.githubusercontent.com/angelicalola-danhaive/geko/main/doc/_static/geko_logo.png" alt="Geko Logo" width="300"/>
# the **G**rism **E**mission-line **K**inematics t**O**ol
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](https://github.com/angelicalola-danhaive/geko/actions/workflows/tests.yml)
</div>
## Description
Geko is a Python package for analyzing grism spectroscopy from JWST NIRCam observations. The package uses JAX for accelerated computation and Numpyro for Bayesian inference to recover emission-line kinematics and morphology from 2D slitless spectroscopy spectra.
**Key Features:**
- **JAX-accelerated**: GPU support for fast inference
- **Bayesian inference**: MCMC fitting using Numpyro's No-U-Turn Sampler (NUTS)
- **Flexible configuration**: Easy-to-use configuration system for priors and MCMC parameters
- **Comprehensive visualization**: Diagnostic plots and corner plots for fit results
## Installation
### Using pip (Recommended)
```bash
pip install astro-geko
```
### Using Conda
For a complete environment with all dependencies:
```bash
# Clone the repository
git clone https://github.com/angelicalola-danhaive/geko.git
cd geko
# Create conda environment
conda env create -f environment.yml
conda activate geko_env
# Install geko
pip install astro-geko
```
### Development Installation
If you want to install the development version:
```bash
# Clone the repository
git clone https://github.com/angelicalola-danhaive/geko.git
cd geko
# Install in editable mode
pip install -e .
```
### Requirements
- Python >= 3.8
- JAX/JAXlib (with optional GPU support)
- Numpyro
- Astropy
- Photutils
- PySersic
For GPU acceleration, follow the [JAX installation guide](https://jax.readthedocs.io/en/latest/installation.html) for CUDA support.
## Quick Start
```python
from geko.fitting import run_geko_fit
# Run a fit with minimal configuration
inference_data = run_geko_fit(
output='my_fit',
master_cat='path/to/catalog.cat',
line='Ha',
parametric=True,
save_runs_path='./saves/',
num_chains=2,
num_warmup=500,
num_samples=1000,
source_id=12345,
field='GOODS-S-FRESCO',
grism_filter='F444W'
)
```
See the [documentation](https://astro-geko.readthedocs.io) for detailed usage examples and tutorials.
## Citation
If you use Geko in your research, please cite the following [paper](https://arxiv.org/abs/2510.07369):
```bibtex
@article{Danhaive:2025ac,
author = {{Danhaive}, A. Lola and {Tacchella}, Sandro},
journal = {arXiv e-prints},
month = oct,
pages = {arXiv:2510.07369},
title = {{Modelling the kinematics and morphology of galaxies in slitless spectroscopy with _geko_}},
year = 2025}
```
## Acknowledgements
We acknowledge support from the Royal Society Research Grants (G125142). We thank Amanda Stoffers for creating our beautiful logo.
This package makes use of:
- [JAX](https://github.com/google/jax) for accelerated numerical computing
- [Numpyro](https://github.com/pyro-ppl/numpyro) for probabilistic programming
- [Astropy](https://www.astropy.org/) for astronomical data handling
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "astro-geko",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "astronomy, jwst, grism, spectroscopy, kinematics, bayesian, mcmc",
"author": null,
"author_email": "\"A. Lola Danhaive\" <angelicalola.danhaive@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/16/b9/ad963fe8f5617d5939fc62deb438e5e4f817231e35bb9fea176d06cb0596/astro_geko-1.0.0.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n <img src=\"https://raw.githubusercontent.com/angelicalola-danhaive/geko/main/doc/_static/geko_logo.png\" alt=\"Geko Logo\" width=\"300\"/>\n\n # the **G**rism **E**mission-line **K**inematics t**O**ol\n\n [](https://opensource.org/licenses/MIT)\n [](https://www.python.org/downloads/)\n [](https://github.com/angelicalola-danhaive/geko/actions/workflows/tests.yml)\n\n</div>\n\n## Description\n\nGeko is a Python package for analyzing grism spectroscopy from JWST NIRCam observations. The package uses JAX for accelerated computation and Numpyro for Bayesian inference to recover emission-line kinematics and morphology from 2D slitless spectroscopy spectra.\n\n**Key Features:**\n- **JAX-accelerated**: GPU support for fast inference\n- **Bayesian inference**: MCMC fitting using Numpyro's No-U-Turn Sampler (NUTS)\n- **Flexible configuration**: Easy-to-use configuration system for priors and MCMC parameters\n- **Comprehensive visualization**: Diagnostic plots and corner plots for fit results\n\n## Installation\n\n### Using pip (Recommended)\n\n```bash\npip install astro-geko\n```\n\n### Using Conda\n\nFor a complete environment with all dependencies:\n\n```bash\n# Clone the repository\ngit clone https://github.com/angelicalola-danhaive/geko.git\ncd geko\n\n# Create conda environment\nconda env create -f environment.yml\nconda activate geko_env\n\n# Install geko\npip install astro-geko\n```\n\n### Development Installation\n\nIf you want to install the development version:\n\n```bash\n# Clone the repository\ngit clone https://github.com/angelicalola-danhaive/geko.git\ncd geko\n\n# Install in editable mode\npip install -e .\n```\n\n### Requirements\n\n- Python >= 3.8\n- JAX/JAXlib (with optional GPU support)\n- Numpyro\n- Astropy\n- Photutils\n- PySersic\n\nFor GPU acceleration, follow the [JAX installation guide](https://jax.readthedocs.io/en/latest/installation.html) for CUDA support.\n\n## Quick Start\n\n```python\nfrom geko.fitting import run_geko_fit\n\n# Run a fit with minimal configuration\ninference_data = run_geko_fit(\n output='my_fit',\n master_cat='path/to/catalog.cat',\n line='Ha',\n parametric=True,\n save_runs_path='./saves/',\n num_chains=2,\n num_warmup=500,\n num_samples=1000,\n source_id=12345,\n field='GOODS-S-FRESCO',\n grism_filter='F444W'\n)\n```\n\nSee the [documentation](https://astro-geko.readthedocs.io) for detailed usage examples and tutorials.\n\n## Citation\n\nIf you use Geko in your research, please cite the following [paper](https://arxiv.org/abs/2510.07369):\n\n```bibtex\n\n@article{Danhaive:2025ac,\n\tauthor = {{Danhaive}, A. Lola and {Tacchella}, Sandro},\n\tjournal = {arXiv e-prints},\n\tmonth = oct,\n\tpages = {arXiv:2510.07369},\n\ttitle = {{Modelling the kinematics and morphology of galaxies in slitless spectroscopy with _geko_}},\n\tyear = 2025}\n```\n\n## Acknowledgements\n\nWe acknowledge support from the Royal Society Research Grants (G125142). We thank Amanda Stoffers for creating our beautiful logo. \n\nThis package makes use of:\n- [JAX](https://github.com/google/jax) for accelerated numerical computing\n- [Numpyro](https://github.com/pyro-ppl/numpyro) for probabilistic programming\n- [Astropy](https://www.astropy.org/) for astronomical data handling\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Geko: the Grism Emission-line Kinematics tOol",
"version": "1.0.0",
"project_urls": {
"Documentation": "https://astro-geko.readthedocs.io",
"Homepage": "https://github.com/angelicalola-danhaive/geko",
"Repository": "https://github.com/angelicalola-danhaive/geko"
},
"split_keywords": [
"astronomy",
" jwst",
" grism",
" spectroscopy",
" kinematics",
" bayesian",
" mcmc"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "eeb392b45b3518a366bdfdbd06b2defb10e7fa16a9c632a6b1e00d1185abfa1a",
"md5": "4539dbbcf5be4b1213c534a037924c04",
"sha256": "057802c3e2d8bc8903646bc7d0993a014c998c13f10181474ccb925dcd56d01e"
},
"downloads": -1,
"filename": "astro_geko-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4539dbbcf5be4b1213c534a037924c04",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 63725,
"upload_time": "2025-10-10T18:28:45",
"upload_time_iso_8601": "2025-10-10T18:28:45.194061Z",
"url": "https://files.pythonhosted.org/packages/ee/b3/92b45b3518a366bdfdbd06b2defb10e7fa16a9c632a6b1e00d1185abfa1a/astro_geko-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "16b9ad963fe8f5617d5939fc62deb438e5e4f817231e35bb9fea176d06cb0596",
"md5": "b858efbf91fea77c7b7f7a2859d0aff3",
"sha256": "fc33c18c5eb035c25100f8dad346e8b32c0b48ae885fbc8e48e557f1170c71ab"
},
"downloads": -1,
"filename": "astro_geko-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "b858efbf91fea77c7b7f7a2859d0aff3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 64962,
"upload_time": "2025-10-10T18:28:46",
"upload_time_iso_8601": "2025-10-10T18:28:46.823262Z",
"url": "https://files.pythonhosted.org/packages/16/b9/ad963fe8f5617d5939fc62deb438e5e4f817231e35bb9fea176d06cb0596/astro_geko-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-10 18:28:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "angelicalola-danhaive",
"github_project": "geko",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "corner",
"specs": [
[
"==",
"2.2.3"
]
]
},
{
"name": "jax",
"specs": [
[
"==",
"0.6.1"
]
]
},
{
"name": "jaxlib",
"specs": [
[
"==",
"0.6.1"
]
]
},
{
"name": "numpyro",
"specs": [
[
"==",
"0.18.0"
]
]
},
{
"name": "jax-cosmo",
"specs": [
[
"==",
"0.1.0"
]
]
}
],
"lcname": "astro-geko"
}