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.
Files changed (166) hide show
  1. {nikamap-1.2.2 → nikamap-1.4.dev0}/.cruft.json +3 -2
  2. nikamap-1.4.dev0/.gitattributes +4 -0
  3. {nikamap-1.2.2 → nikamap-1.4.dev0}/.github/workflows/sub_package_update.yml +1 -1
  4. {nikamap-1.2.2 → nikamap-1.4.dev0}/.gitignore +2 -1
  5. {nikamap-1.2.2 → nikamap-1.4.dev0}/.gitlab-ci.yml +16 -5
  6. nikamap-1.4.dev0/.readthedocs.yaml +34 -0
  7. {nikamap-1.2.2 → nikamap-1.4.dev0}/CHANGELOG.md +15 -0
  8. nikamap-1.4.dev0/CONTRIBUTING.rst +119 -0
  9. {nikamap-1.2.2/nikamap.egg-info → nikamap-1.4.dev0}/PKG-INFO +27 -33
  10. {nikamap-1.2.2 → nikamap-1.4.dev0}/README.rst +26 -31
  11. {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/_templates/class.rst +2 -0
  12. {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/api.rst +4 -0
  13. nikamap-1.4.dev0/doc/auto_examples/G2/bootstrap.codeobj.json +38 -0
  14. nikamap-1.4.dev0/doc/auto_examples/G2/bootstrap.ipynb +122 -0
  15. nikamap-1.4.dev0/doc/auto_examples/G2/bootstrap.rst +120 -0
  16. nikamap-1.4.dev0/doc/auto_examples/G2/images/thumb/sphx_glr_bootstrap_thumb.png +0 -0
  17. nikamap-1.4.dev0/doc/auto_examples/G2/images/thumb/sphx_glr_jackknife_thumb.png +0 -0
  18. nikamap-1.4.dev0/doc/auto_examples/G2/index.rst +64 -0
  19. nikamap-1.4.dev0/doc/auto_examples/G2/jackknife.codeobj.json +38 -0
  20. nikamap-1.4.dev0/doc/auto_examples/G2/jackknife.ipynb +122 -0
  21. nikamap-1.4.dev0/doc/auto_examples/G2/jackknife.rst +117 -0
  22. nikamap-1.4.dev0/doc/auto_examples/G2/sg_execution_times.rst +40 -0
  23. nikamap-1.4.dev0/doc/auto_examples/fake_data/fake_map.codeobj.json +315 -0
  24. nikamap-1.4.dev0/doc/auto_examples/fake_data/fake_map.ipynb +169 -0
  25. nikamap-1.4.dev0/doc/auto_examples/fake_data/fake_map.rst +292 -0
  26. nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_basic_usage_001.png +0 -0
  27. nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_basic_usage_002.png +0 -0
  28. nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_basic_usage_003.png +0 -0
  29. nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_basic_usage_004.png +0 -0
  30. nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_basic_usage_005.png +0 -0
  31. nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_basic_usage_006.png +0 -0
  32. nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_basic_usage_007.png +0 -0
  33. nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_basic_usage_008.png +0 -0
  34. nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_simstack_001.png +0 -0
  35. nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_simstack_002.png +0 -0
  36. nikamap-1.4.dev0/doc/auto_examples/fake_data/images/sphx_glr_plot_stacking_001.png +0 -0
  37. nikamap-1.4.dev0/doc/auto_examples/fake_data/images/thumb/sphx_glr_fake_map_thumb.png +0 -0
  38. nikamap-1.4.dev0/doc/auto_examples/fake_data/images/thumb/sphx_glr_plot_basic_usage_thumb.png +0 -0
  39. nikamap-1.4.dev0/doc/auto_examples/fake_data/images/thumb/sphx_glr_plot_simstack_thumb.png +0 -0
  40. nikamap-1.4.dev0/doc/auto_examples/fake_data/images/thumb/sphx_glr_plot_stacking_thumb.png +0 -0
  41. nikamap-1.4.dev0/doc/auto_examples/fake_data/index.rst +100 -0
  42. nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_basic_usage.codeobj.json +3082 -0
  43. nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_basic_usage.ipynb +360 -0
  44. nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_basic_usage.py.md5 +1 -0
  45. nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_basic_usage.rst +652 -0
  46. nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_simstack.codeobj.json +2615 -0
  47. nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_simstack.ipynb +169 -0
  48. nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_simstack.py +168 -0
  49. nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_simstack.py.md5 +1 -0
  50. nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_simstack.rst +350 -0
  51. nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_stacking.codeobj.json +2433 -0
  52. nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_stacking.ipynb +133 -0
  53. nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_stacking.py +123 -0
  54. nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_stacking.py.md5 +1 -0
  55. nikamap-1.4.dev0/doc/auto_examples/fake_data/plot_stacking.rst +398 -0
  56. nikamap-1.4.dev0/doc/auto_examples/fake_data/sg_execution_times.rst +46 -0
  57. nikamap-1.4.dev0/doc/auto_examples/index.rst +189 -0
  58. nikamap-1.4.dev0/doc/auto_examples/searchindex.bak +3 -0
  59. nikamap-1.4.dev0/doc/auto_examples/searchindex.dat +0 -0
  60. nikamap-1.4.dev0/doc/auto_examples/searchindex.dir +3 -0
  61. nikamap-1.4.dev0/doc/auto_examples/sg_execution_times.rst +37 -0
  62. {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/conf.py +4 -2
  63. nikamap-1.4.dev0/doc/contmap.rst +261 -0
  64. nikamap-1.4.dev0/doc/index.rst +81 -0
  65. nikamap-1.4.dev0/doc/updating-examples.md +60 -0
  66. nikamap-1.4.dev0/examples/G2/bootstrap.py +43 -0
  67. nikamap-1.4.dev0/examples/G2/jackknife.py +39 -0
  68. nikamap-1.4.dev0/examples/fake_data/fake_map.py +195 -0
  69. nikamap-1.4.dev0/examples/fake_data/plot_basic_usage.py +173 -0
  70. nikamap-1.4.dev0/examples/fake_data/plot_simstack.py +168 -0
  71. nikamap-1.4.dev0/examples/fake_data/plot_stacking.py +123 -0
  72. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/_version.py +3 -3
  73. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/contmap.py +47 -266
  74. nikamap-1.4.dev0/nikamap/stack.py +758 -0
  75. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/test_contmap.py +535 -405
  76. nikamap-1.4.dev0/nikamap/tests/test_stack.py +556 -0
  77. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/test_utils.py +88 -20
  78. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/utils.py +459 -12
  79. {nikamap-1.2.2 → nikamap-1.4.dev0/nikamap.egg-info}/PKG-INFO +27 -33
  80. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap.egg-info/SOURCES.txt +61 -0
  81. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap.egg-info/requires.txt +0 -1
  82. nikamap-1.4.dev0/nikamap.egg-info/top_level.txt +1 -0
  83. {nikamap-1.2.2 → nikamap-1.4.dev0}/pyproject.toml +4 -3
  84. nikamap-1.2.2/.gitattributes +0 -1
  85. nikamap-1.2.2/doc/index.rst +0 -43
  86. nikamap-1.2.2/nikamap.egg-info/top_level.txt +0 -6
  87. {nikamap-1.2.2 → nikamap-1.4.dev0}/.circleci/config.yml +0 -0
  88. {nikamap-1.2.2 → nikamap-1.4.dev0}/.codeclimate.yml +0 -0
  89. {nikamap-1.2.2 → nikamap-1.4.dev0}/.landscape.yaml +0 -0
  90. {nikamap-1.2.2 → nikamap-1.4.dev0}/.travis.yml +0 -0
  91. {nikamap-1.2.2 → nikamap-1.4.dev0}/CITATION.cff +0 -0
  92. {nikamap-1.2.2 → nikamap-1.4.dev0}/Dockerfile +0 -0
  93. {nikamap-1.2.2 → nikamap-1.4.dev0}/LICENSE +0 -0
  94. {nikamap-1.2.2 → nikamap-1.4.dev0}/MANIFEST.in +0 -0
  95. {nikamap-1.2.2 → nikamap-1.4.dev0}/Makefile +0 -0
  96. {nikamap-1.2.2 → nikamap-1.4.dev0}/appveyor.yml +0 -0
  97. {nikamap-1.2.2 → nikamap-1.4.dev0}/asv.conf.json +0 -0
  98. {nikamap-1.2.2 → nikamap-1.4.dev0}/benchmarks/__init__.py +0 -0
  99. {nikamap-1.2.2 → nikamap-1.4.dev0}/benchmarks/benchmarks.py +0 -0
  100. {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/Makefile +0 -0
  101. {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/_static/git.png +0 -0
  102. {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/_static/logo.png +0 -0
  103. {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/_templates/function.rst +0 -0
  104. {nikamap-1.2.2/examples → nikamap-1.4.dev0/doc/auto_examples}/G2/bootstrap.py +0 -0
  105. {nikamap-1.2.2/examples → nikamap-1.4.dev0/doc/auto_examples}/G2/jackknife.py +0 -0
  106. {nikamap-1.2.2/examples → nikamap-1.4.dev0/doc/auto_examples}/fake_data/fake_map.py +0 -0
  107. {nikamap-1.2.2/examples → nikamap-1.4.dev0/doc/auto_examples}/fake_data/plot_basic_usage.py +0 -0
  108. {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/requirements.txt +0 -0
  109. {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/sphinxext/docscrape.py +0 -0
  110. {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/sphinxext/docscrape_sphinx.py +0 -0
  111. {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/sphinxext/github.py +0 -0
  112. {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/sphinxext/math_dollar.py +0 -0
  113. {nikamap-1.2.2 → nikamap-1.4.dev0}/doc/sphinxext/numpydoc.py +0 -0
  114. {nikamap-1.2.2 → nikamap-1.4.dev0}/examples/G2/README.txt +0 -0
  115. {nikamap-1.2.2 → nikamap-1.4.dev0}/examples/README.txt +0 -0
  116. {nikamap-1.2.2 → nikamap-1.4.dev0}/examples/fake_data/README.txt +0 -0
  117. {nikamap-1.2.2 → nikamap-1.4.dev0}/examples/fake_data/fake_map.fits +0 -0
  118. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/__init__.py +0 -0
  119. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/analysis.py +0 -0
  120. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/data/README.rst +0 -0
  121. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/due.py +0 -0
  122. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/nikamap.py +0 -0
  123. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/__init__.py +0 -0
  124. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_check_SNR_ax.png +0 -0
  125. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_PSD_grid_sources.png +0 -0
  126. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_PSD_single_source.png +0 -0
  127. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_PSD_single_source_mask.png +0 -0
  128. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_PSD_single_source_side.png +0 -0
  129. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_PSD_wobble_grid_sources.png +0 -0
  130. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_ax_grid_sources.png +0 -0
  131. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_ax_single_source.png +0 -0
  132. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_ax_single_source_mask.png +0 -0
  133. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_ax_single_source_side.png +0 -0
  134. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_ax_wobble_grid_sources.png +0 -0
  135. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_grid_sources.png +0 -0
  136. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_single_source.png +0 -0
  137. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_single_source_mask.png +0 -0
  138. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_single_source_side.png +0 -0
  139. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_SNR_wobble_grid_sources.png +0 -0
  140. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_ax_grid_sources.png +0 -0
  141. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_ax_single_source.png +0 -0
  142. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_ax_single_source_mask.png +0 -0
  143. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_ax_single_source_side.png +0 -0
  144. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_ax_wobble_grid_sources.png +0 -0
  145. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_beam_grid_sources.png +0 -0
  146. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_beam_single_source.png +0 -0
  147. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_beam_single_source_mask.png +0 -0
  148. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_beam_single_source_side.png +0 -0
  149. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_beam_wobble_grid_sources.png +0 -0
  150. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_grid_sources.png +0 -0
  151. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_single_source.png +0 -0
  152. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_single_source_mask.png +0 -0
  153. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_single_source_side.png +0 -0
  154. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/baseline/test_contmap_plot_wobble_grid_sources.png +0 -0
  155. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/test_analysis.py +0 -0
  156. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/tests/test_nikamap.py +0 -0
  157. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap/version.py +0 -0
  158. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap.egg-info/dependency_links.txt +0 -0
  159. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap.egg-info/entry_points.txt +0 -0
  160. {nikamap-1.2.2 → nikamap-1.4.dev0}/nikamap.egg-info/not-zip-safe +0 -0
  161. {nikamap-1.2.2 → nikamap-1.4.dev0}/requirements.txt +0 -0
  162. {nikamap-1.2.2 → nikamap-1.4.dev0}/scripts/Figure1.ipynb +0 -0
  163. {nikamap-1.2.2 → nikamap-1.4.dev0}/setup.cfg +0 -0
  164. {nikamap-1.2.2 → nikamap-1.4.dev0}/setup.py +0 -0
  165. {nikamap-1.2.2 → nikamap-1.4.dev0}/sonar-project.properties +0 -0
  166. {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": "ad6da17e1d8fd96456566abed30b510bf8b5f8c8",
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
@@ -0,0 +1,4 @@
1
+ *.fits filter=lfs diff=lfs merge=lfs -text
2
+ doc/auto_examples/**/*.zip filter=lfs diff=lfs merge=lfs -text
3
+ doc/auto_examples/**/*.ipynb filter=lfs diff=lfs merge=lfs -text
4
+ doc/auto_examples/**/*.png filter=lfs diff=lfs merge=lfs -text
@@ -37,7 +37,7 @@ jobs:
37
37
  steps:
38
38
  - uses: actions/checkout@v4
39
39
 
40
- - uses: actions/setup-python@v5
40
+ - uses: actions/setup-python@v6
41
41
  with:
42
42
  python-version: "3.11"
43
43
 
@@ -160,7 +160,8 @@ cython_debug/
160
160
  #.idea/
161
161
 
162
162
  _build/
163
- auto_examples/
163
+ # auto_examples/ is committed (pre-built) so that RTD can serve it without re-executing
164
+ # auto_examples/
164
165
  gen_api/
165
166
  reports/
166
167
  .vscode/
@@ -123,11 +123,22 @@ ruff:
123
123
  - ".cache/pip"
124
124
  - ".ruff_cache"
125
125
 
126
- #pages:
127
- # script:
128
- # - pip install sphinx sphinx-rtd-theme
129
- # - cd doc ; make html
130
- # - mv build/html/ ../public/
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.2.2
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 python package to manipulate data produced by the IDL or PIIC NIKA2 pipeline.
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 alternatively
93
+ or using the multi-band container:
74
94
 
75
95
  .. code:: python
76
96
 
77
- from nikamap import NikaFits
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
- We love contributions! cruft_openastro is open source,
181
- built on open source, and we'd love to have you hang out in our community.
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 python package to manipulate data produced by the IDL or PIIC NIKA2 pipeline.
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 alternatively
35
+ or using the multi-band container:
15
36
 
16
37
  .. code:: python
17
38
 
18
- from nikamap import NikaFits
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
- We love contributions! cruft_openastro is open source,
122
- built on open source, and we'd love to have you hang out in our community.
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
 
@@ -1,6 +1,10 @@
1
1
  API
2
2
  ===
3
3
 
4
+ The autogenerated API reference below is complemented by the
5
+ :doc:`contmap` guide, which highlights the map analysis and stacking
6
+ workflows most commonly used in practice.
7
+
4
8
 
5
9
  Classes
6
10
  -------
@@ -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
+ }