nyx-astro 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nyx_astro-0.2.1/CHANGELOG.md +21 -0
- nyx_astro-0.2.1/CITATION.cff +25 -0
- nyx_astro-0.2.1/CONTRIBUTING.md +155 -0
- nyx_astro-0.2.1/LICENSE +29 -0
- nyx_astro-0.2.1/MANIFEST.in +8 -0
- nyx_astro-0.2.1/PKG-INFO +113 -0
- nyx_astro-0.2.1/README.md +57 -0
- nyx_astro-0.2.1/licenses/DATA.rst +200 -0
- nyx_astro-0.2.1/licenses/README.rst +9 -0
- nyx_astro-0.2.1/nyx/__init__.py +132 -0
- nyx_astro-0.2.1/nyx/atmosphere/__init__.py +35 -0
- nyx_astro-0.2.1/nyx/atmosphere/components.py +336 -0
- nyx_astro-0.2.1/nyx/atmosphere/single_scattering.py +321 -0
- nyx_astro-0.2.1/nyx/core/__init__.py +105 -0
- nyx_astro-0.2.1/nyx/core/coordinates.py +148 -0
- nyx_astro-0.2.1/nyx/core/filters.py +91 -0
- nyx_astro-0.2.1/nyx/core/geometry.py +145 -0
- nyx_astro-0.2.1/nyx/core/observation.py +328 -0
- nyx_astro-0.2.1/nyx/core/parameter.py +181 -0
- nyx_astro-0.2.1/nyx/core/paramtree.py +462 -0
- nyx_astro-0.2.1/nyx/core/pipeline.py +170 -0
- nyx_astro-0.2.1/nyx/core/protocols.py +216 -0
- nyx_astro-0.2.1/nyx/core/records.py +162 -0
- nyx_astro-0.2.1/nyx/core/scene.py +336 -0
- nyx_astro-0.2.1/nyx/core/units.py +100 -0
- nyx_astro-0.2.1/nyx/data/__init__.py +6 -0
- nyx_astro-0.2.1/nyx/data/anderson2012_xhip_suppl.dat +92 -0
- nyx_astro-0.2.1/nyx/data/eso_skycalc_airglow_130sfu.dat +4403 -0
- nyx_astro-0.2.1/nyx/data/eso_skycalc_ozone_absorption.dat +703 -0
- nyx_astro-0.2.1/nyx/data/jones2013_lunar_rolo.dat +26 -0
- nyx_astro-0.2.1/nyx/data/leinert1998_zodiacal_light.dat +20 -0
- nyx_astro-0.2.1/nyx/data/pickles1998_trds_atlas.dat +132 -0
- nyx_astro-0.2.1/nyx/emitter/__init__.py +21 -0
- nyx_astro-0.2.1/nyx/emitter/airglow.py +187 -0
- nyx_astro-0.2.1/nyx/emitter/base.py +145 -0
- nyx_astro-0.2.1/nyx/emitter/catalog.py +160 -0
- nyx_astro-0.2.1/nyx/emitter/catalogs/__init__.py +12 -0
- nyx_astro-0.2.1/nyx/emitter/catalogs/astrometry.py +158 -0
- nyx_astro-0.2.1/nyx/emitter/catalogs/gaia.py +136 -0
- nyx_astro-0.2.1/nyx/emitter/catalogs/index.py +98 -0
- nyx_astro-0.2.1/nyx/emitter/catalogs/xhip.py +82 -0
- nyx_astro-0.2.1/nyx/emitter/moon.py +250 -0
- nyx_astro-0.2.1/nyx/emitter/point_source.py +103 -0
- nyx_astro-0.2.1/nyx/emitter/sources.py +47 -0
- nyx_astro-0.2.1/nyx/emitter/stars.py +378 -0
- nyx_astro-0.2.1/nyx/emitter/zodiacal.py +191 -0
- nyx_astro-0.2.1/nyx/infer/__init__.py +29 -0
- nyx_astro-0.2.1/nyx/infer/_common.py +57 -0
- nyx_astro-0.2.1/nyx/infer/convergence.py +185 -0
- nyx_astro-0.2.1/nyx/infer/multitarget.py +299 -0
- nyx_astro-0.2.1/nyx/infer/numpyro_bridge.py +152 -0
- nyx_astro-0.2.1/nyx/infer/optimizer.py +362 -0
- nyx_astro-0.2.1/nyx/infer/profile.py +78 -0
- nyx_astro-0.2.1/nyx/infer/uncertainty.py +397 -0
- nyx_astro-0.2.1/nyx/instrument/__init__.py +11 -0
- nyx_astro-0.2.1/nyx/instrument/aperture_table.py +260 -0
- nyx_astro-0.2.1/nyx/instrument/effective_aperture.py +364 -0
- nyx_astro-0.2.1/nyx/instrument/interpolation.py +368 -0
- nyx_astro-0.2.1/nyx/py.typed +0 -0
- nyx_astro-0.2.1/nyx/spectra/__init__.py +39 -0
- nyx_astro-0.2.1/nyx/spectra/library.py +403 -0
- nyx_astro-0.2.1/nyx/spectra/models.py +55 -0
- nyx_astro-0.2.1/nyx/spectra/resample.py +119 -0
- nyx_astro-0.2.1/nyx_astro.egg-info/PKG-INFO +113 -0
- nyx_astro-0.2.1/nyx_astro.egg-info/SOURCES.txt +70 -0
- nyx_astro-0.2.1/nyx_astro.egg-info/dependency_links.txt +1 -0
- nyx_astro-0.2.1/nyx_astro.egg-info/requires.txt +35 -0
- nyx_astro-0.2.1/nyx_astro.egg-info/top_level.txt +1 -0
- nyx_astro-0.2.1/pyproject.toml +158 -0
- nyx_astro-0.2.1/setup.cfg +4 -0
- nyx_astro-0.2.1/tests/__init__.py +3 -0
- nyx_astro-0.2.1/tests/conftest.py +1 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
## v0.2.1 (2026-09-27)
|
|
2
|
+
|
|
3
|
+
### Fix
|
|
4
|
+
|
|
5
|
+
- **pyproject**: change name to nyx-astro for pypi
|
|
6
|
+
|
|
7
|
+
## v0.2.0 (2026-09-24)
|
|
8
|
+
|
|
9
|
+
### Feat
|
|
10
|
+
|
|
11
|
+
- **refactor**: Major refactor, version overhaul before version 0.3.0 with tests
|
|
12
|
+
- **emitter**: added a bright stars emitter, fixed some issues with zodiacal light
|
|
13
|
+
- **core,-stars**: improved on light curve feature
|
|
14
|
+
|
|
15
|
+
### Fix
|
|
16
|
+
|
|
17
|
+
- **instrument**: indirect scattering was incorrectly aligned
|
|
18
|
+
- **spectra**: fixed unit problems with scipy simpson
|
|
19
|
+
- **docs**: formatting issues
|
|
20
|
+
|
|
21
|
+
## v0.1.0 (2026-06-05)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
cff-version: 1.2.0
|
|
2
|
+
message: "If you use nyx in your research, please cite it using the metadata from this file."
|
|
3
|
+
title: "nyx: Differentiable Simulation of Night Sky Background in Imaging Atmospheric Cherenkov Telescopes"
|
|
4
|
+
abstract: >-
|
|
5
|
+
nyx models the night sky background for IACT telescopes, enabling parameter
|
|
6
|
+
estimation through HMC fitting or gradient-based optimization.
|
|
7
|
+
type: software
|
|
8
|
+
authors:
|
|
9
|
+
- family-names: "Roellinghoff"
|
|
10
|
+
given-names: "Gerrit"
|
|
11
|
+
email: "gerrit.roellinghoff@fau.de"
|
|
12
|
+
version: "0.2.1"
|
|
13
|
+
date-released: "2026-09-27"
|
|
14
|
+
license: BSD-3-Clause
|
|
15
|
+
repository-code: "https://github.com/GerritRo/nyx"
|
|
16
|
+
url: "https://gerritro.github.io/nyx/"
|
|
17
|
+
keywords:
|
|
18
|
+
- sky-brightness
|
|
19
|
+
- atmosphere
|
|
20
|
+
- astronomy
|
|
21
|
+
- astrophysics
|
|
22
|
+
- jax
|
|
23
|
+
- differentiable
|
|
24
|
+
# Note: nyx bundles and downloads third-party datasets that carry their own
|
|
25
|
+
# citation requirements. See licenses/DATA.rst.
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# Contributing to nyx
|
|
2
|
+
|
|
3
|
+
## Development Setup
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
# Fork on GitHub, then:
|
|
7
|
+
git clone https://github.com/<your-username>/nyx.git
|
|
8
|
+
cd nyx
|
|
9
|
+
git remote add upstream https://github.com/GerritRo/nyx.git
|
|
10
|
+
|
|
11
|
+
python -m venv .venv && source .venv/bin/activate
|
|
12
|
+
pip install -e ".[dev]"
|
|
13
|
+
|
|
14
|
+
# Verify everything works
|
|
15
|
+
pytest
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Workflow (Gitflow)
|
|
21
|
+
|
|
22
|
+
We use a **Gitflow** model: `main` holds tagged releases, `dev` is the
|
|
23
|
+
integration branch. All work happens on short-lived branches off `dev`.
|
|
24
|
+
|
|
25
|
+
| Branch prefix | Purpose | Target |
|
|
26
|
+
|--------------------|-------------------------|---------|
|
|
27
|
+
| `feature/<name>` | New features | `dev` |
|
|
28
|
+
| `bugfix/<name>` | Bug fixes | `dev` |
|
|
29
|
+
| `hotfix/<x.y.z>` | Urgent fixes in prod | `main` |
|
|
30
|
+
| `release/<x.y.z>` | Release prep | `main` |
|
|
31
|
+
|
|
32
|
+
**Typical contribution flow:**
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
git fetch upstream && git checkout -b feature/my-change upstream/dev
|
|
36
|
+
|
|
37
|
+
# ... develop, commit, test ...
|
|
38
|
+
|
|
39
|
+
git push origin feature/my-change
|
|
40
|
+
# Open a PR targeting dev
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Keep branches short-lived. Rebase on `upstream/dev` before opening a PR.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Committing with Commitizen
|
|
48
|
+
|
|
49
|
+
We use [Commitizen](https://commitizen-tools.github.io/commitizen/) to enforce
|
|
50
|
+
[Conventional Commits](https://www.conventionalcommits.org/) and generate
|
|
51
|
+
changelogs automatically. Use `cz commit` instead of `git commit`:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
cz commit
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
This walks you through an interactive prompt:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
? Select the type of change you are committing: (Use arrow keys)
|
|
61
|
+
» fix: A bug fix
|
|
62
|
+
feat: A new feature
|
|
63
|
+
docs: Documentation only changes
|
|
64
|
+
refactor: A code change that neither fixes a bug nor adds a feature
|
|
65
|
+
perf: A code change that improves performance
|
|
66
|
+
test: Adding missing or correcting existing tests
|
|
67
|
+
build: Changes that affect the build system or dependencies
|
|
68
|
+
ci: Changes to CI configuration files and scripts
|
|
69
|
+
chore: Other changes that don't modify src or test files
|
|
70
|
+
|
|
71
|
+
? What is the scope of this change? (press enter to skip)
|
|
72
|
+
core, atmosphere, emitter, infer, instrument, utils
|
|
73
|
+
|
|
74
|
+
? Write a short, imperative description of the change:
|
|
75
|
+
> add lunar phase correction to Jones2013
|
|
76
|
+
|
|
77
|
+
? Provide additional contextual information (press enter to skip):
|
|
78
|
+
> The phase angle was not correctly mapped for waning phases
|
|
79
|
+
|
|
80
|
+
? Is this a BREAKING CHANGE? No
|
|
81
|
+
? Footer (press enter to skip, e.g. "Closes #42"):
|
|
82
|
+
> Fixes #12
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Result: `fix(emitter): add lunar phase correction to Jones2013`
|
|
86
|
+
|
|
87
|
+
You can also write commit messages manually -- the format is:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
<type>(<scope>): <description>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Breaking changes use `!` after the type: `feat(core)!: require explicit bandpass`
|
|
94
|
+
|
|
95
|
+
**Why this matters:** `CHANGELOG.md` is generated directly from these commit
|
|
96
|
+
messages at release time via `cz bump --changelog`.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Pull Requests
|
|
101
|
+
|
|
102
|
+
- **Title** follows Conventional Commits format (it becomes the merge commit message)
|
|
103
|
+
- **Target branch** is `dev` (unless it's a hotfix targeting `main`)
|
|
104
|
+
- **PR checklist:**
|
|
105
|
+
- [ ] Tests pass (`pytest`)
|
|
106
|
+
- [ ] Lint passes (`ruff check nyx`)
|
|
107
|
+
- [ ] Types pass (`mypy nyx`)
|
|
108
|
+
- [ ] New code has tests
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Code Quality
|
|
113
|
+
|
|
114
|
+
### Quick reference
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
ruff check nyx # Lint
|
|
118
|
+
ruff check --fix nyx # Lint + auto-fix
|
|
119
|
+
ruff format nyx # Format
|
|
120
|
+
mypy nyx/core # Type check core
|
|
121
|
+
mypy nyx/infer # Type check infer
|
|
122
|
+
pytest # Tests
|
|
123
|
+
pytest --cov=nyx --cov-report=html # Coverage report
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Documentation
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
pip install -e ".[docs]"
|
|
130
|
+
cd docs && make html
|
|
131
|
+
# Open docs/_build/html/index.html
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
- **Example notebooks** go in `docs/examples/` and must be added to `docs/examples/index.rst`
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Release Process
|
|
139
|
+
|
|
140
|
+
Maintainers only. Uses [Semantic Versioning](https://semver.org/) (`MAJOR.MINOR.PATCH`).
|
|
141
|
+
|
|
142
|
+
1. Create `release/x.y.z` from `dev`
|
|
143
|
+
2. `cz bump --changelog` to bump version + generate changelog
|
|
144
|
+
3. Run full test suite + benchmarks + doc build
|
|
145
|
+
4. Merge into `main`, tag `vx.y.z`, backmerge into `dev`
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Getting Help
|
|
150
|
+
|
|
151
|
+
- [GitHub Issues](https://github.com/GerritRo/nyx/issues) for bugs and feature requests
|
|
152
|
+
- [Documentation](https://gerritro.github.io/nyx/)
|
|
153
|
+
- Email: gerrit.roellinghoff@fau.de
|
|
154
|
+
|
|
155
|
+
If unsure about a change, open an issue first to discuss the approach.
|
nyx_astro-0.2.1/LICENSE
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026, Gerrit Roellinghoff
|
|
4
|
+
All rights reserved.
|
|
5
|
+
|
|
6
|
+
Redistribution and use in source and binary forms, with or without
|
|
7
|
+
modification, are permitted provided that the following conditions are met:
|
|
8
|
+
|
|
9
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
10
|
+
list of conditions and the following disclaimer.
|
|
11
|
+
|
|
12
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
and/or other materials provided with the distribution.
|
|
15
|
+
|
|
16
|
+
3. Neither the name of the copyright holder nor the names of its
|
|
17
|
+
contributors may be used to endorse or promote products derived from
|
|
18
|
+
this software without specific prior written permission.
|
|
19
|
+
|
|
20
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
21
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
22
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
23
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
24
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
25
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
26
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
27
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
28
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
29
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
nyx_astro-0.2.1/PKG-INFO
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: nyx-astro
|
|
3
|
+
Version: 0.2.1
|
|
4
|
+
Summary: Differentiable Simulation of NSB in IACTs using JAX
|
|
5
|
+
Author-email: Gerrit Roellinghoff <gerrit.roellinghoff@fau.de>
|
|
6
|
+
Maintainer-email: Gerrit Roellinghoff <gerrit.roellinghoff@fau.de>
|
|
7
|
+
License-Expression: BSD-3-Clause AND LicenseRef-Nyx-Data
|
|
8
|
+
Project-URL: Homepage, https://github.com/GerritRo/nyx
|
|
9
|
+
Project-URL: Documentation, https://gerritro.github.io/nyx/
|
|
10
|
+
Project-URL: Repository, https://github.com/GerritRo/nyx.git
|
|
11
|
+
Project-URL: Issues, https://github.com/GerritRo/nyx/issues
|
|
12
|
+
Keywords: sky-brightness,atmosphere,astronomy,astrophysics,jax,differentiable,healpix,zodiacal-light,airglow
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Intended Audience :: Science/Research
|
|
15
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
16
|
+
Classifier: Topic :: Scientific/Engineering :: Astronomy
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Operating System :: OS Independent
|
|
19
|
+
Classifier: Typing :: Typed
|
|
20
|
+
Requires-Python: >=3.12
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
License-File: licenses/DATA.rst
|
|
24
|
+
License-File: licenses/README.rst
|
|
25
|
+
Requires-Dist: numpy>=2.0
|
|
26
|
+
Requires-Dist: scipy>=1.11
|
|
27
|
+
Requires-Dist: astropy>=6.0
|
|
28
|
+
Requires-Dist: healpy>=1.16
|
|
29
|
+
Requires-Dist: jax-healpy>=0.3
|
|
30
|
+
Requires-Dist: dust_extinction>=1.3
|
|
31
|
+
Requires-Dist: jax>=0.4.25
|
|
32
|
+
Requires-Dist: equinox>=0.11
|
|
33
|
+
Requires-Dist: optimistix>=0.0.7
|
|
34
|
+
Provides-Extra: gpu
|
|
35
|
+
Requires-Dist: jax[cuda12]; extra == "gpu"
|
|
36
|
+
Provides-Extra: iactrace
|
|
37
|
+
Requires-Dist: iactrace; extra == "iactrace"
|
|
38
|
+
Provides-Extra: numpyro
|
|
39
|
+
Requires-Dist: numpyro; extra == "numpyro"
|
|
40
|
+
Requires-Dist: corner; extra == "numpyro"
|
|
41
|
+
Provides-Extra: dev
|
|
42
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
43
|
+
Requires-Dist: pytest-cov>=4.0; extra == "dev"
|
|
44
|
+
Requires-Dist: jupyter>=1.0; extra == "dev"
|
|
45
|
+
Requires-Dist: mypy>=1.0; extra == "dev"
|
|
46
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
47
|
+
Requires-Dist: commitizen>=3.12.0; extra == "dev"
|
|
48
|
+
Requires-Dist: matplotlib; extra == "dev"
|
|
49
|
+
Provides-Extra: docs
|
|
50
|
+
Requires-Dist: sphinx; extra == "docs"
|
|
51
|
+
Requires-Dist: furo; extra == "docs"
|
|
52
|
+
Requires-Dist: sphinx-automodapi; extra == "docs"
|
|
53
|
+
Requires-Dist: sphinx-design; extra == "docs"
|
|
54
|
+
Requires-Dist: myst-nb; extra == "docs"
|
|
55
|
+
Dynamic: license-file
|
|
56
|
+
|
|
57
|
+
# nyx
|
|
58
|
+
|
|
59
|
+

|
|
60
|
+
[](LICENSE)
|
|
61
|
+
[](https://github.com/astral-sh/ruff)
|
|
62
|
+
|
|
63
|
+
**Differentiable Simulation of Night Sky Background in Imaging Atmospheric Cherenkov Telescopes**
|
|
64
|
+
|
|
65
|
+
nyx models the night sky background for IACT telescopes, enabling parameter estimation through HMC or gradient-based optimization.
|
|
66
|
+
|
|
67
|
+
## Features
|
|
68
|
+
|
|
69
|
+
- Fully differentiable computation for gradient-based optimization and Bayesian inference using JAX
|
|
70
|
+
- Zodiacal light, airglow, lunar brightness, and stellar catalogs are supported as emitters
|
|
71
|
+
- Effective aperture instrument models with spectral response
|
|
72
|
+
|
|
73
|
+
## Installation
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
pip install git+https://github.com/GerritRo/nyx/
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
For development:
|
|
80
|
+
```bash
|
|
81
|
+
git clone https://github.com/GerritRo/nyx.git
|
|
82
|
+
cd nyx
|
|
83
|
+
python -m venv .venv && source .venv/bin/activate
|
|
84
|
+
pip install -e ".[dev]"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Documentation
|
|
88
|
+
|
|
89
|
+
Full documentation and examples are available at: **https://gerritro.github.io/nyx/**
|
|
90
|
+
|
|
91
|
+
### Building Documentation Locally
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
pip install -e ".[docs]"
|
|
95
|
+
cd docs && make html
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## License
|
|
99
|
+
|
|
100
|
+
BSD-3-Clause License - see [LICENSE](https://github.com/GerritRo/nyx/blob/main/LICENSE) for details.
|
|
101
|
+
|
|
102
|
+
## Citation
|
|
103
|
+
|
|
104
|
+
If you use nyx in your research, please cite this repository.
|
|
105
|
+
|
|
106
|
+
## Data Attribution
|
|
107
|
+
|
|
108
|
+
nyx bundles and downloads scientific datasets produced by third parties
|
|
109
|
+
(Pickles 1998, Leinert et al. 1998, the ROLO lunar model, ESO SkyCalc,
|
|
110
|
+
Gaia DR3, STScI CALSPEC, and the SVO Filter Profile Service). These datasets
|
|
111
|
+
carry their own citation and acknowledgement requirements. If you publish
|
|
112
|
+
results obtained with nyx, cite the datasets you used as described in
|
|
113
|
+
[licenses/DATA.rst](https://github.com/GerritRo/nyx/blob/main/licenses/DATA.rst).
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# nyx
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+
[](LICENSE)
|
|
5
|
+
[](https://github.com/astral-sh/ruff)
|
|
6
|
+
|
|
7
|
+
**Differentiable Simulation of Night Sky Background in Imaging Atmospheric Cherenkov Telescopes**
|
|
8
|
+
|
|
9
|
+
nyx models the night sky background for IACT telescopes, enabling parameter estimation through HMC or gradient-based optimization.
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
|
|
13
|
+
- Fully differentiable computation for gradient-based optimization and Bayesian inference using JAX
|
|
14
|
+
- Zodiacal light, airglow, lunar brightness, and stellar catalogs are supported as emitters
|
|
15
|
+
- Effective aperture instrument models with spectral response
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pip install git+https://github.com/GerritRo/nyx/
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
For development:
|
|
24
|
+
```bash
|
|
25
|
+
git clone https://github.com/GerritRo/nyx.git
|
|
26
|
+
cd nyx
|
|
27
|
+
python -m venv .venv && source .venv/bin/activate
|
|
28
|
+
pip install -e ".[dev]"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Documentation
|
|
32
|
+
|
|
33
|
+
Full documentation and examples are available at: **https://gerritro.github.io/nyx/**
|
|
34
|
+
|
|
35
|
+
### Building Documentation Locally
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
pip install -e ".[docs]"
|
|
39
|
+
cd docs && make html
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## License
|
|
43
|
+
|
|
44
|
+
BSD-3-Clause License - see [LICENSE](https://github.com/GerritRo/nyx/blob/main/LICENSE) for details.
|
|
45
|
+
|
|
46
|
+
## Citation
|
|
47
|
+
|
|
48
|
+
If you use nyx in your research, please cite this repository.
|
|
49
|
+
|
|
50
|
+
## Data Attribution
|
|
51
|
+
|
|
52
|
+
nyx bundles and downloads scientific datasets produced by third parties
|
|
53
|
+
(Pickles 1998, Leinert et al. 1998, the ROLO lunar model, ESO SkyCalc,
|
|
54
|
+
Gaia DR3, STScI CALSPEC, and the SVO Filter Profile Service). These datasets
|
|
55
|
+
carry their own citation and acknowledgement requirements. If you publish
|
|
56
|
+
results obtained with nyx, cite the datasets you used as described in
|
|
57
|
+
[licenses/DATA.rst](https://github.com/GerritRo/nyx/blob/main/licenses/DATA.rst).
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
LicenseRef-Nyx-Data
|
|
2
|
+
===================
|
|
3
|
+
|
|
4
|
+
The data files in nyx/data/ are not covered by the BSD-3-Clause license.
|
|
5
|
+
They are redistributed for scientific use under the terms of their original
|
|
6
|
+
sources, with attribution as listed below.
|
|
7
|
+
|
|
8
|
+
If you publish results obtained with nyx, you are responsible for citing the
|
|
9
|
+
datasets you used in addition to citing nyx itself (see ``CITATION.cff`` in
|
|
10
|
+
the repository root).
|
|
11
|
+
|
|
12
|
+
The nyx source code is licensed under BSD-3-Clause (see ``LICENSE``).
|
|
13
|
+
The datasets described below are **not** covered by that license; they
|
|
14
|
+
remain under the terms of their respective originators. In particular, the
|
|
15
|
+
Gaia-derived dataset downloaded at runtime is distributed by ESA under a
|
|
16
|
+
non-commercial (CC BY-NC 3.0 IGO) license; commercial use of nyx in
|
|
17
|
+
configurations that rely on this dataset requires separate arrangement with
|
|
18
|
+
ESA.
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
Bundled data (shipped inside the package, in ``nyx/data/``)
|
|
22
|
+
-----------------------------------------------------------
|
|
23
|
+
|
|
24
|
+
Pickles (1998) stellar spectral atlas
|
|
25
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
26
|
+
|
|
27
|
+
:Files: ``pickles1998_trds_atlas.dat``
|
|
28
|
+
:Used by: ``nyx.spectra.SpectralGrid.from_pickles1998``, behind the stellar
|
|
29
|
+
spectral models of ``Stars``, ``BrightStars`` and ``gaia_star_field``
|
|
30
|
+
:Description: Library of stellar spectral templates spanning a wide range of
|
|
31
|
+
spectral types, used here as the empirical spectral model for stars.
|
|
32
|
+
:Reference: Pickles, A. J. 1998, "A Stellar Spectral Flux Library:
|
|
33
|
+
1150-25000 A", PASP, 110, 863. DOI: 10.1086/316197
|
|
34
|
+
:Usage terms: Published in the peer-reviewed literature and freely available
|
|
35
|
+
for research use; please cite the reference above.
|
|
36
|
+
|
|
37
|
+
Leinert et al. (1998) zodiacal light
|
|
38
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
39
|
+
|
|
40
|
+
:Files: ``leinert1998_zodiacal_light.dat``
|
|
41
|
+
:Used by: ``nyx.emitter.ZodiacalLight.from_leinert1998``
|
|
42
|
+
:Description: Tabulated zodiacal light brightness as a function of ecliptic
|
|
43
|
+
coordinates.
|
|
44
|
+
:Reference: Leinert, C., Bowyer, S., Haikala, L. K., et al. 1998, "The 1997
|
|
45
|
+
reference of diffuse night sky brightness", A&AS, 127, p. 1-99
|
|
46
|
+
DOI: 10.1051/aas:1998105
|
|
47
|
+
:Usage terms: Published in the peer-reviewed literature and freely available
|
|
48
|
+
for research use; please cite the reference above.
|
|
49
|
+
|
|
50
|
+
ROLO lunar irradiance model coefficients
|
|
51
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
52
|
+
|
|
53
|
+
:Files: ``jones2013_lunar_rolo.dat``
|
|
54
|
+
:Used by: ``nyx.emitter.Moon.from_jones2013``
|
|
55
|
+
:Description: Fit coefficients of the ROLO (RObotic Lunar Observatory) lunar
|
|
56
|
+
irradiance model, in 25 wavelength bands.
|
|
57
|
+
:Note on naming: The file name and ``Moon.from_jones2013`` refer to the
|
|
58
|
+
sky-brightness model of Jones et al. (2013), which adopts the ROLO model.
|
|
59
|
+
The coefficient values themselves originate with Kieffer & Stone (2005).
|
|
60
|
+
Both works should be cited.
|
|
61
|
+
:References:
|
|
62
|
+
* Kieffer, H. H. & Stone, T. C. 2005, "The Spectral Irradiance of the
|
|
63
|
+
Moon", AJ, 129, 2887. DOI: 10.1086/430185
|
|
64
|
+
* Jones, A., Noll, S., Kausch, W., et al. 2013, "An advanced scattered
|
|
65
|
+
moonlight model for Cerro Paranal", A&A, 560, A91.
|
|
66
|
+
DOI: 10.1051/0004-6361/201322433
|
|
67
|
+
:Usage terms: Published in the peer-reviewed literature and freely available
|
|
68
|
+
for research use; please cite the references above.
|
|
69
|
+
|
|
70
|
+
ESO SkyCalc airglow and ozone spectra
|
|
71
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
72
|
+
|
|
73
|
+
:Files: ``eso_skycalc_airglow_130sfu.dat``,
|
|
74
|
+
``eso_skycalc_ozone_absorption.dat``
|
|
75
|
+
:Used by: ``nyx.emitter.Airglow.from_eso_skycalc`` (airglow) and
|
|
76
|
+
``nyx.atmosphere.tau_ozone``, behind ``SingleScattering.from_hg_ozone`` (ozone)
|
|
77
|
+
:Description: Airglow emission spectrum (at 130 solar flux units) and ozone
|
|
78
|
+
absorption spectrum, generated with the ESO SkyCalc Sky Model Calculator
|
|
79
|
+
(https://www.eso.org/observing/etc/skycalc/).
|
|
80
|
+
:References:
|
|
81
|
+
* Noll, S., Kausch, W., Barden, M., et al. 2012, "An atmospheric radiation
|
|
82
|
+
model for Cerro Paranal", A&A, 543, A92. DOI: 10.1051/0004-6361/201219040
|
|
83
|
+
* Jones, A., Noll, S., Kausch, W., et al. 2013, A&A, 560, A91.
|
|
84
|
+
DOI: 10.1051/0004-6361/201322433
|
|
85
|
+
:Usage terms: Output of the publicly available ESO SkyCalc tool; please cite
|
|
86
|
+
the references above and acknowledge the ESO SkyCalc tool.
|
|
87
|
+
|
|
88
|
+
XHIP bright-star compilation (Anderson & Francis 2012)
|
|
89
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
90
|
+
|
|
91
|
+
:Files: ``anderson2012_xhip_suppl.dat``
|
|
92
|
+
:Used by: ``nyx.emitter.catalogs.xhip``, behind
|
|
93
|
+
``nyx.emitter.BrightStars.from_anderson2012``
|
|
94
|
+
:Description: Positions, proper motions and UBVRI photometry for the
|
|
95
|
+
Hipparcos bright stars, extracted from the XHIP compilation and
|
|
96
|
+
distributed via the CDS/VizieR service.
|
|
97
|
+
:References:
|
|
98
|
+
* Anderson, E. & Francis, C. 2012, "XHIP: An extended Hipparcos
|
|
99
|
+
compilation", Astronomy Letters, 38, 331.
|
|
100
|
+
DOI: 10.1134/S1063773712050015
|
|
101
|
+
* VizieR catalogue V/137D.
|
|
102
|
+
:Usage terms: Distributed by the Centre de Donnees astronomiques de
|
|
103
|
+
Strasbourg (CDS). Please cite the reference above and acknowledge the
|
|
104
|
+
use of the VizieR catalogue access tool, CDS, Strasbourg, France
|
|
105
|
+
(DOI: 10.26093/cds/vizier).
|
|
106
|
+
|
|
107
|
+
Data downloaded at runtime
|
|
108
|
+
--------------------------
|
|
109
|
+
|
|
110
|
+
These datasets are not shipped with nyx; they are fetched on first use and
|
|
111
|
+
cached locally via :func:`astropy.utils.data.download_file`.
|
|
112
|
+
|
|
113
|
+
Gaia DR3 stellar catalogue
|
|
114
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
115
|
+
|
|
116
|
+
:Source: Zenodo record 15396676
|
|
117
|
+
(``gaiadr3.npy``, ``gaia_mag15plus.npy``);
|
|
118
|
+
https://zenodo.org/records/15396676
|
|
119
|
+
:Used by: ``nyx.emitter.Stars.from_gaia_dr3`` and ``nyx.emitter.gaia_star_field``
|
|
120
|
+
:Description: Simplified star catalogue derived from Gaia Data Release 3
|
|
121
|
+
catalogue, repackaged for stellar-contribution simulations.
|
|
122
|
+
:References:
|
|
123
|
+
* Gaia Collaboration, Prusti, T., de Bruijne, J. H. J., et al. 2016,
|
|
124
|
+
"The Gaia mission", A&A, 595, A1. DOI: 10.1051/0004-6361/201629272
|
|
125
|
+
* Gaia Collaboration, Vallenari, A., Brown, A. G. A., et al. 2023,
|
|
126
|
+
"Gaia Data Release 3", A&A, 674, A1.
|
|
127
|
+
DOI: 10.1051/0004-6361/202243940
|
|
128
|
+
:License: Distributed under the `CC BY-NC 3.0 IGO
|
|
129
|
+
<https://creativecommons.org/licenses/by-nc/3.0/igo/deed.en>`_ license,
|
|
130
|
+
matching the terms under which ESA distributes Gaia data. See the
|
|
131
|
+
`Gaia Data License <https://www.cosmos.esa.int/web/gaia-users/license>`_
|
|
132
|
+
and the `ESA Science Archives Terms and Conditions
|
|
133
|
+
<https://www.cosmos.esa.int/web/esdc/terms-and-conditions>`_.
|
|
134
|
+
**Commercial use requires separate arrangement with ESA.**
|
|
135
|
+
Credit: ESA / Gaia / DPAC (Gaia DR3); ESA (Hipparcos).
|
|
136
|
+
:Required acknowledgement: Publications must include the verbatim Gaia
|
|
137
|
+
acknowledgement:
|
|
138
|
+
|
|
139
|
+
This work has made use of data from the European Space Agency (ESA)
|
|
140
|
+
mission Gaia (https://www.cosmos.esa.int/gaia), processed by the Gaia
|
|
141
|
+
Data Processing and Analysis Consortium (DPAC,
|
|
142
|
+
https://www.cosmos.esa.int/web/gaia/dpac/consortium). Funding for the
|
|
143
|
+
DPAC has been provided by national institutions, in particular the
|
|
144
|
+
institutions participating in the Gaia Multilateral Agreement.
|
|
145
|
+
|
|
146
|
+
See the `Gaia DR3 credit and citation instructions
|
|
147
|
+
<https://gea.esac.esa.int/archive/documentation/GDR3/Miscellaneous/sec_credit_and_citation_instructions/>`_
|
|
148
|
+
for full requirements.
|
|
149
|
+
|
|
150
|
+
STScI solsys solar spectrum (Rieke 2008)
|
|
151
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
152
|
+
:Source: STScI synphot reference atlases, ``grid/solsys/solar_spec.fits``
|
|
153
|
+
(https://archive.stsci.edu/hlsps/reference-atlases/cdbs/grid/solsys/)
|
|
154
|
+
:Used by: ``nyx.spectra.load_solar_spectrum_rieke2008`` and
|
|
155
|
+
``nyx.spectra.load_solar_flux``, behind ``Moon.from_jones2013`` and
|
|
156
|
+
``ZodiacalLight.from_leinert1998``
|
|
157
|
+
:Description: Composite solar spectrum (0.2–30 µm) distributed with Rieke
|
|
158
|
+
et al. (2008). Built from Thuillier et al. (2003) below 2.4 µm, the
|
|
159
|
+
Holweger & Müller (1974) LTE model at longer wavelengths, with the
|
|
160
|
+
4–6.5 µm region adjusted to match Wallace & Livingston (2003) CO
|
|
161
|
+
features. Normalized to 1 AU.
|
|
162
|
+
:Reference: Rieke, G. H., Blaylock, M., Decin, L., et al. 2008,
|
|
163
|
+
"Absolute Physical Calibration in the Infrared", AJ, 135, 2245.
|
|
164
|
+
DOI: 10.1088/0004-6256/135/6/2245
|
|
165
|
+
:Usage terms: Publicly distributed by STScI.
|
|
166
|
+
|
|
167
|
+
STScI CALSPEC Vega spectrum
|
|
168
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
169
|
+
:Source: STScI CALSPEC database, ``alpha_lyr_stis_012.fits``
|
|
170
|
+
(https://www.stsci.edu/hst/instrumentation/reference-data-for-calibration-and-tools/astronomical-catalogs/calspec)
|
|
171
|
+
:Used by: ``nyx.spectra.Bandpass.vegazero``, behind the colour grids of
|
|
172
|
+
``Stars.from_gaia_dr3``, ``gaia_star_field`` and
|
|
173
|
+
``BrightStars.from_anderson2012``
|
|
174
|
+
:Description: Composite absolute-flux SED of Vega on the HST/CALSPEC
|
|
175
|
+
flux scale, combining STIS spectrophotometry with a tailored Kurucz
|
|
176
|
+
9550 K model atmosphere. Used as the primary optical/IR flux standard.
|
|
177
|
+
:Reference: Bohlin, R. C., Hubeny, I. & Rauch, T. 2020, "New Grids of
|
|
178
|
+
Pure-hydrogen White Dwarf NLTE Model Atmospheres and the HST/STIS Flux
|
|
179
|
+
Calibration", AJ, 160, 21. DOI: 10.3847/1538-3881/ab94b4;
|
|
180
|
+
Bohlin, R. C. 2014, "Hubble Space Telescope CALSPEC Flux Standards:
|
|
181
|
+
Sirius (and Vega)", AJ, 147, 127. DOI: 10.1088/0004-6256/147/6/127
|
|
182
|
+
:Usage terms: Publicly distributed by STScI.
|
|
183
|
+
|
|
184
|
+
SVO Filter Profile Service
|
|
185
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
186
|
+
|
|
187
|
+
:Source: Spanish Virtual Observatory Filter Profile Service
|
|
188
|
+
(http://svo2.cab.inta-csic.es/theory/fps/)
|
|
189
|
+
:Used by: ``nyx.spectra.Bandpass.from_SVO``: the Gaia DR3 G/BP/RP passbands
|
|
190
|
+
for ``Stars.from_gaia_dr3`` and ``gaia_star_field``, and the Johnson B/V
|
|
191
|
+
passbands for ``BrightStars.from_anderson2012``
|
|
192
|
+
:Description: Filter transmission curves.
|
|
193
|
+
:References:
|
|
194
|
+
* Rodrigo, C., Cruz, P., Aguilar, J.F., et al. 2024; https://ui.adsabs.harvard.edu/abs/2024A%26A...689A..93R/abstract
|
|
195
|
+
* The SVO Filter Profile Service. Rodrigo, C., Solano, E., Bayo, A., 2012; https://ui.adsabs.harvard.edu/abs/2012ivoa.rept.1015R/abstract
|
|
196
|
+
* The SVO Filter Profile Service. Rodrigo, C., Solano, E., 2020; https://ui.adsabs.harvard.edu/abs/2020sea..confE.182R/abstract
|
|
197
|
+
:Required acknowledgement: Publications should include this acknowledgement:
|
|
198
|
+
|
|
199
|
+
This research has made use of the SVO Filter Profile Service "Carlos Rodrigo",
|
|
200
|
+
funded by MCIN/AEI/10.13039/501100011033/ through grant PID2023-146210NB-I00.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Licenses
|
|
2
|
+
========
|
|
3
|
+
|
|
4
|
+
This directory holds license and credit information for the package and for
|
|
5
|
+
the third-party datasets it uses.
|
|
6
|
+
|
|
7
|
+
- ``DATA.rst`` — provenance, citations, and usage terms for every scientific
|
|
8
|
+
dataset that nyx bundles or downloads at runtime. These datasets are not
|
|
9
|
+
covered by the package license and must be credited separately.
|