OST Photometry Package
Photometry reduction and analysis package for the OST Observatory of the University of Potsdam.
The package provides data reduction and analysis for photometric observations from the observatory's telescopes. It is used in astrophysics laboratory courses and for on-the-fly reduction in the observatory archive, but the APIs are intended for general differential photometry workflows as well.
Package structure
The installable package lives under src/ost_photometry/ and splits into two
main layers:
| Module | Role |
|---|---|
ost_photometry.reduce |
CCD preprocessing: bias/dark/flat correction, registration, masking, instrument helpers |
ost_photometry.analyze |
Science analysis: WCS, extraction, correlation, calibration, post-processing, light curves |
Supporting code includes terminal_output and style (console output),
checks, calibration_parameters (catalogs, filters, chips, extinction curves),
and core (shared utilities such as parallel execution).
Typical workflow: reduce raw FITS with reduce, then run analyze on
the calibrated image series via an Observation object and run_pipeline().
Capabilities
Reduction (reduce) — CCD stack building, image alignment, cosmic-ray
handling, and WCS helpers. Default alignment is star-triangle (shift_method="aa_true");
shift_method="wcs" reprojects onto the reference celestial WCS (large dithers /
sparse fields). Camera gain, read noise, and dark current are interpolated from
the bundled data/cameras.json catalog. Worker pools default to half the CPUs.
Analysis pipeline (analyze.pipeline) — configurable step sequence driven by
PipelineConfig:
- WCS determination (
astrometry,astap,twirl) - PSF or aperture photometry extraction
- Intra- and inter-filter source correlation
- Optional extinction coefficient fit
- Differential calibration (median ZP or linear T/ZP; epoch-native tables)
- Post-processing (region selection, cluster/Gaia matching, magnitude conversion)
- Optional light-curve plots and HiPS reference subtraction
Calibration — catalog cross-match (APASS, VizieR, custom tables), extinction
correction, PhotometryCalibrator / CalibrationEngine, and named presets
(linear_fit_per_image, linear_fit_per_night, …).
Libraries usable outside the pipeline — main_extract, PhotometryCalibrator,
ExtinctionCorrector, correlation helpers, plotting, image subtraction, and
calibration-source fetch/crossmatch APIs.
Entry point for scripted runs:
from ost_photometry.analyze import Observation, PipelineConfig
observation = Observation.from_config(...)
config = PipelineConfig.from_preset("linear_fit_per_night")
observation.run_pipeline(filter_list, image_paths=..., output_dir=..., config=config)
Requirements
Core Python dependencies:
For the default WCS method (astap), the
ASTAP binary must be on PATH.
The alternative astrometry method needs a local
astrometry.net installation.
Documentation
| Topic | Document |
|---|---|
| Pipeline options and decision tables | docs/PIPELINE_CONFIG.md |
| Diagnostic plot layout | docs/DIAGNOSTICS.md |
| Site extinction table and observation campaigns | docs/EXTINCTION_COEFFICIENTS.md |
| Breaking changes and architecture (archive) | docs/ARCHITECTURE_AND_MIGRATION.md |
| Script compatibility matrix | docs/COMPATIBILITY_REPORT.md |
| Changelog | CHANGELOG.md |
How main is tagged / GitHub Releases |
docs/RELEASING.md |
| Known follow-ups | docs/TODO.md |
Config defaults and all pipeline fields:
src/ost_photometry/analyze/pipeline/config.py.
Development
Install the package with lint/test tools, then enable the git hook so
Ruff runs (and auto-fixes) before each commit —
the same check as CI (ruff check src tests):
python -m pip install -e ".[dev]"
pre-commit install
Run the linter on demand with ruff check src tests (add --fix to apply
safe fixes). Tests: pytest tests -m "not slow". CI runs that suite on
Python 3.11, 3.12, and 3.13.
Releases are annotated tags vX.Y.Z on main; see
docs/RELEASING.md and CHANGELOG.md.
Metadata
Release files for ost-photometry 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ost_photometry-0.5.0.tar.gz | 584.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ost_photometry-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / ost_photometry-0.5.0.tar.gz
| Download URL | ost_photometry-0.5.0.tar.gz |
|---|---|
| Size | 584.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5b49889bae687ca7a4ce8aa13d0cb8b45527869f4b0ff52f8f9c8f4b6cf3aadd
|
|
BLAKE2b-256 checksum How to use checksums |
b0cc0536673229e258eb8ee57da37ec7fc34e541bd0fa49c588fc2144086e18e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / ost_photometry-0.5.0-py3-none-any.whl
| Download URL | ost_photometry-0.5.0-py3-none-any.whl |
|---|---|
| Size | 505.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8639954d2a56850179556d8aa09a0249aef53aaa9f8f2de3c5a8e751e7de438e
|
|
BLAKE2b-256 checksum How to use checksums |
2dc6f934db0fca35e880655fc3a6a25f1439aaa077256cb32ae44a11db8adb2c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|