Satellite Tracks

PSF Guard uses Seiza to solve an exposure, projects cached orbital elements through the exact observing interval and site, and tests the nearby FITS pixels for a matching trail. The overlay separates orbital predictions from pixel evidence, and the sequence grader recommends rejection only when both sources confirm a trail.

California Nebula exposure with dashed orbital candidates and solid green pixel-aligned satellite trails
Dashed lines represent orbital predictions. Solid green lines indicate trails that are independently aligned to features in the FITS pixels.
California Nebula frame marked for a pixel-aligned satellite trail in Sequence Analysis
The matched trail reduces the quality score to 0.35, and the frame is flagged for manual review.

You can identify satellite tracks in an image

  1. Open an image in the detail grader and navigate to the Satellite tracks section.
  2. Click Identify satellite tracks, or press the T key. PSF Guard solves the image if no valid WCS solution is cached.
  3. Toggle the Track identifiers option to compare the paths. Red, yellow, and cyan dashed lines represent high, possible, and low-risk orbital predictions respectively, while a solid green line shows the fitted pixel path.
  4. Click a named result to open the external satellite information page containing orbital and launch details.
The system maintains a distinction between predictions and pixel measurements. A dashed line indicates that a cataloged object is predicted to have crossed the solved footprint. A solid green line indicates that a linear pixel feature passed the contrast and continuity checks. The cataloged identity is a candidate association rather than definitive proof that the specific object caused the trail.

The system requires timing and observing site metadata

Topocentric orbital propagation requires the observer's latitude, longitude, elevation, and the UTC shutter interval. PSF Guard accepts explicit DATE-BEG and DATE-END header bounds, or derives the interval from the exposure duration and DATE-AVG. If no midpoint is available, the system uses DATE-OBS combined with EXPTIME or EXPOSURE.

Supported site metadata aliases include SITELAT/SITELONG, LAT-OBS/LONG-OBS, and OBSGEO-B/OBSGEO-L. If time, site, WCS, or orbital elements are missing, the analysis abstains rather than reporting the frame as clean.

The tracking system is validated with real exposure data

These screenshots use a real 60-second G-filter California Nebula exposure from October 2025. Seiza 0.10 matched 101 stars at 1.90 arcsec RMS. A historical TLE snapshot from the IAU SatChecker archive predicted four high-risk crossings:

A fainter exposure from the preceding night independently matched STARLINK-5450 [54778] at 5.8 sigma and 99.7% continuity, approximately 43 pixels from the orbital path. Both dry-run regrade checks flag the affected frames for rejection due to verified pixel-aligned trails, and named candidates link to external satellite details for follow-up.

Pixel alignment uses a downsampled matched-filter search

The Seiza matcher downsamples the frame to a maximum of 2,048 pixels on its longer axis, estimates the local noise level, and performs a coarse-to-fine matched-filter search along a narrow corridor surrounding the predicted orbital path. A valid match requires at least 2.0 sigma robust line contrast, 65% path continuity, and 50% usable sample coverage. Tracks that lack sufficient data for evaluation are reported as unevaluated rather than as confirmed non-detections.

The system records the fitted polyline segments, offsets, angle deltas, physical ADU contrast, significance, continuity, coverage, and search radius while preserving the original orbital path. The downsampled image is shared among all candidates, which means processing scales with the number of predicted crossings rather than searching the entire image for arbitrary lines.

The system calculates risk and updates frame grades

The risk value is a geometric and illumination heuristic ranging from 0 to 1 based on the sunlight fraction, range, elevation, and clipped path length. It does not represent an apparent magnitude. Possible and high-risk orbital predictions cap the quality score at 0.75 to flag the frame for review, but prediction alone does not trigger a rejection. A high-risk candidate must also have a confirmed pixel-aligned trail before the score is capped at 0.35 and a rejection with the reason [Auto] Pixel-aligned bright satellite trail is proposed. All proposed rejections require manual review and explicit confirmation.

You can configure offline and reproducible satellite tracking

The on-demand action in the UI and the Scan Quality action on the server can resolve and download current or historical orbital data. Timestamped snapshots are cached on disk up to a default limit of 5 GiB. Opening the Sequence Analysis tab or running the screen-fits --regrade-db command are cache-only operations that select the closest stored snapshot for each exposure. For fixed historical or reproducible analysis, you can configure a local OMM JSON or TLE file in the settings:

"astrometry": {
  "data_dir": "/var/lib/psf-guard/seiza",
  "satellite_elements": "historical.tle"
}

Per-image results retain the FITS fingerprint, the exact WCS, the timing and site headers, the orbital source with its payload SHA-256 hash, the alignment algorithm version, and the Seiza dependency versions. Replacing the source image, WCS solution, or alignment software invalidates the cached result.

More projects from theatr.us