Remote imaging, processing pipeline, and observing plans. Merged from itelescope + astro-pipeline.
Find a file
laurence 3f785136ed Bring the state files up to date so a cold session can resume
Rule 2 of the workflow is that state lives in the repo rather than the
chat, and a long session had put most of the current position only in
the chat. This writes it down.

TODO.md gains a RESUME HERE block at the top, because the useful
question for the next session is not what has been done but what to do
next and what is blocking it. It names the three live strands, the three
decisions waiting on the user, and the one thing that will break the
batch run if it is forgotten: NGC 6744 mixes bin1 luminance at 4096x4096
with bin2 colour at 2048x2048, so registration has to resample onto a
common grid. Nothing else in the archive does that, which is exactly why
it will be forgotten. It also drops three duplicate "Done (recent)"
headings that had accumulated, and tabulates what the five archived
sessions actually contain.

NOTES.md gains the gotchas, all of which produced plausible wrong
answers rather than errors: every frame is delivered twice as calibrated
and raw, so extracting both silently doubles the stack; an interrupted
segmented download leaves DIRECTORIES named like files, which defeats
anything that trusts an extension; a re-mirror duplicates rather than
replaces; two T20 archives are genuinely corrupt; extraction triples the
disk footprint and filled the drive. Alongside them the analysis lessons
from NGC 5128, kept for the same reason - each is a way to be confidently
wrong.

DECISIONS.md records why the pipeline reads headers rather than
filenames, and why imaging is being made push-button while the science
stays hand-driven.

ARCHITECTURE.md described a documentation-only repository with no code,
which stopped being true when the pipeline merged in. It now covers all
three parts, the code-and-data separation the pipeline is built around,
and the on-disk session layout.

Both of this session's own errors are recorded in TODO.md as things not
to repeat: measuring a foreground star instead of the galaxy nucleus and
booking telescope time to fix it, and telling the user NGC 6744 had not
been processed when it had.
2026-07-21 17:32:00 +01:00
docs Bootstrap: Default Workflow scaffold 2026-07-17 14:20:36 +01:00
itelescope Make the merged repository coherent: README, state, and internal links 2026-07-21 17:16:20 +01:00
observing/eclipse-2026-menorca Add the field plan for the 12 August 2026 total eclipse from Menorca 2026-07-21 17:10:01 +01:00
pipeline Add session discovery and ingest, driven by headers not filenames 2026-07-21 17:28:26 +01:00
state Bring the state files up to date so a cold session can resume 2026-07-21 17:32:00 +01:00
.gitignore Merge the astro-pipeline repository, history intact 2026-07-21 17:14:28 +01:00
CLAUDE.md Bootstrap: Default Workflow scaffold 2026-07-17 14:20:36 +01:00
README.md Make the merged repository coherent: README, state, and internal links 2026-07-21 17:16:20 +01:00

astrophotography

Everything to do with taking, processing and understanding astronomical images: the remote telescopes, the code that turns their frames into pictures and measurements, and the plans for observing in person.

Formed by merging the itelescope and astro-pipeline repositories, with the history of both preserved.

Layout

Directory What it is
itelescope/ The iTelescope.net remote telescope network: a review of every scope, a southern-target guide, the observing plans, and the points drain campaign
pipeline/ The processing and analysis code. Calibration, stacking, plate solving, rendering and the science analyses
observing/ Plans for observing in person. Currently the total solar eclipse of 12 August 2026 from Menorca
state/ Project state under the Default Workflow: objective, current work, decisions, working notes
docs/ The Default Workflow itself: branching, commits, documentation policy, cost control

Start here

Where the image data lives

Not in this repository. A single calibrated frame is 61 MB and a session runs to several gigabytes, so sessions stay on disk and the code finds them through the ASTRO_SESSION environment variable:

set ASTRO_SESSION=...\NGC5128\20260721
python pipeline/stack.py

Each session directory carries its own METHODS.md describing what was done to that data and what was found, written for a reader who was not there. The code lives here; the pixels and the account of them live with the data.

Things learned the hard way

Recorded because each cost real time or real money, and because each is a requirement for anything built next rather than a curiosity:

  • Measure whether a core is saturated before buying time to fix it. A foreground star 69 arcsec from Centaurus A's nucleus was mistaken for the galaxy, and a telescope booking was made to solve a problem that did not exist. Filter the stars out of the measurement first.
  • Vet moving-object candidates in detector coordinates. Registration holds the sky still, so it drags sensor defects across the frame on perfectly straight, constant-rate tracks. Hot pixels are better-behaved asteroids than real asteroids. One cut took 141 confident spurious detections to zero.
  • Never compare an aperture magnitude against a point-source catalogue without checking the source is a point. A resolved object looks exactly like a 2.8 magnitude outburst.
  • Never fit a sky background to a field the target fills. A plane fitted around a large galaxy eats its halo, measured at -17.9 ADU/px. Fit the background and a source model together.
  • A photographic ND filter is not a solar filter. It passes the infrared that carries the heat.