Skip to content

Commit

Permalink
Merge pull request #16 from Cosmoglobe/joss
Browse files Browse the repository at this point in the history
Add paper directory for JOSS listing. Add SciPy as a direct dependency
  • Loading branch information
MetinSa authored Apr 10, 2024
2 parents c665d5f + c268e31 commit 27334be
Show file tree
Hide file tree
Showing 9 changed files with 488 additions and 137 deletions.
23 changes: 23 additions & 0 deletions .github/workflows/draft-pdf.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
on: [push, workflow_dispatch]

jobs:
paper:
runs-on: ubuntu-latest
name: Paper Draft
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build draft PDF
uses: openjournals/openjournals-draft-action@master
with:
journal: joss
# This should be the path to the paper within your repo.
paper-path: paper/paper.md
- name: Upload
uses: actions/upload-artifact@v1
with:
name: paper
# This is the output path where Pandoc will write the compiled
# PDF. Note, this should be the same directory as the input
# paper.md
path: paper/paper.pdf
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -172,3 +172,5 @@ settings.json
#files
test.py
context.py

*.pdf
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
---


ZodiPy is an [Astropy affiliated](https://www.astropy.org/affiliated/) package, which simulates the zodiacal light in intensity that an arbitrary solar system observer is predicted to see given an interplanetary dust model and a scanning strategy, either in the form of timestreams or HEALPix maps.
ZodiPy is an [Astropy affiliated](https://www.astropy.org/affiliated/) package for simulating zodiacal light in intensity for arbitrary Solar system observers.

![plot](docs/img/zodipy_map.png)

Expand All @@ -29,6 +29,7 @@ ZodiPy supports all Python versions >= 3.8, and has the following dependencies:
- [NumPy](https://numpy.org/)
- [healpy](https://healpy.readthedocs.io/en/latest/)
- [jplephem](https://pypi.org/project/jplephem/)
- [SciPy](https://scipy.org/)


# A simple example
Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
[![arXiv Paper](https://img.shields.io/badge/arXiv-2205.12962-green?style=flat-square&logo=arxiv)](https://arxiv.org/abs/2205.12962)
[![ascl:2306.012](https://img.shields.io/badge/ascl-2306.012-blue.svg?colorB=262255&style=flat-square)](https://ascl.net/2306.012)

ZodiPy is an [Astropy affiliated](https://www.astropy.org/affiliated/) package, which simulates the zodiacal light in intensity that an arbitrary solar system observer is predicted to see given an interplanetary dust model and a scanning strategy, either in the form of timestreams or HEALPix maps.
ZodiPy is an [Astropy affiliated](https://www.astropy.org/affiliated/) package for simulating zodiacal light in intensity for arbitrary Solar system observers.
![ZodiPy Logo](img/zodipy_map.png)


Expand Down
5 changes: 3 additions & 2 deletions docs/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ pip install zodipy
## Dependencies
ZodiPy has the following dependencies (these are automatically downloaded alongside ZodiPy):

- [numpy](https://numpy.org)
- [astropy](https://www.astropy.org) (>= 5.0.1)
- [Astropy](https://www.astropy.org) (>= 5.0.1)
- [NumPy](https://numpy.org)
- [healpy](https://healpy.readthedocs.io/en/latest/)
- [jplehem](https://pypi.org/project/jplephem/)
- [SciPy](https://scipy.org/)
233 changes: 233 additions & 0 deletions paper/paper.bib

Large diffs are not rendered by default.

89 changes: 89 additions & 0 deletions paper/paper.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
title: 'ZodiPy: A Python package for zodiacal light simulations'
tags:
- Python
- astronomy
- cosmology
- zodiacal light
- interplanetary dust
authors:
- name: Metin San
orcid: 0000-0003-4648-8729
equal-contrib: true
affiliation: "1"
affiliations:
- name: Metin San, PhD. Fellow, University of Oslo, Norway
index: 1
date: 10 April 2024
bibliography: paper.bib

# Optional fields if submitting to a AAS journal too, see this blog post:
# https://blog.joss.theoj.org/2018/12/a-new-collaboration-with-aas-publishing
# aas-doi: 10.3847/xxxxx <- update this with the DOI from AAS once you know it.
# aas-journal: Astrophysical Journal <- The name of the AAS journal.
---


# Summary
`ZodiPy` is an Astropy-affiliated Python package for zodiacal light simulations.
Its purpose is to provide the astrophysics and cosmology communities with an
accessible and easy-to-use Python interface to existing zodiacal light models,
assisting in the analysis of infrared astrophysical data and enabling quick and easy
zodiacal light forecasting for future experiments. `ZodiPy` implements the
@Kelsall1998 and the @Planck2014 interplanetary dust models, which allow for
zodiacal light simulations between $1.25-240\mu$m and $30-857$GHz, respectively,
with the possibility of extrapolating the models to other frequencies.

# Statement of need
Zodiacal light is the main source of diffuse radiation observed in the infrared
sky between $1-100\mu$m. The light comes from scattering and re-emission of
sunlight by dust grains in the interplanetary medium. Zodiacal light is one of the
most challenging foregrounds to model in cosmological studies of the Extragalactic
Background Light (EBL) in the infrared sky, primarily due to its seasonal nature.

Traditionally, observers of the infrared sky have had to build their own zodiacal
light tools (see the
[LAMBDA foreground models page](https://lambda.gsfc.nasa.gov/product/foreground/fg_models.html)
for a list of existing tools). However, these programs are either
only usable for specific experiments or otherwise difficult to access by requiring
licensed programming languages or the use of web interfaces. Modern astronomy and
cosmology pipelines are commonly built in Python due to the wide range of available
high-quality tools and open-source projects and communities, such as the Astropy
project [@astropy]. The lack of a general-purpose zodiacal light tool in this space
was the primary motivation behind the development of the `ZodiPy` package.

`ZodiPy` can be used to simulate zodiacal light for arbitrary Solar system observers,
meaning that researchers no longer have to spend time developing their own tools from
scratch. To use `ZodiPy`, the user is required to provide the following data:

1) A sequence of pointings, either in ecliptic or galactic coordinates. These can
be specified as angles on the sky or as HEALPix [@Gorski2005] pixel indices.
2) A center frequency or an instrument bandpass.
3) Time of observation, corresponding to the pointing sequence.
4) The heliocentric ecliptic position of the observer. If the observer is located
at a major Solar system object, such as the Earth or the Sun-Earth-Moon barycenter
L2, the position is instead queried through the `astropy.coordinates` Solar system
ephemerides.

The predicted zodiacal light is then obtained by evaluating a sequence of
line-of-sight integrals from the position of the observer and through a
model of the three-dimensional interplanetary dust distribution. For
implementation details and examples of how to apply `ZodiPy` to a real-world
dataset, see @San2022.

`ZodiPy` has been rapidly adopted by the astronomy community, and the package has
already been used by several research projects (see @2023arXiv230617219A;
@2023arXiv230617226R; @Tsumura2023; @Avitan2023; @Hanzawa2024), for instance in
assisting the coming NASA Roman Space Telescope in determining its observational
fields, or to modeling data obtained aboard the Hayabusa2 JAXA satellite.

# Acknowledgements
This work has received funding from the European Union’s Horizon 2020 research and
innovation programme under grant agreement numbers 819478 (ERC; Cosmoglobe) and
772253 (ERC;bits2cosmology).

This project uses the following Python packages: Astropy [@astropy], NumPy
[@numpy2011; @numpy2020], healpy [@Zonca2019], SciPy [@scipy2020], and jplephem
[@2011ascl.soft12014R].

# References
Loading

0 comments on commit 27334be

Please sign in to comment.