nikamap 1.2.2__tar.gz → 1.4.dev0__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.
- {nikamap-1.2.2 → nikamap-1.4.dev0}/.cruft.json +3 -2
- nikamap-1.4.dev0/.gitattributes +4 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/.github/workflows/sub_package_update.yml +1 -1
- {nikamap-1.2.2 → nikamap-1.4.dev0}/.gitignore +2 -1
- {nikamap-1.2.2 → nikamap-1.4.dev0}/.gitlab-ci.yml +16 -5
- nikamap-1.4.dev0/.readthedocs.yaml +34 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/CHANGELOG.md +15 -0
- nikamap-1.4.dev0/CONTRIBUTING.rst +119 -0
- {nikamap-1.2.2/nikamap.egg-info → nikamap-1.4.dev0}/PKG-INFO +27 -33
- {nikamap-1.2.2 → nikamap-1.4.dev0}/README.rst +26 -31
- {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/_templates/class.rst +2 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/api.rst +4 -0
- nikamap-1.4.dev0/doc/auto_examples/G2/bootstrap.codeobj.json +38 -0
- nikamap-1.4.dev0/doc/auto_examples/G2/bootstrap.ipynb +122 -0
- nikamap-1.4.dev0/doc/auto_examples/G2/bootstrap.rst +120 -0
- nikamap-1.4.dev0/doc/auto_examples/G2/images/thumb/sphx_glr_bootstrap_thumb.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/G2/images/thumb/sphx_glr_jackknife_thumb.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/G2/index.rst +64 -0
- nikamap-1.4.dev0/doc/auto_examples/G2/jackknife.codeobj.json +38 -0
- nikamap-1.4.dev0/doc/auto_examples/G2/jackknife.ipynb +122 -0
- nikamap-1.4.dev0/doc/auto_examples/G2/jackknife.rst +117 -0
- nikamap-1.4.dev0/doc/auto_examples/G2/sg_execution_times.rst +40 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/fake_map.codeobj.json +315 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/fake_map.ipynb +169 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/fake_map.rst +292 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_basic_usage_001.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_basic_usage_002.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_basic_usage_003.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_basic_usage_004.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_basic_usage_005.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_basic_usage_006.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_basic_usage_007.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_basic_usage_008.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_simstack_001.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_simstack_002.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_stacking_001.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/images/thumb/sphx_glr_fake_map_thumb.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/images/thumb/sphx_glr_plot_basic_usage_thumb.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/images/thumb/sphx_glr_plot_simstack_thumb.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/images/thumb/sphx_glr_plot_stacking_thumb.png +0 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/index.rst +100 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_basic_usage.codeobj.json +3082 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_basic_usage.ipynb +360 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_basic_usage.py.md5 +1 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_basic_usage.rst +652 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_simstack.codeobj.json +2615 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_simstack.ipynb +169 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_simstack.py +168 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_simstack.py.md5 +1 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_simstack.rst +350 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_stacking.codeobj.json +2433 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_stacking.ipynb +133 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_stacking.py +123 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_stacking.py.md5 +1 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_stacking.rst +398 -0
- nikamap-1.4.dev0/doc/auto_examples/fake_data/sg_execution_times.rst +46 -0
- nikamap-1.4.dev0/doc/auto_examples/index.rst +189 -0
- nikamap-1.4.dev0/doc/auto_examples/searchindex.bak +3 -0
- nikamap-1.4.dev0/doc/auto_examples/searchindex.dat +0 -0
- nikamap-1.4.dev0/doc/auto_examples/searchindex.dir +3 -0
- nikamap-1.4.dev0/doc/auto_examples/sg_execution_times.rst +37 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/conf.py +4 -2
- nikamap-1.4.dev0/doc/contmap.rst +261 -0
- nikamap-1.4.dev0/doc/index.rst +81 -0
- nikamap-1.4.dev0/doc/updating-examples.md +60 -0
- nikamap-1.4.dev0/examples/G2/bootstrap.py +43 -0
- nikamap-1.4.dev0/examples/G2/jackknife.py +39 -0
- nikamap-1.4.dev0/examples/fake_data/fake_map.py +195 -0
- nikamap-1.4.dev0/examples/fake_data/plot_basic_usage.py +173 -0
- nikamap-1.4.dev0/examples/fake_data/plot_simstack.py +168 -0
- nikamap-1.4.dev0/examples/fake_data/plot_stacking.py +123 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/_version.py +3 -3
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/contmap.py +47 -266
- nikamap-1.4.dev0/nikamap/stack.py +758 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/test_contmap.py +535 -405
- nikamap-1.4.dev0/nikamap/tests/test_stack.py +556 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/test_utils.py +88 -20
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/utils.py +459 -12
- {nikamap-1.2.2 → nikamap-1.4.dev0/nikamap.egg-info}/PKG-INFO +27 -33
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap.egg-info/SOURCES.txt +61 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap.egg-info/requires.txt +0 -1
- nikamap-1.4.dev0/nikamap.egg-info/top_level.txt +1 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/pyproject.toml +4 -3
- nikamap-1.2.2/.gitattributes +0 -1
- nikamap-1.2.2/doc/index.rst +0 -43
- nikamap-1.2.2/nikamap.egg-info/top_level.txt +0 -6
- {nikamap-1.2.2 → nikamap-1.4.dev0}/.circleci/config.yml +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/.codeclimate.yml +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/.landscape.yaml +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/.travis.yml +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/CITATION.cff +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/Dockerfile +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/LICENSE +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/MANIFEST.in +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/Makefile +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/appveyor.yml +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/asv.conf.json +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/benchmarks/__init__.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/benchmarks/benchmarks.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/Makefile +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/_static/git.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/_static/logo.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/_templates/function.rst +0 -0
- {nikamap-1.2.2/examples → nikamap-1.4.dev0/doc/auto_examples}/G2/bootstrap.py +0 -0
- {nikamap-1.2.2/examples → nikamap-1.4.dev0/doc/auto_examples}/G2/jackknife.py +0 -0
- {nikamap-1.2.2/examples → nikamap-1.4.dev0/doc/auto_examples}/fake_data/fake_map.py +0 -0
- {nikamap-1.2.2/examples → nikamap-1.4.dev0/doc/auto_examples}/fake_data/plot_basic_usage.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/requirements.txt +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/sphinxext/docscrape.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/sphinxext/docscrape_sphinx.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/sphinxext/github.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/sphinxext/math_dollar.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/sphinxext/numpydoc.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/examples/G2/README.txt +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/examples/README.txt +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/examples/fake_data/README.txt +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/examples/fake_data/fake_map.fits +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/__init__.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/analysis.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/data/README.rst +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/due.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/nikamap.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/__init__.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_check_SNR_ax.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_PSD_grid_sources.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_PSD_single_source.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_PSD_single_source_mask.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_PSD_single_source_side.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_PSD_wobble_grid_sources.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_ax_grid_sources.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_ax_single_source.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_ax_single_source_mask.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_ax_single_source_side.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_ax_wobble_grid_sources.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_grid_sources.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_single_source.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_single_source_mask.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_single_source_side.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_wobble_grid_sources.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_ax_grid_sources.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_ax_single_source.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_ax_single_source_mask.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_ax_single_source_side.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_ax_wobble_grid_sources.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_beam_grid_sources.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_beam_single_source.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_beam_single_source_mask.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_beam_single_source_side.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_beam_wobble_grid_sources.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_grid_sources.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_single_source.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_single_source_mask.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_single_source_side.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_wobble_grid_sources.png +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/test_analysis.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/test_nikamap.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/version.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap.egg-info/dependency_links.txt +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap.egg-info/entry_points.txt +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap.egg-info/not-zip-safe +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/requirements.txt +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/scripts/Figure1.ipynb +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/setup.cfg +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/setup.py +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/sonar-project.properties +0 -0
- {nikamap-1.2.2 → nikamap-1.4.dev0}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"template": "https://github.com/OpenAstronomy/packaging-guide",
|
|
3
|
-
"commit": "
|
|
3
|
+
"commit": "d4aa2e8806bf57505dc65793009bd9ecb2777364",
|
|
4
4
|
"checkout": null,
|
|
5
5
|
"context": {
|
|
6
6
|
"cookiecutter": {
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
"docs/_static",
|
|
25
25
|
".github/workflows/sub_package_update.yml"
|
|
26
26
|
],
|
|
27
|
-
"_template": "https://github.com/OpenAstronomy/packaging-guide"
|
|
27
|
+
"_template": "https://github.com/OpenAstronomy/packaging-guide",
|
|
28
|
+
"_commit": "d4aa2e8806bf57505dc65793009bd9ecb2777364"
|
|
28
29
|
}
|
|
29
30
|
},
|
|
30
31
|
"directory": null
|
|
@@ -123,11 +123,22 @@ ruff:
|
|
|
123
123
|
- ".cache/pip"
|
|
124
124
|
- ".ruff_cache"
|
|
125
125
|
|
|
126
|
-
#
|
|
127
|
-
#
|
|
128
|
-
#
|
|
129
|
-
#
|
|
130
|
-
#
|
|
126
|
+
# ---------------------------------------------------------------------------
|
|
127
|
+
# GitLab Pages — build and publish the Sphinx documentation automatically.
|
|
128
|
+
# The HTML output is available at https://<namespace>.gitlab.io/<project>/
|
|
129
|
+
# Triggered on every push to the default branch and on tags.
|
|
130
|
+
# ---------------------------------------------------------------------------
|
|
131
|
+
pages:
|
|
132
|
+
stage: deploy
|
|
133
|
+
script:
|
|
134
|
+
- pip install --quiet ".[docs]"
|
|
135
|
+
- sphinx-build -b html doc public --keep-going
|
|
136
|
+
artifacts:
|
|
137
|
+
paths:
|
|
138
|
+
- public
|
|
139
|
+
rules:
|
|
140
|
+
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
141
|
+
- if: $CI_COMMIT_TAG
|
|
131
142
|
# artifacts:
|
|
132
143
|
# paths:
|
|
133
144
|
# - public
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# .readthedocs.yaml — Read the Docs v2 configuration (required as of 2024)
|
|
2
|
+
# Docs: https://docs.readthedocs.io/en/stable/config-file/v2.html
|
|
3
|
+
#
|
|
4
|
+
# To activate automatic builds from GitLab:
|
|
5
|
+
# 1. Go to https://readthedocs.org and log in with your GitLab account (OAuth).
|
|
6
|
+
# 2. Click "Import a Project" → select this repository.
|
|
7
|
+
# 3. RTD will automatically add a webhook on the GitLab side.
|
|
8
|
+
# 4. Every push to the default branch (and every tag) will trigger a new build.
|
|
9
|
+
|
|
10
|
+
version: 2
|
|
11
|
+
|
|
12
|
+
build:
|
|
13
|
+
os: ubuntu-24.04
|
|
14
|
+
tools:
|
|
15
|
+
python: "3.11"
|
|
16
|
+
apt_packages:
|
|
17
|
+
- git-lfs
|
|
18
|
+
jobs:
|
|
19
|
+
post_system_dependencies:
|
|
20
|
+
# git-lfs is now installed via apt_packages; download LFS objects
|
|
21
|
+
- git lfs install
|
|
22
|
+
- git lfs pull
|
|
23
|
+
|
|
24
|
+
python:
|
|
25
|
+
install:
|
|
26
|
+
# Install the package with its documentation dependencies
|
|
27
|
+
- method: pip
|
|
28
|
+
path: .
|
|
29
|
+
extra_requirements:
|
|
30
|
+
- docs
|
|
31
|
+
|
|
32
|
+
sphinx:
|
|
33
|
+
configuration: doc/conf.py
|
|
34
|
+
fail_on_warning: false
|
|
@@ -7,6 +7,21 @@ Added
|
|
|
7
7
|
Fixed
|
|
8
8
|
-----
|
|
9
9
|
|
|
10
|
+
Version 1.3
|
|
11
|
+
===========
|
|
12
|
+
|
|
13
|
+
Added
|
|
14
|
+
-----
|
|
15
|
+
* New `ContMap.simstack` method: supports linear regression-based stacking (SimStack) for multiple source groups, with error estimation. [Viero et al. 2013]
|
|
16
|
+
* New `stack.py` module: all stacking logic (including cutout, reproject, and simstack) is now modularized in StackMixin.
|
|
17
|
+
* Dedicated and parameterized tests for stacking and simstack in `tests/test_stack.py`.
|
|
18
|
+
|
|
19
|
+
Fixed
|
|
20
|
+
-----
|
|
21
|
+
* Refactored and cleaned up stacking code: removed legacy stacking routines from `contmap.py`, improved maintainability and testability.
|
|
22
|
+
* Harmonized position generation utilities (`pos_uniform`, `pos_uniform_no_overlap`, etc.).
|
|
23
|
+
* Improved robustness of WCS-related functions; extended tests to cover fit uncertainty.
|
|
24
|
+
|
|
10
25
|
Version 1.2.2
|
|
11
26
|
=============
|
|
12
27
|
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
Contributing to nikamap
|
|
2
|
+
=======================
|
|
3
|
+
|
|
4
|
+
Thank you for contributing to ``nikamap``.
|
|
5
|
+
|
|
6
|
+
This project provides tools to read and analyse NIKA2 continuum maps. Contributions
|
|
7
|
+
that improve scientific correctness, package stability, documentation, and test
|
|
8
|
+
coverage are all useful.
|
|
9
|
+
|
|
10
|
+
Ways to contribute
|
|
11
|
+
------------------
|
|
12
|
+
|
|
13
|
+
You can contribute by:
|
|
14
|
+
|
|
15
|
+
- reporting bugs or regressions;
|
|
16
|
+
- proposing or implementing new features;
|
|
17
|
+
- improving tests;
|
|
18
|
+
- clarifying documentation and examples;
|
|
19
|
+
- improving compatibility with supported Python, Astropy, and Photutils versions.
|
|
20
|
+
|
|
21
|
+
Before opening a change, check whether a similar issue or merge request already exists.
|
|
22
|
+
When you report a bug, include the package version, Python version, and a minimal example
|
|
23
|
+
that reproduces the problem.
|
|
24
|
+
|
|
25
|
+
Development setup
|
|
26
|
+
-----------------
|
|
27
|
+
|
|
28
|
+
``nikamap`` requires Python 3.10 or later.
|
|
29
|
+
|
|
30
|
+
1. Clone the repository.
|
|
31
|
+
2. Create and activate a virtual environment.
|
|
32
|
+
3. Install the package in editable mode with the development extras you need.
|
|
33
|
+
|
|
34
|
+
Example:
|
|
35
|
+
|
|
36
|
+
.. code:: bash
|
|
37
|
+
|
|
38
|
+
python -m venv .venv
|
|
39
|
+
source .venv/bin/activate
|
|
40
|
+
python -m pip install --upgrade pip
|
|
41
|
+
python -m pip install -e ".[test,docs]"
|
|
42
|
+
|
|
43
|
+
The optional ``stacking`` extra can also be installed when working on reprojection-related
|
|
44
|
+
features:
|
|
45
|
+
|
|
46
|
+
.. code:: bash
|
|
47
|
+
|
|
48
|
+
python -m pip install -e ".[test,docs,stacking]"
|
|
49
|
+
|
|
50
|
+
Running tests
|
|
51
|
+
-------------
|
|
52
|
+
|
|
53
|
+
For a quick local test run:
|
|
54
|
+
|
|
55
|
+
.. code:: bash
|
|
56
|
+
|
|
57
|
+
pytest --pyargs nikamap
|
|
58
|
+
|
|
59
|
+
The repository also defines a tox matrix to test multiple Python and Photutils combinations:
|
|
60
|
+
|
|
61
|
+
.. code:: bash
|
|
62
|
+
|
|
63
|
+
tox -e py311-photutils230
|
|
64
|
+
|
|
65
|
+
You can list the available environments in ``tox.ini``. When fixing a compatibility issue,
|
|
66
|
+
prefer running the tox environment that matches the affected dependency combination.
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
Linting with Ruff
|
|
70
|
+
-----------------
|
|
71
|
+
|
|
72
|
+
Ruff is run in CI (GitLab job ``ruff``) and should be clean for contributions.
|
|
73
|
+
Run it locally before opening a merge request:
|
|
74
|
+
|
|
75
|
+
.. code:: bash
|
|
76
|
+
|
|
77
|
+
python -m pip install ruff
|
|
78
|
+
ruff check .
|
|
79
|
+
|
|
80
|
+
To automatically fix what Ruff can fix safely:
|
|
81
|
+
|
|
82
|
+
.. code:: bash
|
|
83
|
+
|
|
84
|
+
ruff check . --fix
|
|
85
|
+
|
|
86
|
+
Documentation
|
|
87
|
+
-------------
|
|
88
|
+
|
|
89
|
+
The documentation sources live in ``doc/`` and examples are under ``examples/``.
|
|
90
|
+
To build the HTML documentation locally:
|
|
91
|
+
|
|
92
|
+
.. code:: bash
|
|
93
|
+
|
|
94
|
+
tox -e build_docs
|
|
95
|
+
|
|
96
|
+
If your change modifies public behaviour, update the relevant documentation and examples.
|
|
97
|
+
|
|
98
|
+
Code and test expectations
|
|
99
|
+
--------------------------
|
|
100
|
+
|
|
101
|
+
- Keep changes focused and avoid unrelated refactors.
|
|
102
|
+
- Follow the existing coding style in the modified files.
|
|
103
|
+
- Add or update tests for behaviour changes and bug fixes.
|
|
104
|
+
- Preserve scientific metadata when applicable, especially units, WCS information, and beam handling.
|
|
105
|
+
- Be mindful of compatibility with the supported Photutils versions exercised by ``tox``.
|
|
106
|
+
|
|
107
|
+
Submitting changes
|
|
108
|
+
------------------
|
|
109
|
+
|
|
110
|
+
When opening a contribution, include:
|
|
111
|
+
|
|
112
|
+
- a short description of the problem being solved;
|
|
113
|
+
- the approach taken;
|
|
114
|
+
- any limitations or follow-up work;
|
|
115
|
+
- test coverage for the change.
|
|
116
|
+
|
|
117
|
+
If the change affects users, update ``CHANGELOG.md`` when appropriate.
|
|
118
|
+
|
|
119
|
+
Small, well-scoped contributions are easier to review and merge.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nikamap
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.4.dev0
|
|
4
4
|
Summary: nikamap: a package to manipulate data produced by the IDL NIKA2 pipeline
|
|
5
5
|
Author-email: Alexandre Beelen <alexandre.beelen@lam.fr>
|
|
6
6
|
License: The MIT License (MIT)
|
|
@@ -48,7 +48,6 @@ Requires-Dist: pytest-doctestplus; extra == "test"
|
|
|
48
48
|
Requires-Dist: pytest-cov; extra == "test"
|
|
49
49
|
Requires-Dist: pytest-mpl; extra == "test"
|
|
50
50
|
Requires-Dist: reproject; extra == "test"
|
|
51
|
-
Requires-Dist: setuptools_scm>=6.2; extra == "test"
|
|
52
51
|
Provides-Extra: docs
|
|
53
52
|
Requires-Dist: sphinx; extra == "docs"
|
|
54
53
|
Requires-Dist: sphinx-automodapi; extra == "docs"
|
|
@@ -61,7 +60,28 @@ NikaMap
|
|
|
61
60
|
=======
|
|
62
61
|
|pypi| |license| |wheels| |format| |pyversions| |rtd|
|
|
63
62
|
|
|
64
|
-
`nikamap` is a
|
|
63
|
+
`nikamap` is a Python package built around `ContMap`, a general-purpose class
|
|
64
|
+
for processing and analysing continuum maps from radio/millimetre
|
|
65
|
+
observatories. It provides beam handling, match-filtering, point-source
|
|
66
|
+
detection and photometry, and cutout / simultaneous stacking.
|
|
67
|
+
|
|
68
|
+
For NIKA2 users, `nikamap` offers first-class support for the FITS data
|
|
69
|
+
products of both the **IDL** and **PIIC** NIKA2 reduction pipelines through
|
|
70
|
+
`NikaMap` and `NikaFits`, thin subclasses of `ContMap` that handle
|
|
71
|
+
multi-band files and scan-level jackknife realisations.
|
|
72
|
+
|
|
73
|
+
Quick start with generic continuum data
|
|
74
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
75
|
+
|
|
76
|
+
.. code:: python
|
|
77
|
+
|
|
78
|
+
from nikamap import ContMap
|
|
79
|
+
|
|
80
|
+
cm = ContMap.read('mymap.fits')
|
|
81
|
+
cm.plot()
|
|
82
|
+
|
|
83
|
+
Quick start with NIKA2 data
|
|
84
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
65
85
|
|
|
66
86
|
.. code:: python
|
|
67
87
|
|
|
@@ -70,11 +90,11 @@ NikaMap
|
|
|
70
90
|
nm = NikaMap.read('map.fits', band='1mm')
|
|
71
91
|
nm.plot()
|
|
72
92
|
|
|
73
|
-
or
|
|
93
|
+
or using the multi-band container:
|
|
74
94
|
|
|
75
95
|
.. code:: python
|
|
76
96
|
|
|
77
|
-
|
|
97
|
+
from nikamap import NikaFits
|
|
78
98
|
|
|
79
99
|
data = NikaFits.read('map.fits')
|
|
80
100
|
data['1mm'].plot()
|
|
@@ -177,31 +197,5 @@ This project is licensed under the MIT license.
|
|
|
177
197
|
Contributing
|
|
178
198
|
------------
|
|
179
199
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
**Imposter syndrome disclaimer**: We want your help. No, really.
|
|
184
|
-
|
|
185
|
-
There may be a little voice inside your head that is telling you that you're not
|
|
186
|
-
ready to be an open source contributor; that your skills aren't nearly good
|
|
187
|
-
enough to contribute. What could you possibly offer a project like this one?
|
|
188
|
-
|
|
189
|
-
We assure you - the little voice in your head is wrong. If you can write code at
|
|
190
|
-
all, you can contribute code to open source. Contributing to open source
|
|
191
|
-
projects is a fantastic way to advance one's coding skills. Writing perfect code
|
|
192
|
-
isn't the measure of a good developer (that would disqualify all of us!); it's
|
|
193
|
-
trying to create something, making mistakes, and learning from those
|
|
194
|
-
mistakes. That's how we all improve, and we are happy to help others learn.
|
|
195
|
-
|
|
196
|
-
Being an open source contributor doesn't just mean writing code, either. You can
|
|
197
|
-
help out by writing documentation, tests, or even giving feedback about the
|
|
198
|
-
project (and yes - that includes giving feedback about the contribution
|
|
199
|
-
process). Some of these contributions may be the most valuable to the project as
|
|
200
|
-
a whole, because you're coming to the project with fresh eyes, so you can see
|
|
201
|
-
the errors and assumptions that seasoned contributors have glossed over.
|
|
202
|
-
|
|
203
|
-
Note: This disclaimer was originally written by
|
|
204
|
-
`Adrienne Lowe <https://github.com/adriennefriend>`_ for a
|
|
205
|
-
`PyCon talk <https://www.youtube.com/watch?v=6Uj746j9Heo>`_, and was adapted by
|
|
206
|
-
cruft_openastro based on its use in the README file for the
|
|
207
|
-
`MetPy project <https://github.com/Unidata/MetPy>`_.
|
|
200
|
+
See ``CONTRIBUTING.rst`` for the development setup, test commands, documentation build,
|
|
201
|
+
and contribution expectations.
|
|
@@ -2,7 +2,28 @@ NikaMap
|
|
|
2
2
|
=======
|
|
3
3
|
|pypi| |license| |wheels| |format| |pyversions| |rtd|
|
|
4
4
|
|
|
5
|
-
`nikamap` is a
|
|
5
|
+
`nikamap` is a Python package built around `ContMap`, a general-purpose class
|
|
6
|
+
for processing and analysing continuum maps from radio/millimetre
|
|
7
|
+
observatories. It provides beam handling, match-filtering, point-source
|
|
8
|
+
detection and photometry, and cutout / simultaneous stacking.
|
|
9
|
+
|
|
10
|
+
For NIKA2 users, `nikamap` offers first-class support for the FITS data
|
|
11
|
+
products of both the **IDL** and **PIIC** NIKA2 reduction pipelines through
|
|
12
|
+
`NikaMap` and `NikaFits`, thin subclasses of `ContMap` that handle
|
|
13
|
+
multi-band files and scan-level jackknife realisations.
|
|
14
|
+
|
|
15
|
+
Quick start with generic continuum data
|
|
16
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
17
|
+
|
|
18
|
+
.. code:: python
|
|
19
|
+
|
|
20
|
+
from nikamap import ContMap
|
|
21
|
+
|
|
22
|
+
cm = ContMap.read('mymap.fits')
|
|
23
|
+
cm.plot()
|
|
24
|
+
|
|
25
|
+
Quick start with NIKA2 data
|
|
26
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
6
27
|
|
|
7
28
|
.. code:: python
|
|
8
29
|
|
|
@@ -11,11 +32,11 @@ NikaMap
|
|
|
11
32
|
nm = NikaMap.read('map.fits', band='1mm')
|
|
12
33
|
nm.plot()
|
|
13
34
|
|
|
14
|
-
or
|
|
35
|
+
or using the multi-band container:
|
|
15
36
|
|
|
16
37
|
.. code:: python
|
|
17
38
|
|
|
18
|
-
|
|
39
|
+
from nikamap import NikaFits
|
|
19
40
|
|
|
20
41
|
data = NikaFits.read('map.fits')
|
|
21
42
|
data['1mm'].plot()
|
|
@@ -118,31 +139,5 @@ This project is licensed under the MIT license.
|
|
|
118
139
|
Contributing
|
|
119
140
|
------------
|
|
120
141
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
**Imposter syndrome disclaimer**: We want your help. No, really.
|
|
125
|
-
|
|
126
|
-
There may be a little voice inside your head that is telling you that you're not
|
|
127
|
-
ready to be an open source contributor; that your skills aren't nearly good
|
|
128
|
-
enough to contribute. What could you possibly offer a project like this one?
|
|
129
|
-
|
|
130
|
-
We assure you - the little voice in your head is wrong. If you can write code at
|
|
131
|
-
all, you can contribute code to open source. Contributing to open source
|
|
132
|
-
projects is a fantastic way to advance one's coding skills. Writing perfect code
|
|
133
|
-
isn't the measure of a good developer (that would disqualify all of us!); it's
|
|
134
|
-
trying to create something, making mistakes, and learning from those
|
|
135
|
-
mistakes. That's how we all improve, and we are happy to help others learn.
|
|
136
|
-
|
|
137
|
-
Being an open source contributor doesn't just mean writing code, either. You can
|
|
138
|
-
help out by writing documentation, tests, or even giving feedback about the
|
|
139
|
-
project (and yes - that includes giving feedback about the contribution
|
|
140
|
-
process). Some of these contributions may be the most valuable to the project as
|
|
141
|
-
a whole, because you're coming to the project with fresh eyes, so you can see
|
|
142
|
-
the errors and assumptions that seasoned contributors have glossed over.
|
|
143
|
-
|
|
144
|
-
Note: This disclaimer was originally written by
|
|
145
|
-
`Adrienne Lowe <https://github.com/adriennefriend>`_ for a
|
|
146
|
-
`PyCon talk <https://www.youtube.com/watch?v=6Uj746j9Heo>`_, and was adapted by
|
|
147
|
-
cruft_openastro based on its use in the README file for the
|
|
148
|
-
`MetPy project <https://github.com/Unidata/MetPy>`_.
|
|
142
|
+
See ``CONTRIBUTING.rst`` for the development setup, test commands, documentation build,
|
|
143
|
+
and contribution expectations.
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
.. currentmodule:: {{ module }}
|
|
5
5
|
|
|
6
6
|
.. autoclass:: {{ objname }}
|
|
7
|
+
:members:
|
|
7
8
|
:special-members: __contains__,__getitem__,__iter__,__len__,__add__,__sub__,__mul__,__div__,__neg__,__hash__
|
|
9
|
+
:member-order: bysource
|
|
8
10
|
|
|
9
11
|
.. include:: {{module}}.{{objname}}.examples
|
|
10
12
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
":class:": [
|
|
3
|
+
{
|
|
4
|
+
"is_class": false,
|
|
5
|
+
"is_explicit": true,
|
|
6
|
+
"module": "builtins",
|
|
7
|
+
"module_short": "builtins",
|
|
8
|
+
"name": ":class:"
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"Bootstrap": [
|
|
12
|
+
{
|
|
13
|
+
"is_class": false,
|
|
14
|
+
"is_explicit": false,
|
|
15
|
+
"module": "nikamap",
|
|
16
|
+
"module_short": "nikamap",
|
|
17
|
+
"name": "Bootstrap"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"Path": [
|
|
21
|
+
{
|
|
22
|
+
"is_class": false,
|
|
23
|
+
"is_explicit": false,
|
|
24
|
+
"module": "pathlib",
|
|
25
|
+
"module_short": "pathlib",
|
|
26
|
+
"name": "Path"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"nikamap.analysis.Bootstrap": [
|
|
30
|
+
{
|
|
31
|
+
"is_class": false,
|
|
32
|
+
"is_explicit": true,
|
|
33
|
+
"module": "nikamap.analysis",
|
|
34
|
+
"module_short": "nikamap",
|
|
35
|
+
"name": "Bootstrap"
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cells": [
|
|
3
|
+
{
|
|
4
|
+
"cell_type": "markdown",
|
|
5
|
+
"metadata": {},
|
|
6
|
+
"source": [
|
|
7
|
+
"\n# Bootstraping error\n\nSimple example of bootstrap on G2 dataset from the N2CLS GTO.\n"
|
|
8
|
+
]
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"cell_type": "markdown",
|
|
12
|
+
"metadata": {},
|
|
13
|
+
"source": [
|
|
14
|
+
"First import the :class:`nikamap.analysis.Bootstrap` class\n\n"
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"cell_type": "code",
|
|
19
|
+
"execution_count": null,
|
|
20
|
+
"metadata": {
|
|
21
|
+
"collapsed": false
|
|
22
|
+
},
|
|
23
|
+
"outputs": [],
|
|
24
|
+
"source": [
|
|
25
|
+
"from pathlib import Path\nfrom nikamap import Bootstrap"
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"cell_type": "markdown",
|
|
30
|
+
"metadata": {},
|
|
31
|
+
"source": [
|
|
32
|
+
"This define the root directory where all the data ...\n\n"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"cell_type": "code",
|
|
37
|
+
"execution_count": null,
|
|
38
|
+
"metadata": {
|
|
39
|
+
"collapsed": false
|
|
40
|
+
},
|
|
41
|
+
"outputs": [],
|
|
42
|
+
"source": [
|
|
43
|
+
"DATA_DIR = Path(\"/data/NIKA/Reduced/G2_COMMON_MODE_ONE_BLOCK/v_1\")"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"cell_type": "markdown",
|
|
48
|
+
"metadata": {},
|
|
49
|
+
"source": [
|
|
50
|
+
"can be retrieved using a simple regular expression\n\n"
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"cell_type": "code",
|
|
55
|
+
"execution_count": null,
|
|
56
|
+
"metadata": {
|
|
57
|
+
"collapsed": false
|
|
58
|
+
},
|
|
59
|
+
"outputs": [],
|
|
60
|
+
"source": [
|
|
61
|
+
"filenames = list(DATA_DIR.glob(\"*/map.fits\"))\nfilenames"
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"cell_type": "markdown",
|
|
66
|
+
"metadata": {},
|
|
67
|
+
"source": [
|
|
68
|
+
"Generate a bootstrap dataset for all the maps.\n\n<div class=\"alert alert-info\"><h4>Note</h4><p>At the moment, this is very memory demanding as we use\n ```map_size * (len(filenames) + n_bootstrap))```</p></div>\n\n"
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"cell_type": "code",
|
|
73
|
+
"execution_count": null,
|
|
74
|
+
"metadata": {
|
|
75
|
+
"collapsed": false
|
|
76
|
+
},
|
|
77
|
+
"outputs": [],
|
|
78
|
+
"source": [
|
|
79
|
+
"nm = Bootstrap(filenames, n_bootstrap=200, ipython_widget=True)"
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"cell_type": "markdown",
|
|
84
|
+
"metadata": {},
|
|
85
|
+
"source": [
|
|
86
|
+
"In the resulting :class:`nikamap.NikaMap` object, the uncertainty as been computed using the bootstrap technique.\n\n<div class=\"alert alert-danger\"><h4>Warning</h4><p>The resulting uncertainty map could still be biased, see https://gitlab.lam.fr/N2CLS/NikaMap/issues/4</p></div>\n\n"
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"cell_type": "code",
|
|
91
|
+
"execution_count": null,
|
|
92
|
+
"metadata": {
|
|
93
|
+
"collapsed": false
|
|
94
|
+
},
|
|
95
|
+
"outputs": [],
|
|
96
|
+
"source": [
|
|
97
|
+
"_ = nm.plot_SNR(cbar=True)"
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
"metadata": {
|
|
102
|
+
"kernelspec": {
|
|
103
|
+
"display_name": "Python 3",
|
|
104
|
+
"language": "python",
|
|
105
|
+
"name": "python3"
|
|
106
|
+
},
|
|
107
|
+
"language_info": {
|
|
108
|
+
"codemirror_mode": {
|
|
109
|
+
"name": "ipython",
|
|
110
|
+
"version": 3
|
|
111
|
+
},
|
|
112
|
+
"file_extension": ".py",
|
|
113
|
+
"mimetype": "text/x-python",
|
|
114
|
+
"name": "python",
|
|
115
|
+
"nbconvert_exporter": "python",
|
|
116
|
+
"pygments_lexer": "ipython3",
|
|
117
|
+
"version": "3.11.15"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"nbformat": 4,
|
|
121
|
+
"nbformat_minor": 0
|
|
122
|
+
}
|