Skip to main content

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. Frame quality (FWHM, roundness, star count, sky) is measured per frame; frames can be rejected by threshold or "best X %" (frame_selection), the sharpest frame is the alignment reference, and stacks can be FWHM-, star-count- or noise-weighted (stack_weighting). The archive pipeline (ost_photometry.archive, reduce.grouping) fetches an object or observation run from the OST data archive, groups calibration frames by mount session (camera orientation from plate solving) with flat probabilities, reduces per group and stacks every target (see docs/ARCHIVE_PIPELINE.md) . Colour images (RGB, LRGB, SHO, HOO, custom mixes) from the stacks: ost_photometry.imaging (see docs/COLOR_COMPOSITE.md).

Analysis pipeline (analyze.pipeline): configurable step sequence driven by PipelineConfig:

  1. WCS determination (astrometry, astap, twirl)
  2. PSF or aperture photometry extraction
  3. Intra- and inter-filter source correlation
  4. Optional extinction coefficient fit
  5. Differential calibration (median ZP or linear T/ZP; epoch-native tables)
  6. Post-processing (region selection, cluster/Gaia matching, magnitude conversion)
  7. 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
Colour images from the stacks docs/COLOR_COMPOSITE.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.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ost-photometry 0.6.0
File Size Uploaded
ost_photometry-0.6.0.tar.gz 758.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ost-photometry 0.6.0
File Interpreter ABI Platform
ost_photometry-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.4 MB

Release files / ost_photometry-0.6.0.tar.gz

Download URL ost_photometry-0.6.0.tar.gz
Size 758.3 kB
Tags Source
SHA-256 checksum
How to use checksums
215731794f05ff0471e2a0dfce4dae92117563017f742237e82ad8eaff9745ae
BLAKE2b-256 checksum
How to use checksums
a8588bdd1cb5fe1b53f90a00646d4a62bfd2fba0531dd1d9d5a301de11dda233
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.6.0-py3-none-any.whl

Download URL ost_photometry-0.6.0-py3-none-any.whl
Size 645.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
be3c377aa0639e90dcbac51aaa06e95e3cd9d941f404e2714c85f9d1f36be51e
BLAKE2b-256 checksum
How to use checksums
1a4df94987497bec6602042e6409f6e3c4e5742adaf0cc5f56c6169403d418fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.0

2 release files

0.4.4

1 release file

0.4.3

1 release file

0.4.2

2 release files

0.4.0

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page