hst123 1.1.0__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.
- hst123-1.1.0/.github/workflows/build-test.yml +36 -0
- hst123-1.1.0/.github/workflows/documentation.yml +42 -0
- hst123-1.1.0/.github/workflows/publish-pypi.yml +43 -0
- hst123-1.1.0/.gitignore +13 -0
- hst123-1.1.0/LICENSE.txt +21 -0
- hst123-1.1.0/PKG-INFO +162 -0
- hst123-1.1.0/README.md +121 -0
- hst123-1.1.0/docs/Makefile +14 -0
- hst123-1.1.0/docs/_static/.gitkeep +0 -0
- hst123-1.1.0/docs/_static/hst123-docs.css +17 -0
- hst123-1.1.0/docs/_templates/.gitkeep +0 -0
- hst123-1.1.0/docs/_templates/layout.html +2 -0
- hst123-1.1.0/docs/api.rst +77 -0
- hst123-1.1.0/docs/changelog.md +27 -0
- hst123-1.1.0/docs/conf.py +118 -0
- hst123-1.1.0/docs/index.rst +63 -0
- hst123-1.1.0/docs/installation.rst +57 -0
- hst123-1.1.0/docs/user_guide.rst +151 -0
- hst123-1.1.0/docs/zeropoints.md +17 -0
- hst123-1.1.0/environment.yml +22 -0
- hst123-1.1.0/hst123/__init__.py +54 -0
- hst123-1.1.0/hst123/__main__.py +20 -0
- hst123-1.1.0/hst123/_pipeline.py +3343 -0
- hst123-1.1.0/hst123/_version.py +1 -0
- hst123-1.1.0/hst123/datamodels/__init__.py +9 -0
- hst123-1.1.0/hst123/datamodels/base_model.py +500 -0
- hst123-1.1.0/hst123/datamodels/hst_model.py +76 -0
- hst123-1.1.0/hst123/dolphot_install.py +2320 -0
- hst123-1.1.0/hst123/primitives/__init__.py +25 -0
- hst123-1.1.0/hst123/primitives/astrometry/__init__.py +22 -0
- hst123-1.1.0/hst123/primitives/astrometry/alignment_meta.py +136 -0
- hst123-1.1.0/hst123/primitives/astrometry/astrometry_primitive.py +1563 -0
- hst123-1.1.0/hst123/primitives/astrometry/jhat.py +82 -0
- hst123-1.1.0/hst123/primitives/base.py +111 -0
- hst123-1.1.0/hst123/primitives/fits.py +277 -0
- hst123-1.1.0/hst123/primitives/photometry.py +176 -0
- hst123-1.1.0/hst123/primitives/primitive_cleanup.py +352 -0
- hst123-1.1.0/hst123/primitives/run_dolphot/__init__.py +7 -0
- hst123-1.1.0/hst123/primitives/run_dolphot/run_dolphot_primitive.py +1150 -0
- hst123-1.1.0/hst123/primitives/scrape_dolphot/__init__.py +6 -0
- hst123-1.1.0/hst123/primitives/scrape_dolphot/scrape_dolphot_primitive.py +884 -0
- hst123-1.1.0/hst123/scripts/update_changelog.py +75 -0
- hst123-1.1.0/hst123/settings.py +312 -0
- hst123-1.1.0/hst123/utils/__init__.py +73 -0
- hst123-1.1.0/hst123/utils/alignment_validation.py +206 -0
- hst123-1.1.0/hst123/utils/astrodrizzle_helpers.py +472 -0
- hst123-1.1.0/hst123/utils/astrodrizzle_paths.py +122 -0
- hst123-1.1.0/hst123/utils/display.py +229 -0
- hst123-1.1.0/hst123/utils/dolphot_catalog_hdf5.py +765 -0
- hst123-1.1.0/hst123/utils/dolphot_mask.py +1057 -0
- hst123-1.1.0/hst123/utils/dolphot_sky.py +766 -0
- hst123-1.1.0/hst123/utils/dolphot_splitgroups.py +210 -0
- hst123-1.1.0/hst123/utils/logging.py +1170 -0
- hst123-1.1.0/hst123/utils/options.py +298 -0
- hst123-1.1.0/hst123/utils/paths.py +93 -0
- hst123-1.1.0/hst123/utils/progress_log.py +212 -0
- hst123-1.1.0/hst123/utils/reference_download.py +260 -0
- hst123-1.1.0/hst123/utils/stdio.py +99 -0
- hst123-1.1.0/hst123/utils/stsci_wcs.py +79 -0
- hst123-1.1.0/hst123/utils/stwcs/STWCS_VENDOR.txt +11 -0
- hst123-1.1.0/hst123/utils/stwcs/__init__.py +16 -0
- hst123-1.1.0/hst123/utils/stwcs/distortion/__init__.py +0 -0
- hst123-1.1.0/hst123/utils/stwcs/distortion/coeff_converter.py +151 -0
- hst123-1.1.0/hst123/utils/stwcs/distortion/models.py +316 -0
- hst123-1.1.0/hst123/utils/stwcs/distortion/mutil.py +707 -0
- hst123-1.1.0/hst123/utils/stwcs/distortion/utils.py +276 -0
- hst123-1.1.0/hst123/utils/stwcs/updatewcs/__init__.py +459 -0
- hst123-1.1.0/hst123/utils/stwcs/updatewcs/apply_corrections.py +335 -0
- hst123-1.1.0/hst123/utils/stwcs/updatewcs/astrometry_utils.py +966 -0
- hst123-1.1.0/hst123/utils/stwcs/updatewcs/corrections.py +361 -0
- hst123-1.1.0/hst123/utils/stwcs/updatewcs/det2im.py +261 -0
- hst123-1.1.0/hst123/utils/stwcs/updatewcs/makewcs.py +274 -0
- hst123-1.1.0/hst123/utils/stwcs/updatewcs/npol.py +308 -0
- hst123-1.1.0/hst123/utils/stwcs/updatewcs/updatehdr.py +780 -0
- hst123-1.1.0/hst123/utils/stwcs/updatewcs/utils.py +262 -0
- hst123-1.1.0/hst123/utils/stwcs/updatewcs/wfpc2_dgeo.py +127 -0
- hst123-1.1.0/hst123/utils/stwcs/version.py +34 -0
- hst123-1.1.0/hst123/utils/stwcs/wcsutil/__init__.py +32 -0
- hst123-1.1.0/hst123/utils/stwcs/wcsutil/altwcs.py +1116 -0
- hst123-1.1.0/hst123/utils/stwcs/wcsutil/convertwcs.py +118 -0
- hst123-1.1.0/hst123/utils/stwcs/wcsutil/getinput.py +63 -0
- hst123-1.1.0/hst123/utils/stwcs/wcsutil/headerlet.py +2814 -0
- hst123-1.1.0/hst123/utils/stwcs/wcsutil/hstwcs.py +1009 -0
- hst123-1.1.0/hst123/utils/stwcs/wcsutil/instruments.py +317 -0
- hst123-1.1.0/hst123/utils/stwcs/wcsutil/mappings.py +27 -0
- hst123-1.1.0/hst123/utils/stwcs/wcsutil/mosaic.py +185 -0
- hst123-1.1.0/hst123/utils/stwcs/wcsutil/wcscorr.py +661 -0
- hst123-1.1.0/hst123/utils/stwcs/wcsutil/wcsdiff.py +153 -0
- hst123-1.1.0/hst123/utils/visit.py +40 -0
- hst123-1.1.0/hst123/utils/wcs_utils.py +208 -0
- hst123-1.1.0/hst123/utils/workdir_cleanup.py +364 -0
- hst123-1.1.0/hst123.egg-info/PKG-INFO +162 -0
- hst123-1.1.0/hst123.egg-info/SOURCES.txt +133 -0
- hst123-1.1.0/hst123.egg-info/dependency_links.txt +1 -0
- hst123-1.1.0/hst123.egg-info/entry_points.txt +3 -0
- hst123-1.1.0/hst123.egg-info/requires.txt +27 -0
- hst123-1.1.0/hst123.egg-info/top_level.txt +1 -0
- hst123-1.1.0/pyproject.toml +87 -0
- hst123-1.1.0/scripts/run_sn2021tyw.sh +29 -0
- hst123-1.1.0/setup.cfg +4 -0
- hst123-1.1.0/tests/__init__.py +1 -0
- hst123-1.1.0/tests/conftest.py +82 -0
- hst123-1.1.0/tests/test_alignment_meta.py +237 -0
- hst123-1.1.0/tests/test_alignment_validation.py +71 -0
- hst123-1.1.0/tests/test_astrodrizzle_helpers.py +123 -0
- hst123-1.1.0/tests/test_astrodrizzle_output_path.py +86 -0
- hst123-1.1.0/tests/test_astrometry.py +93 -0
- hst123-1.1.0/tests/test_compress_reference.py +61 -0
- hst123-1.1.0/tests/test_display.py +121 -0
- hst123-1.1.0/tests/test_dolphot_c_python_parity.py +548 -0
- hst123-1.1.0/tests/test_dolphot_catalog_hdf5.py +222 -0
- hst123-1.1.0/tests/test_dolphot_install.py +856 -0
- hst123-1.1.0/tests/test_dolphot_sky.py +301 -0
- hst123-1.1.0/tests/test_dolphot_splitgroups.py +144 -0
- hst123-1.1.0/tests/test_hst123.py +268 -0
- hst123-1.1.0/tests/test_init.py +4 -0
- hst123-1.1.0/tests/test_logging.py +400 -0
- hst123-1.1.0/tests/test_obstable_drizname.py +13 -0
- hst123-1.1.0/tests/test_options.py +137 -0
- hst123-1.1.0/tests/test_paths.py +65 -0
- hst123-1.1.0/tests/test_pipeline_cleanup_validation.py +63 -0
- hst123-1.1.0/tests/test_pipeline_main.py +133 -0
- hst123-1.1.0/tests/test_pipeline_mast_download.py +163 -0
- hst123-1.1.0/tests/test_pipeline_methods.py +104 -0
- hst123-1.1.0/tests/test_primitive_cleanup.py +59 -0
- hst123-1.1.0/tests/test_primitives.py +99 -0
- hst123-1.1.0/tests/test_progress_log.py +89 -0
- hst123-1.1.0/tests/test_reference_download.py +89 -0
- hst123-1.1.0/tests/test_run_dolphot.py +548 -0
- hst123-1.1.0/tests/test_scrape_dolphot.py +376 -0
- hst123-1.1.0/tests/test_settings.py +138 -0
- hst123-1.1.0/tests/test_stdio.py +34 -0
- hst123-1.1.0/tests/test_visit.py +60 -0
- hst123-1.1.0/tests/test_wcs_utils.py +196 -0
- hst123-1.1.0/tests/test_workdir_cleanup.py +186 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: Build and Test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build-and-test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
defaults:
|
|
13
|
+
run:
|
|
14
|
+
# Required so conda env is activated in run steps (setup-miniconda)
|
|
15
|
+
shell: bash -el {0}
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
with:
|
|
19
|
+
submodules: true
|
|
20
|
+
fetch-depth: 0
|
|
21
|
+
persist-credentials: false
|
|
22
|
+
- name: Set up Conda with Python 3.12
|
|
23
|
+
uses: conda-incubator/setup-miniconda@v3
|
|
24
|
+
with:
|
|
25
|
+
environment-file: environment.yml
|
|
26
|
+
activate-environment: hst123
|
|
27
|
+
auto-update-conda: true
|
|
28
|
+
- name: Install the package and dependencies
|
|
29
|
+
run: |
|
|
30
|
+
python -m pip install --upgrade pip setuptools wheel
|
|
31
|
+
# Editable install: tests and monkeypatches target the checkout, not a
|
|
32
|
+
# stale copy under site-packages.
|
|
33
|
+
python -m pip install -e ".[test]"
|
|
34
|
+
- name: Run tests
|
|
35
|
+
run: |
|
|
36
|
+
python -m pytest tests/ -v --tb=short
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
name: Documentation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main ]
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
docs:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
strategy:
|
|
16
|
+
matrix:
|
|
17
|
+
python-version: [3.12]
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
with:
|
|
21
|
+
submodules: true
|
|
22
|
+
fetch-depth: 0
|
|
23
|
+
persist-credentials: false
|
|
24
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
25
|
+
uses: actions/setup-python@v5
|
|
26
|
+
with:
|
|
27
|
+
python-version: ${{ matrix.python-version }}
|
|
28
|
+
- name: Install the package with doc dependencies
|
|
29
|
+
run: |
|
|
30
|
+
python -m pip install --upgrade pip setuptools wheel
|
|
31
|
+
pip install .[docs]
|
|
32
|
+
- name: Build the docs
|
|
33
|
+
run: |
|
|
34
|
+
cd docs
|
|
35
|
+
make html
|
|
36
|
+
- name: Deploy to GitHub Pages
|
|
37
|
+
uses: peaceiris/actions-gh-pages@v4
|
|
38
|
+
with:
|
|
39
|
+
publish_branch: gh-pages
|
|
40
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
41
|
+
publish_dir: docs/build/html/
|
|
42
|
+
force_orphan: true
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Publish the hst123 package to https://pypi.org/project/hst123/
|
|
2
|
+
#
|
|
3
|
+
# Setup (one-time on PyPI):
|
|
4
|
+
# 1. Create the "hst123" project on PyPI (or claim the name if reserved).
|
|
5
|
+
# 2. Publishing → "Add a new publisher" → GitHub → this repo → this workflow file.
|
|
6
|
+
# (Optional: restrict to a GitHub Environment named "pypi" and add the same
|
|
7
|
+
# name under "Publisher" on PyPI.)
|
|
8
|
+
#
|
|
9
|
+
# Release:
|
|
10
|
+
# git tag v1.2.3 && git push origin v1.2.3
|
|
11
|
+
# (setuptools-scm reads the tag; requires fetch-depth: 0 below)
|
|
12
|
+
#
|
|
13
|
+
name: Publish to PyPI
|
|
14
|
+
|
|
15
|
+
on:
|
|
16
|
+
push:
|
|
17
|
+
tags:
|
|
18
|
+
- "v*"
|
|
19
|
+
|
|
20
|
+
permissions:
|
|
21
|
+
contents: read
|
|
22
|
+
id-token: write
|
|
23
|
+
|
|
24
|
+
jobs:
|
|
25
|
+
publish:
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v4
|
|
29
|
+
with:
|
|
30
|
+
fetch-depth: 0
|
|
31
|
+
|
|
32
|
+
- uses: actions/setup-python@v5
|
|
33
|
+
with:
|
|
34
|
+
python-version: "3.12"
|
|
35
|
+
|
|
36
|
+
- name: Install build tools
|
|
37
|
+
run: pip install --upgrade pip build
|
|
38
|
+
|
|
39
|
+
- name: Build sdist and wheel
|
|
40
|
+
run: python -m build
|
|
41
|
+
|
|
42
|
+
- name: Publish to PyPI
|
|
43
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
hst123-1.1.0/.gitignore
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
*.pyc
|
|
2
|
+
__pycache__
|
|
3
|
+
|
|
4
|
+
# Editor / IDE (local)
|
|
5
|
+
.vscode/
|
|
6
|
+
|
|
7
|
+
# Local integration / regression data (large FITS, logs); not versioned
|
|
8
|
+
test_data/
|
|
9
|
+
*.egg-info/
|
|
10
|
+
build/
|
|
11
|
+
docs/build/
|
|
12
|
+
# Setuptools-scm writes this at build time; do not commit
|
|
13
|
+
hst123/_version.py
|
hst123-1.1.0/LICENSE.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Charles D. Kilpatrick
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
hst123-1.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: hst123
|
|
3
|
+
Version: 1.1.0
|
|
4
|
+
Summary: An all-in-one script for downloading, registering, and drizzling HST images, running dolphot, and scraping data from dolphot catalogs.
|
|
5
|
+
License: BSD-3-Clause
|
|
6
|
+
Keywords: astronomy,HST,Hubble,dolphot,drizzle,photometry
|
|
7
|
+
Classifier: Development Status :: 4 - Beta
|
|
8
|
+
Classifier: Intended Audience :: Science/Research
|
|
9
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
10
|
+
Classifier: Operating System :: OS Independent
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
13
|
+
Classifier: Topic :: Scientific/Engineering :: Astronomy
|
|
14
|
+
Requires-Python: <3.13,>=3.12
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE.txt
|
|
17
|
+
Requires-Dist: setuptools<82,>=64.0
|
|
18
|
+
Requires-Dist: astropy<6,>=5.3
|
|
19
|
+
Requires-Dist: astroquery>=0.4.6
|
|
20
|
+
Requires-Dist: astroscrappy>=1.1.0
|
|
21
|
+
Requires-Dist: drizzlepac>=3.5.1
|
|
22
|
+
Requires-Dist: numpy<2,>=1.26
|
|
23
|
+
Requires-Dist: progressbar33>=2.4
|
|
24
|
+
Requires-Dist: python-dateutil>=2.8.2
|
|
25
|
+
Requires-Dist: requests>=2.32.0
|
|
26
|
+
Requires-Dist: scipy<2,>=1.11
|
|
27
|
+
Requires-Dist: h5py>=3.8
|
|
28
|
+
Requires-Dist: jhat
|
|
29
|
+
Provides-Extra: perf
|
|
30
|
+
Requires-Dist: numba>=0.59; extra == "perf"
|
|
31
|
+
Provides-Extra: test
|
|
32
|
+
Requires-Dist: pytest>=7.0; extra == "test"
|
|
33
|
+
Provides-Extra: hdf5
|
|
34
|
+
Requires-Dist: h5py>=3.8; extra == "hdf5"
|
|
35
|
+
Provides-Extra: docs
|
|
36
|
+
Requires-Dist: sphinx>=5.0; extra == "docs"
|
|
37
|
+
Requires-Dist: sphinx-rtd-theme>=1.2; extra == "docs"
|
|
38
|
+
Requires-Dist: numpydoc>=1.5; extra == "docs"
|
|
39
|
+
Requires-Dist: myst-parser>=2.0; extra == "docs"
|
|
40
|
+
Dynamic: license-file
|
|
41
|
+
|
|
42
|
+
# hst123
|
|
43
|
+
|
|
44
|
+
[](https://github.com/charliekilpatrick/hst123/actions/workflows/build-test.yml)
|
|
45
|
+
[](https://github.com/charliekilpatrick/hst123/actions/workflows/documentation.yml)
|
|
46
|
+
[](https://charliekilpatrick.github.io/hst123/)
|
|
47
|
+
|
|
48
|
+
Pipeline for HST data: download from MAST, align (tweakreg/jhat), drizzle, run DOLPHOT, and scrape photometry. Optimized for point-source photometry across multiple visits and filters.
|
|
49
|
+
|
|
50
|
+
**Issues:** Report bugs and feature requests via the project issue tracker. Other questions or publications using hst123: [Contact](#contact).
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Repository status
|
|
55
|
+
|
|
56
|
+
- **Python:** **3.12** (``requires-python`` in ``pyproject.toml`` pins the **3.12** line: ``>=3.12,<3.13``)
|
|
57
|
+
- **Versioning:** From git tags (setuptools-scm); `hst123 --version`
|
|
58
|
+
- **Layout:** Main pipeline in `hst123/_pipeline.py`; helpers in `hst123/primitives/` (FITS, photometry, astrometry, DOLPHOT, scrape) and `hst123/utils/` (options, display, visit, WCS)
|
|
59
|
+
- **Tests:** `pytest` in `tests/`; optional markers `network`, `dolphot` (see pyproject.toml)
|
|
60
|
+
- **Docs:** Sphinx sources under `docs/` (MyST Markdown + reStructuredText, Read the Docs theme). Build: `pip install -e ".[docs]"` then `cd docs && make html`. **Hosted:** [GitHub Pages](https://charliekilpatrick.github.io/hst123/) (from the [Documentation workflow](https://github.com/charliekilpatrick/hst123/actions/workflows/documentation.yml)).
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Installation
|
|
65
|
+
|
|
66
|
+
**1. Environment (recommended: Conda)**
|
|
67
|
+
From the repo root:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
conda env create -f environment.yml
|
|
71
|
+
conda activate hst123
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**2. Pipeline and heavy deps**
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
pip install drizzlepac
|
|
78
|
+
pip install -e .
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
The **STScI WCS** stack used by hst123 (``updatewcs``, ``HSTWCS``, ``altwcs``) is **bundled** under ``hst123.utils.stwcs`` (see ``STWCS_VENDOR.txt`` there) and reached only via ``hst123.utils.stsci_wcs`` — **PyPI ``stwcs`` is not an hst123 dependency**. DrizzlePac may still install ``stwcs`` for its own use.
|
|
82
|
+
|
|
83
|
+
The `hst123` command is available. Download, alignment, and drizzling work without DOLPHOT.
|
|
84
|
+
|
|
85
|
+
**3. DOLPHOT (only for `--run-dolphot`)**
|
|
86
|
+
DOLPHOT is external; not bundled. With **conda activated**, the helper downloads sources and PSF/PAM reference data under **`$CONDA_PREFIX/opt/hst123-dolphot`**, runs **`make`**, and symlinks **`dolphot`**, **`calcsky`**, and optional mask/split tools into **`$CONDA_PREFIX/bin`**. **Masking** (`acsmask` / `wfc3mask` / `wfpc2mask`) and **`splitgroups`** are implemented in Python by default (see **`hst123.utils.dolphot_mask`**, **`hst123.utils.dolphot_splitgroups`**); set **`HST123_DOLPHOT_MASK_EXTERNAL=1`** or **`HST123_DOLPHOT_SPLITGROUPS_EXTERNAL=1`** to force the C binaries.
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
conda activate hst123 # or your env with hst123 installed
|
|
90
|
+
hst123-install-dolphot
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Without conda (or to choose a location), pass **`--dolphot-dir /path/to/dolphot`**; use **`--no-link-conda-bin`** and **`export PATH="/path/to/dolphot:$PATH"`** if you do not want links in the env `bin/`. Manual install: [americano.dolphinsim.com/dolphot](http://americano.dolphinsim.com/dolphot/).
|
|
94
|
+
|
|
95
|
+
The helper installs **DOLPHOT 3.1**, merges PSF tables into the tree DOLPHOT expects, and can apply small source patches for long paths on macOS. Re-running **`hst123-install-dolphot`** does not re-download already-installed artifacts; use **`--force-download`** to refresh. See **`hst123-install-dolphot --help`**.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Usage
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
hst123 <ra> <dec> [options]
|
|
103
|
+
# Example:
|
|
104
|
+
hst123 12:30:00 -45.0 --download
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
- **`--work-dir`** — Absolute path is recommended; defaults to the current directory at startup. **`--raw-dir`** defaults to **`<work-dir>/raw`** (science FITS are written there, then copied into the work directory for reduction). **MAST / astroquery staging** (the temporary **`mastDownload`** tree) is always created under **`<work-dir>/.mast_download_staging/`** and removed after each file is moved to **`raw`** or **`--archive`**, so nothing is left in the directory you launched the command from when **`--work-dir`** points elsewhere. Most calibrated inputs and per-epoch drizzle outputs live under **`<work-dir>/workspace/`**; **`--drizzle-all`** writes the consolidated **`drizzle/`** directory under **`<work-dir>/drizzle/`** (the base work directory, not inside **`workspace/`**).
|
|
108
|
+
- **`--download`** — Fetch data from MAST for the given RA/Dec (5′ radius). Use **`--token`** for private data ([MAST auth](https://auth.mast.stsci.edu/info)).
|
|
109
|
+
- **`--run-dolphot`** — Run DOLPHOT (requires DOLPHOT on PATH).
|
|
110
|
+
- **`--scrape-dolphot`** — Extract photometry at the target from DOLPHOT output.
|
|
111
|
+
|
|
112
|
+
**DOLPHOT catalog → HDF5:** Optional helper **`hst123.utils.dolphot_catalog_hdf5.write_dolphot_catalog_hdf5`** writes the DOLPHOT table to a single **HDF5** file (columnar datasets + metadata). Requires **`h5py`** (`pip install h5py` or **`pip install .[hdf5]`**).
|
|
113
|
+
|
|
114
|
+
Run in a directory that will hold (or already holds) your images. Without `--download`, hst123 uses existing files in the working directory. Full option list: **`hst123 --help`**.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Supported instruments
|
|
119
|
+
|
|
120
|
+
| Instrument | File types |
|
|
121
|
+
| ---------- | ------------------------- |
|
|
122
|
+
| WFPC2 | c0m.fits, c1m.fits (both) |
|
|
123
|
+
| ACS/WFC | flc.fits |
|
|
124
|
+
| ACS/HRC | flt.fits |
|
|
125
|
+
| WFC3/UVIS | flc.fits |
|
|
126
|
+
| WFC3/IR | flt.fits |
|
|
127
|
+
|
|
128
|
+
You can provide **`--reference`** or let hst123 build one from the data. Alignment: **tweakreg** (default) or **jhat** (**`--align-with`**). Photometry is reported in AB mag by default; see `docs/zeropoints.md`.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Options (summary)
|
|
133
|
+
|
|
134
|
+
- **Run environment:** `--work-dir`, `--raw-dir`, `--archive`, `--cleanup`, `--keep-drizzle-artifacts`, `--by-visit`
|
|
135
|
+
- **Filters/dates:** `--before`, `--after`, `--only-filter`, `--only-wide`
|
|
136
|
+
- **Reference:** `--reference` / `--ref`, `--reference-filter`, `--reference-instrument`, `--avoid-wfpc2`
|
|
137
|
+
- **Alignment:** `--tweak-search`, `--tweak-min-obj`, `--tweak-thresh`, `--skip-tweakreg`, `--align-with`, `--hierarchical`
|
|
138
|
+
- **Drizzle / parallelism:** `--drizzle-all`, `--drizzle-dim`, `--drizzle-scale`, `--sky-sub`, `--redrizzle`, `--fix-zpt`, `--no-rotation`, `--max-cores` (AstroDrizzle `num_cores` and DOLPHOT prep thread pool, capped by exposure count; default min(8, CPU count); `--max-cores 1` forces serial prep and single-worker drizzle)
|
|
139
|
+
- **DOLPHOT:** `--run-dolphot`, `--dolphot` / `--dp`, `--dolphot-lim`, `--do-fake`, `--add-crmask`, `--include-all-splits`
|
|
140
|
+
- **Scraping:** `--scrape-dolphot` / `--sd`, `--scrape-all`, `--scrape-radius`, `--no-cuts`, `--brightest`
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Documentation
|
|
145
|
+
|
|
146
|
+
- **Online:** [charliekilpatrick.github.io/hst123](https://charliekilpatrick.github.io/hst123/) (API reference, user guide, changelog, zero points).
|
|
147
|
+
- **Local build:** `pip install -e ".[docs]"` then `cd docs && make html` → `docs/build/html/index.html`.
|
|
148
|
+
- **Sources:** `docs/index.rst`, `docs/user_guide.rst`, `docs/api.rst`, plus `docs/changelog.md` and `docs/zeropoints.md` (MyST).
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Citing and contact
|
|
153
|
+
|
|
154
|
+
**Citation:** C. D. Kilpatrick, *hst123: HST download, alignment, drizzle, and DOLPHOT photometry pipeline*, GitHub (or project URL). If a DOI (e.g. Zenodo) is assigned to a release, cite that. We welcome notice of papers that use hst123.
|
|
155
|
+
|
|
156
|
+
**Suggested references for citing hst123:** If you cite this software in a paper or proposal, you may also reference the following peer-reviewed works that use *Hubble Space Telescope* data heavily and describe the use of **hst123**:
|
|
157
|
+
|
|
158
|
+
- Kilpatrick et al., “A cool and inflated progenitor candidate for the Type Ib supernova 2019yvr at 2.6 yr before explosion,” *MNRAS* **504**, 2073 (2021). [doi:10.1093/mnras/stab838](https://doi.org/10.1093/mnras/stab838) · [arXiv:2101.03185](https://arxiv.org/abs/2101.03185)
|
|
159
|
+
- Kilpatrick et al., “Hubble Space Telescope Observations of GW170817: Complete Light Curves and the Properties of the Galaxy Merger of NGC 4993,” *ApJ* **926**, 49 (2022). [doi:10.3847/1538-4357/ac3e59](https://doi.org/10.3847/1538-4357/ac3e59) · [arXiv:2109.06211](https://arxiv.org/abs/2109.06211)
|
|
160
|
+
- Kilpatrick et al., “Type II-P supernova progenitor star initial masses and SN 2020jfo: direct detection, light-curve properties, nebular spectroscopy, and local environment,” *MNRAS* **524**, 2161 (2023). [doi:10.1093/mnras/stad1954](https://doi.org/10.1093/mnras/stad1954) · [arXiv:2307.00550](https://arxiv.org/abs/2307.00550)
|
|
161
|
+
|
|
162
|
+
**Contact:** Charlie Kilpatrick, ckilpatrick@northwestern.edu. **Bugs and feature requests:** please open an issue on the repository.
|
hst123-1.1.0/README.md
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# hst123
|
|
2
|
+
|
|
3
|
+
[](https://github.com/charliekilpatrick/hst123/actions/workflows/build-test.yml)
|
|
4
|
+
[](https://github.com/charliekilpatrick/hst123/actions/workflows/documentation.yml)
|
|
5
|
+
[](https://charliekilpatrick.github.io/hst123/)
|
|
6
|
+
|
|
7
|
+
Pipeline for HST data: download from MAST, align (tweakreg/jhat), drizzle, run DOLPHOT, and scrape photometry. Optimized for point-source photometry across multiple visits and filters.
|
|
8
|
+
|
|
9
|
+
**Issues:** Report bugs and feature requests via the project issue tracker. Other questions or publications using hst123: [Contact](#contact).
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Repository status
|
|
14
|
+
|
|
15
|
+
- **Python:** **3.12** (``requires-python`` in ``pyproject.toml`` pins the **3.12** line: ``>=3.12,<3.13``)
|
|
16
|
+
- **Versioning:** From git tags (setuptools-scm); `hst123 --version`
|
|
17
|
+
- **Layout:** Main pipeline in `hst123/_pipeline.py`; helpers in `hst123/primitives/` (FITS, photometry, astrometry, DOLPHOT, scrape) and `hst123/utils/` (options, display, visit, WCS)
|
|
18
|
+
- **Tests:** `pytest` in `tests/`; optional markers `network`, `dolphot` (see pyproject.toml)
|
|
19
|
+
- **Docs:** Sphinx sources under `docs/` (MyST Markdown + reStructuredText, Read the Docs theme). Build: `pip install -e ".[docs]"` then `cd docs && make html`. **Hosted:** [GitHub Pages](https://charliekilpatrick.github.io/hst123/) (from the [Documentation workflow](https://github.com/charliekilpatrick/hst123/actions/workflows/documentation.yml)).
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Installation
|
|
24
|
+
|
|
25
|
+
**1. Environment (recommended: Conda)**
|
|
26
|
+
From the repo root:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
conda env create -f environment.yml
|
|
30
|
+
conda activate hst123
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**2. Pipeline and heavy deps**
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pip install drizzlepac
|
|
37
|
+
pip install -e .
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The **STScI WCS** stack used by hst123 (``updatewcs``, ``HSTWCS``, ``altwcs``) is **bundled** under ``hst123.utils.stwcs`` (see ``STWCS_VENDOR.txt`` there) and reached only via ``hst123.utils.stsci_wcs`` — **PyPI ``stwcs`` is not an hst123 dependency**. DrizzlePac may still install ``stwcs`` for its own use.
|
|
41
|
+
|
|
42
|
+
The `hst123` command is available. Download, alignment, and drizzling work without DOLPHOT.
|
|
43
|
+
|
|
44
|
+
**3. DOLPHOT (only for `--run-dolphot`)**
|
|
45
|
+
DOLPHOT is external; not bundled. With **conda activated**, the helper downloads sources and PSF/PAM reference data under **`$CONDA_PREFIX/opt/hst123-dolphot`**, runs **`make`**, and symlinks **`dolphot`**, **`calcsky`**, and optional mask/split tools into **`$CONDA_PREFIX/bin`**. **Masking** (`acsmask` / `wfc3mask` / `wfpc2mask`) and **`splitgroups`** are implemented in Python by default (see **`hst123.utils.dolphot_mask`**, **`hst123.utils.dolphot_splitgroups`**); set **`HST123_DOLPHOT_MASK_EXTERNAL=1`** or **`HST123_DOLPHOT_SPLITGROUPS_EXTERNAL=1`** to force the C binaries.
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
conda activate hst123 # or your env with hst123 installed
|
|
49
|
+
hst123-install-dolphot
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Without conda (or to choose a location), pass **`--dolphot-dir /path/to/dolphot`**; use **`--no-link-conda-bin`** and **`export PATH="/path/to/dolphot:$PATH"`** if you do not want links in the env `bin/`. Manual install: [americano.dolphinsim.com/dolphot](http://americano.dolphinsim.com/dolphot/).
|
|
53
|
+
|
|
54
|
+
The helper installs **DOLPHOT 3.1**, merges PSF tables into the tree DOLPHOT expects, and can apply small source patches for long paths on macOS. Re-running **`hst123-install-dolphot`** does not re-download already-installed artifacts; use **`--force-download`** to refresh. See **`hst123-install-dolphot --help`**.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Usage
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
hst123 <ra> <dec> [options]
|
|
62
|
+
# Example:
|
|
63
|
+
hst123 12:30:00 -45.0 --download
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
- **`--work-dir`** — Absolute path is recommended; defaults to the current directory at startup. **`--raw-dir`** defaults to **`<work-dir>/raw`** (science FITS are written there, then copied into the work directory for reduction). **MAST / astroquery staging** (the temporary **`mastDownload`** tree) is always created under **`<work-dir>/.mast_download_staging/`** and removed after each file is moved to **`raw`** or **`--archive`**, so nothing is left in the directory you launched the command from when **`--work-dir`** points elsewhere. Most calibrated inputs and per-epoch drizzle outputs live under **`<work-dir>/workspace/`**; **`--drizzle-all`** writes the consolidated **`drizzle/`** directory under **`<work-dir>/drizzle/`** (the base work directory, not inside **`workspace/`**).
|
|
67
|
+
- **`--download`** — Fetch data from MAST for the given RA/Dec (5′ radius). Use **`--token`** for private data ([MAST auth](https://auth.mast.stsci.edu/info)).
|
|
68
|
+
- **`--run-dolphot`** — Run DOLPHOT (requires DOLPHOT on PATH).
|
|
69
|
+
- **`--scrape-dolphot`** — Extract photometry at the target from DOLPHOT output.
|
|
70
|
+
|
|
71
|
+
**DOLPHOT catalog → HDF5:** Optional helper **`hst123.utils.dolphot_catalog_hdf5.write_dolphot_catalog_hdf5`** writes the DOLPHOT table to a single **HDF5** file (columnar datasets + metadata). Requires **`h5py`** (`pip install h5py` or **`pip install .[hdf5]`**).
|
|
72
|
+
|
|
73
|
+
Run in a directory that will hold (or already holds) your images. Without `--download`, hst123 uses existing files in the working directory. Full option list: **`hst123 --help`**.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Supported instruments
|
|
78
|
+
|
|
79
|
+
| Instrument | File types |
|
|
80
|
+
| ---------- | ------------------------- |
|
|
81
|
+
| WFPC2 | c0m.fits, c1m.fits (both) |
|
|
82
|
+
| ACS/WFC | flc.fits |
|
|
83
|
+
| ACS/HRC | flt.fits |
|
|
84
|
+
| WFC3/UVIS | flc.fits |
|
|
85
|
+
| WFC3/IR | flt.fits |
|
|
86
|
+
|
|
87
|
+
You can provide **`--reference`** or let hst123 build one from the data. Alignment: **tweakreg** (default) or **jhat** (**`--align-with`**). Photometry is reported in AB mag by default; see `docs/zeropoints.md`.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Options (summary)
|
|
92
|
+
|
|
93
|
+
- **Run environment:** `--work-dir`, `--raw-dir`, `--archive`, `--cleanup`, `--keep-drizzle-artifacts`, `--by-visit`
|
|
94
|
+
- **Filters/dates:** `--before`, `--after`, `--only-filter`, `--only-wide`
|
|
95
|
+
- **Reference:** `--reference` / `--ref`, `--reference-filter`, `--reference-instrument`, `--avoid-wfpc2`
|
|
96
|
+
- **Alignment:** `--tweak-search`, `--tweak-min-obj`, `--tweak-thresh`, `--skip-tweakreg`, `--align-with`, `--hierarchical`
|
|
97
|
+
- **Drizzle / parallelism:** `--drizzle-all`, `--drizzle-dim`, `--drizzle-scale`, `--sky-sub`, `--redrizzle`, `--fix-zpt`, `--no-rotation`, `--max-cores` (AstroDrizzle `num_cores` and DOLPHOT prep thread pool, capped by exposure count; default min(8, CPU count); `--max-cores 1` forces serial prep and single-worker drizzle)
|
|
98
|
+
- **DOLPHOT:** `--run-dolphot`, `--dolphot` / `--dp`, `--dolphot-lim`, `--do-fake`, `--add-crmask`, `--include-all-splits`
|
|
99
|
+
- **Scraping:** `--scrape-dolphot` / `--sd`, `--scrape-all`, `--scrape-radius`, `--no-cuts`, `--brightest`
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Documentation
|
|
104
|
+
|
|
105
|
+
- **Online:** [charliekilpatrick.github.io/hst123](https://charliekilpatrick.github.io/hst123/) (API reference, user guide, changelog, zero points).
|
|
106
|
+
- **Local build:** `pip install -e ".[docs]"` then `cd docs && make html` → `docs/build/html/index.html`.
|
|
107
|
+
- **Sources:** `docs/index.rst`, `docs/user_guide.rst`, `docs/api.rst`, plus `docs/changelog.md` and `docs/zeropoints.md` (MyST).
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Citing and contact
|
|
112
|
+
|
|
113
|
+
**Citation:** C. D. Kilpatrick, *hst123: HST download, alignment, drizzle, and DOLPHOT photometry pipeline*, GitHub (or project URL). If a DOI (e.g. Zenodo) is assigned to a release, cite that. We welcome notice of papers that use hst123.
|
|
114
|
+
|
|
115
|
+
**Suggested references for citing hst123:** If you cite this software in a paper or proposal, you may also reference the following peer-reviewed works that use *Hubble Space Telescope* data heavily and describe the use of **hst123**:
|
|
116
|
+
|
|
117
|
+
- Kilpatrick et al., “A cool and inflated progenitor candidate for the Type Ib supernova 2019yvr at 2.6 yr before explosion,” *MNRAS* **504**, 2073 (2021). [doi:10.1093/mnras/stab838](https://doi.org/10.1093/mnras/stab838) · [arXiv:2101.03185](https://arxiv.org/abs/2101.03185)
|
|
118
|
+
- Kilpatrick et al., “Hubble Space Telescope Observations of GW170817: Complete Light Curves and the Properties of the Galaxy Merger of NGC 4993,” *ApJ* **926**, 49 (2022). [doi:10.3847/1538-4357/ac3e59](https://doi.org/10.3847/1538-4357/ac3e59) · [arXiv:2109.06211](https://arxiv.org/abs/2109.06211)
|
|
119
|
+
- Kilpatrick et al., “Type II-P supernova progenitor star initial masses and SN 2020jfo: direct detection, light-curve properties, nebular spectroscopy, and local environment,” *MNRAS* **524**, 2161 (2023). [doi:10.1093/mnras/stad1954](https://doi.org/10.1093/mnras/stad1954) · [arXiv:2307.00550](https://arxiv.org/abs/2307.00550)
|
|
120
|
+
|
|
121
|
+
**Contact:** Charlie Kilpatrick, ckilpatrick@northwestern.edu. **Bugs and feature requests:** please open an issue on the repository.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Minimal Sphinx Makefile; output goes to build/html for GitHub Pages publish_dir.
|
|
2
|
+
SPHINXOPTS =
|
|
3
|
+
SPHINXBUILD = sphinx-build
|
|
4
|
+
SPHINXPROJ = hst123
|
|
5
|
+
SOURCEDIR = .
|
|
6
|
+
BUILDDIR = build
|
|
7
|
+
|
|
8
|
+
.PHONY: help Makefile
|
|
9
|
+
|
|
10
|
+
help:
|
|
11
|
+
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
12
|
+
|
|
13
|
+
%: Makefile
|
|
14
|
+
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
File without changes
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* hst123 documentation — tweaks on sphinx_rtd_theme (Swift_host_subtraction style) */
|
|
2
|
+
|
|
3
|
+
.wy-table-responsive table td,
|
|
4
|
+
.wy-table-responsive table th {
|
|
5
|
+
white-space: normal;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.wy-table-responsive {
|
|
9
|
+
margin-bottom: 24px;
|
|
10
|
+
max-width: 100%;
|
|
11
|
+
overflow: visible;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/* Slightly clearer admonitions in RTD */
|
|
15
|
+
.rst-content .admonition {
|
|
16
|
+
border-radius: 4px;
|
|
17
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
.. _api_reference:
|
|
2
|
+
|
|
3
|
+
API reference
|
|
4
|
+
=============
|
|
5
|
+
|
|
6
|
+
This section documents the public Python API: the CLI entry point, the main
|
|
7
|
+
:class:`~hst123._pipeline.hst123` orchestration class, CLI registration in
|
|
8
|
+
:mod:`hst123.utils.options`, path helpers, optional HDF5 export for DOLPHOT
|
|
9
|
+
tables, and shared primitive utilities.
|
|
10
|
+
|
|
11
|
+
Entry point
|
|
12
|
+
-----------
|
|
13
|
+
|
|
14
|
+
.. autofunction:: hst123._pipeline.main
|
|
15
|
+
|
|
16
|
+
Pipeline class
|
|
17
|
+
--------------
|
|
18
|
+
|
|
19
|
+
The class :class:`~hst123._pipeline.hst123` holds pipeline state (options,
|
|
20
|
+
coordinates, input lists, reference path) and delegates to **primitives**
|
|
21
|
+
(``_fits``, ``_phot``, ``_astrom``, ``_dolphot``, ``_scrape_dolphot``) for
|
|
22
|
+
instrument-specific work.
|
|
23
|
+
|
|
24
|
+
.. autoclass:: hst123._pipeline.hst123
|
|
25
|
+
:members:
|
|
26
|
+
:exclude-members: __weakref__
|
|
27
|
+
|
|
28
|
+
CLI options and redo helpers
|
|
29
|
+
----------------------------
|
|
30
|
+
|
|
31
|
+
.. automodule:: hst123.utils.options
|
|
32
|
+
:members: add_options, want_redo_astrometry, want_redo_astrodrizzle
|
|
33
|
+
|
|
34
|
+
Path helpers
|
|
35
|
+
------------
|
|
36
|
+
|
|
37
|
+
.. automodule:: hst123.utils.paths
|
|
38
|
+
:members:
|
|
39
|
+
:undoc-members:
|
|
40
|
+
|
|
41
|
+
Parallel BLAS / OpenMP guard
|
|
42
|
+
----------------------------
|
|
43
|
+
|
|
44
|
+
.. automodule:: hst123.utils.stdio
|
|
45
|
+
:members:
|
|
46
|
+
:undoc-members:
|
|
47
|
+
|
|
48
|
+
Work directory cleanup
|
|
49
|
+
----------------------
|
|
50
|
+
|
|
51
|
+
After AstroDrizzle or TweakReg, the pipeline can remove scratch FITS and replay
|
|
52
|
+
external logs into the session log. Use ``--keep-drizzle-artifacts`` to retain
|
|
53
|
+
intermediates.
|
|
54
|
+
|
|
55
|
+
.. automodule:: hst123.utils.workdir_cleanup
|
|
56
|
+
:members: remove_files_matching_globs, cleanup_after_astrodrizzle, cleanup_after_tweakreg, remove_superseded_instrument_mask_reference_drizzle
|
|
57
|
+
|
|
58
|
+
DOLPHOT catalog → HDF5
|
|
59
|
+
----------------------
|
|
60
|
+
|
|
61
|
+
.. automodule:: hst123.utils.dolphot_catalog_hdf5
|
|
62
|
+
:members:
|
|
63
|
+
:undoc-members:
|
|
64
|
+
|
|
65
|
+
Data model
|
|
66
|
+
----------
|
|
67
|
+
|
|
68
|
+
.. automodule:: hst123.datamodels.hst_model
|
|
69
|
+
:members:
|
|
70
|
+
:undoc-members:
|
|
71
|
+
|
|
72
|
+
Primitives base class
|
|
73
|
+
---------------------
|
|
74
|
+
|
|
75
|
+
.. autoclass:: hst123.primitives.base.BasePrimitive
|
|
76
|
+
:members:
|
|
77
|
+
:show-inheritance:
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Notable changes to hst123. Version numbering follows semantic versioning for full releases.
|
|
4
|
+
|
|
5
|
+
## Pre-releases (historical)
|
|
6
|
+
|
|
7
|
+
- **v1.00** (2019-02-07) — Base: download, tweakreg, drizzle, dolphot parameters.
|
|
8
|
+
- **v1.01** (2019-02-15) — Run dolphot and scrape dolphot output.
|
|
9
|
+
- **v1.02** (2019-02-22) — Fake star injection.
|
|
10
|
+
- **v1.03** (2019-06-02) — Drizzle-all options and option/syntax cleanup.
|
|
11
|
+
- **v1.04** (2020-02-10) — Python 3.7.
|
|
12
|
+
- **v1.05** (2020-03-04) — Sanitizing reference images for tweakreg/dolphot.
|
|
13
|
+
- **v1.06** (2020-03-07) — Archiving (`--archive`) for large-volume analysis.
|
|
14
|
+
- **v1.07** (2020-03-08) — Archiving updates; `construct_hst_archive.py` helper.
|
|
15
|
+
|
|
16
|
+
## Documentation (Sphinx)
|
|
17
|
+
|
|
18
|
+
- Expanded sources: `installation.rst` (Python 3.12, Conda, DrizzlePac, DOLPHOT helper), `user_guide.rst` (work-directory layout, CLI overview, redo flags, output formats), `api.rst` (CLI entry point, full `hst123` pipeline class, `options`, `paths`, `stdio`, `workdir_cleanup`, `dolphot_catalog_hdf5`, `datamodels`, `BasePrimitive`).
|
|
19
|
+
|
|
20
|
+
## Releases
|
|
21
|
+
|
|
22
|
+
- **Unreleased** — **Python:** **3.12** only (``requires-python`` ``>=3.12,<3.13``; NumPy 1.x / Astropy 5.x / DrizzlePac stack). **Documentation:** Sphinx uses **MyST** (Markdown) + reStructuredText, **sphinx_rtd_theme**, custom CSS/layout (Swift_host_subtraction-style), intersphinx (Python/NumPy/Astropy), and GitHub Pages via CI; README badges for build, docs workflow, and site. `hst123.utils.dolphot_catalog_hdf5`: parse DOLPHOT ``*.columns`` / ``*.param`` / ``*.info`` / ``*.data`` / ``*.warnings`` and write **HDF5** (`pip install h5py` or `pip install .[hdf5]`) with the full numeric catalog plus descriptive column names and JSON metadata (merged per ``imgNNNN`` when possible). ``get_dolphot_column`` uses ``parse_column_index_and_description`` for robust column index parsing. `install_psfs` ends with `relocate_all_legacy_psf_into_canonical_layout`: merges legacy `dolphot2.0/...` **`*.psf`** into the canonical tree for **ACS**, **WFC3** (`wfc3/data`, `wfc3/IR`, `wfc3/UVIS`), and **WFPC2** (`wfpc2/data`), including **sibling** `dolphot2.0/` next to `dolphot3.1/` (common conda layout). `relocate_acs_psf_into_canonical_layout` remains for ACS-only use. `hst123-install-dolphot` applies `apply_dolphot_source_patches` before `make`: patches upstream `dolphot.c` (`main` stack buffer 82→4096 bytes) to avoid macOS `sprintf` overflow / SIGTRAP on long absolute output paths; `--no-source-patches` opts out. `tests/test_dolphot_c_python_parity.py` documents C vs Python parity for calcsky, splitgroups, acsmask, wfc3mask, wfpc2mask (optional binaries + DOLPHOT tree; marker `dolphot_parity`). `hst123.utils.progress_log.LoggedProgress`: throttled `logger.info` progress lines (`#---` bar, %, counts, elapsed, est. total duration, remaining) for reuse; wired to calcsky stage 1 in `write_sky_fits_fallback` / `compute_sky_map_dolphot` (Python per-row updates; **Numba: one full parallel pass** then a single progress completion—no sequential batched kernels that ruined throughput). Disable with `HST123_CALCSKY_PROGRESS=0` or `HST123_PROGRESS_LOG=0`. Optional **`pip install .[perf]`** adds `numba`; `environment.yml` includes `numba` for conda users. `*drc.noise.fits` (sky copy for drizzled stacks) removed in `run_dolphot` and `get_dolphot_photometry` primitive cleanup with `respect_keep_artifacts=False` so they are still removed when `--keep-drizzle-artifacts` is set (not in per-filter astrodrizzle cleanup, which would delete prior filters’ noise). Same glob listed in `settings.pipeline_products` for scripted cleanup; see `tests/test_pipeline_cleanup_validation.py`. Removed legacy CLI `--make-clean`, `--no-large-reduction`, `--large-num` and `hst123.make_clean` / `check_large_reduction`. CI: workflow uses `pip install -e ".[test]"`; `_psf_already_satisfied` treats ACS WFC PAM as present if either `make_root` or `source_dir` has a valid `acs/data` payload; scrape-dolphot unit tests supply minimal `pipeline.options`. Pure-Python DOLPHOT `splitgroups` (`hst123.utils.dolphot_splitgroups`); `HST123_DOLPHOT_SPLITGROUPS_EXTERNAL=1` forces the C binary. `DOLPHOT_REQUIRED_SCRIPTS` no longer lists `splitgroups`. DOLPHOT installer: `ACS_WFC_PAM.tar.gz` extracts under `dolphot2.0/acs/data/`; files are now copied to `acs/data/` and `dolphot_acs_data_dir` prefers directories that contain both PAM FITS. Python `calcsky` port: vectorized second pass (summed-area table); Numba first pass uses precomputed annulus offsets and a per-row scratch buffer (no per-pixel `calloc`).
|
|
23
|
+
|
|
24
|
+
- **v1.1.0** (2025-03-02) — Post–v1.07: refactored pipeline (utils, primitives), setuptools-scm versioning, tests and docs updates.
|
|
25
|
+
|
|
26
|
+
*Full releases are added here when tagging. Run from the repo root:*
|
|
27
|
+
*`python scripts/update_changelog.py "Brief summary of changes"`*
|