A Python package for zodiacal light simulations
Project description
ZodiPy is an Astropy affiliated package for simulating zodiacal light in intensity for arbitrary solar system observers.
Documentation
See the documentation for a list of supported zodiacal light models and examples of how to use ZodiPy.
A simple example
import astropy.units as u
from astropy.coordinates import SkyCoord
from astropy.time import Time
import zodipy
# Initialize a zodiacal light model at a wavelength/frequency or over a bandpass
model = zodipy.Model(25*u.micron)
# Use Astropy's `SkyCoord` object to specify coordinates
lon = [10, 10.1, 10.2] * u.deg
lat = [90, 89, 88] * u.deg
obstimes = Time(["2022-01-01 12:00:00", "2022-01-01 12:01:00", "2022-01-01 12:02:00"])
skycoord = SkyCoord(lon, lat, obstime=obstimes, frame="galactic")
# Evaluate the zodiacal light model
emission = model.evaluate(skycoord)
print(emission)
#> [27.52410841 27.66572294 27.81251906] MJy / sr
Related scientific papers
See CITATION
- Cosmoglobe: Simulating zodiacal emission with ZodiPy (San et al. 2022).
- ZodiPy: A Python package for zodiacal light simulations (San 2024).
Install
ZodiPy is installed with pip
pip install zodipy
Dependencies
ZodiPy supports all Python versions >= 3.9, and has the following dependencies:
For developers
Poetry
ZodiPy uses Poetry for development. To build and commit to the repository with the existing pre-commit setup, developers need to have Poetry (>= 1.8.0) installed. See the Poetry documentation for installation guide.
After poetry has been installed, developers should create a new virtual environment and run the following in the root of the ZodiPy repositry
poetry install
This will download all dependencies (including dev)from pyproject.toml
, and poetry.lock
.
Tests, linting and formatting, and building documentation
The following tools should be run from the root of the repository with no errors. (These are ran automatically as part of the CI workflows on GitHub, but should be tested locally first)
pytest
Testing is done with pytest. To run the tests, run the following command from the repository root
pytest
ruff
Formating and linting is done with ruff. To format and lint, run the following command from the repository root
ruff check
ruff format
mypy
ZodiPy is fully typed. We use mypy as a static type checker. To type check, run the following command from the repositry root
mypy zodipy/
Remeber to add tests when implementing new features to maintain a high code coverage.
MkDocs
We use MkDocs to create our documentation. To serve the docs locally on you machine, run the following from the repositry root
mkdocs serve
Funding
This work has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No 776282 (COMPET-4; BeyondPlanck), 772253 (ERC; bits2cosmology) and 819478 (ERC; Cosmoglobe).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.