Documentation coverage¶
Every user-visible feature of Helia should have three things:
- a tutorial: step by step, on a real capture, with screenshots, the exact settings, what to expect and what to do when it goes wrong;
- a complete reference: every command line flag, API field and app control, with ranges and defaults;
- a changelog entry that says how: the method, the references it follows and the measured effect, with a link to the tutorial.
This page records, feature by feature, where Helia stands against that rule. It is
kept honest on purpose: a feature is Done only when all three columns are, and
a gap is named so that it can be closed. The status is judged by a person, but two
things are checked by cargo xtask docs --check (and cargo xtask coverage): every
subcommand and long flag in the command line reference is mentioned in the guide
(User guide, Step by step or How-to recipes), and every page linked from the table
below exists.
The command line and API references are generated from the code, so they are complete by construction; the Reference column is only Partial where an app control (a slider range, a chip) is described in prose and not in a table.
How to read the cells: a link is the page that does the job. Partial says what is missing. Owner is the person or agent working on the gap: H-A is this documentation pass, H-B is the pass that is writing the tutorials listed against it, and an issue number means the feature itself is still being changed there.
| Feature | Tutorial | Reference | Changelog-how | Status | Owner |
|---|---|---|---|---|---|
Open a capture, read its header, Bayer detection and overrides (helia info, Open step, POST /captures/inspect) |
Done: Open a capture, Fixing a Bayer grid | Done: CLI, API, desktop app | Done: 0.2.0 gives the detection test, the 5% threshold and how red is told from blue; #124 has its entry | Done | |
| SER and AVI readers, SharpCap sidecars, byte-order check | Partial: Capturing for Helia and Troubleshooting explain it, with no worked example | Done: Output formats, CLI | Partial: the SER byte-order check is explained; the AVI reader entry is one line | Partial | H-A |
FITS frames as a capture: a folder or pattern of subs, a cube, image extensions (helia stack, helia info) |
Done: Stack FITS frames: Seestar subs and cubes, Capturing for Helia | Done: CLI, Output formats | Done | Done | |
| MP4, MOV, MKV and other compressed video through ffmpeg | Partial: MP4 from a phone has no screenshot and no real run | Done: CLI, Configuration | Partial: method given, no measured effect | Partial | H-A |
| Demosaicing (bilinear, Malvar-He-Cutler) and colour plane choice | Done: Fixing a Bayer grid, Colourising | Done: CLI | Done: 0.1.0 names the method and the reference (Malvar, He and Cutler) and what the test requires; no figure for the effect exists | Done | |
| Clipped colour plane: Helia stacks the next plane (#125) | Partial: The red channel is clipped and the FAQ explain it with the measured numbers; the app does it too, with a real-capture screenshot in the time-lapse tutorial | Partial: --channel help does not mention the fallback |
Done: Unreleased entry for #119 with the method and the contrast measured | Partial | H-A |
| Frame ranking, sharpness metrics, keep share and quality weights | Done: Analyse, How stacking works | Done: CLI, API | Done: 0.1.0 gives both metrics, the blur, the noise floor and the weights | Done | |
| Global alignment: phase correlation, limb fit and its confidence | Done: Align, How stacking works | Done: CLI, API | Done: phase correlation (0.1.0) and the limb fit (0.2.0) both give the method and the measured errors | Done | |
| Alignment points (multi-point alignment, per-point frame selection) | Done: Align | Done: CLI, API | Done: 0.1.0 gives the method; the measured effect is in the 0.5.0 granulation entry | Done | |
Automatic alignment points (--ap-auto) |
Partial: the Auto chip is in Align; the numbers are in How stacking works | Done: CLI, API | Done | Partial | H-A |
Two-pass alignment point refinement, shift smoothing, residual (--ap-passes, --ap-smooth, --ap-residual) |
Partial: a section of How stacking works, no step-by-step | Done: CLI, API | Done | Partial | H-A |
Keeping alignment off burned-in text and empty sky (--exclude, --prominence-band) |
Partial: Troubleshooting and How stacking works, no worked example | Done: CLI, API | Done: 0.1.0 gives the method and #118 the measured fix | Partial | H-A |
| Stacking: weighted mean, sigma clip | Done: Stack | Done: CLI, API | Done: 0.1.0 gives the weights, the two passes and the memory bound | Done | |
Robust stacking (--robust huber, winsor) |
Done: Robust stacking against satellites, hot pixels and clouds, How stacking works | Done: CLI, API | Done | Done | |
Crop to the disc (--autocrop) |
Done: Crop the stack to the disc, the chip in Stack | Done: CLI, API | Done | Done | |
| Dark, flat and bad-pixel calibration | Done: Calibrate: darks, flats and bad pixels, Calibrate, Calibration | Done: CLI, API | Done | Done | |
| Self-calibrated flats from displaced-disc frames | Partial: a section of Calibration and a troubleshooting entry in the calibrate tutorial; no real capture has worked yet | Done: CLI, API | Done | Partial | H-A |
True colour from a raw colour camera (--colour true) |
Done: True colour from a raw colour camera, Colourising | Done: CLI, API | Done | Done | |
Limb-darkening fit and flatten (--limb-law, --flatten) |
Done: Flatten the limb darkening, Sharpening | Done: CLI, API | Done | Done | |
| Sharpening: wavelets, unsharp mask, Richardson-Lucy, denoise | Done: Sharpening like RegiStax (the wavelet layers and their settings), Sharpen, Sharpening | Partial: CLI and API are generated; the slider ranges of the app are described in prose | Done: 0.2.0 gives the transform, the regularisation (Dey et al., 2006), the guard and the measured figures | Partial | H-A |
Richardson-Lucy deconvolution with a measured blur, iteration scrub and noise warning (--sharpen rl, --rl-psf, --rl-iterations, --rl-guard) |
Done: Deconvolution | Done: CLI, API | Done | Done | |
Colour grading: hue, saturation, gamma, black and white points and curves on top of a band look (--grade) |
Done: Colour grading your band | Done: CLI, API | Done | Done | |
Field rotation correction for altazimuth mounts (--field-rotation) |
Done: Tutorial: correcting field rotation, Field rotation | Done: CLI, API | Done | Done | |
Adjustments: levels, tone curve, crop, rotate, flip, resize, saved presets, helia edit |
Partial: Adjust is one page with one picture; Sharpening has the rest | Done: CLI, API | Partial: 0.2.0 lists operations, no method or effect | Partial | H-A |
Colour presets, filter recognition, invert and strength (--preset, --colour, helia presets) |
Done: Colour, Colourising | Done: Colour presets, CLI, API | Done: 0.2.0 gives the recognition rule and what a look is made of | Done | |
| Choosing the channel and band for a filter | Done: Which channel, or band, should I use for my filter? and Colourising | Done: Colour presets | Done | Done | |
Colour table export (helia lut, GET /presets/{id}/lut) |
Partial: a section of Colourising, no screenshot | Done: CLI, API | Done | Partial | H-A |
Prominence and disc compositing (--prominence) |
Done: Tutorial: bringing out prominences, Prominences | Done: CLI, API | Done | Done | |
Sunspots, groups and the Wolf number (helia sunspots) |
Done: Tutorial: counting sunspots, Sunspots | Done: CLI, API | Done | Done | |
Science outputs: frame quality, alignment point, image science and solar plots in a report (helia stack --report, helia plot, helia timelapse --report, report in the API, the Science panel) |
Done: Reading the frame quality graph, Reading the alignment point plots, Reading the image science plots, Reading the solar plots | Done: Science outputs, CLI, API | Done: the Unreleased entries give the method and the measured effect | Done | |
Time-lapse: stack, register, even out the brightness, frames and a movie (helia timelapse, POST /timelapse, Time-lapse step) |
Done: A time-lapse of two H-alpha captures, Time-lapse | Done: CLI, API, desktop app | Done | Done | #26 |
Solar differential-rotation derotation (helia solar-derotate, helia timelapse --derotate, POST /solar-derotation) |
Done: Derotating H-alpha stacks to one time, Solar derotation; the real captures are minutes apart, so the effect shown is small (no real series spans hours yet) | Done: CLI, API, desktop app | Done | Done | #26 |
Mosaics from panel stacks: matching, placement, brightness, seams, feathering, derotation (helia mosaic, POST /mosaic, Mosaic step) |
Done: Joining panels into a full-disc mosaic, Mosaics; there is no real mosaic capture, so the tutorial cuts panels from a real stack | Done: CLI, API, desktop app | Done | Done | #26 |
Granulation and seeing report (helia measure, GRAN* cards) |
Done: Measure a stack: granulation and seeing, The granulation and seeing report | Done: CLI, API | Done | Done | |
Seeing estimation from the capture (--seeing) |
Done: Measure a stack: granulation and seeing, Seeing estimation | Done: CLI, API | Done: listed under 0.6.0, the release that carries it | Done | |
| Export: TIFF, PNG, FITS with SOLARNET keywords | Done: Export | Done: Output formats | Done | Done | |
| Desktop app: Quick stack card, hints, notices, remembered settings, Recent list, log and bug report | Done: Using the desktop app, Quick start | Partial: Configuration lists the settings; control ranges are in prose | Done | Partial | H-A |
In-app feedback and helia feedback |
Done: Send feedback | Done: Feedback protocol, CLI | Done | Done | |
| About page, version block, authorship | Done: About | Done: CLI | Done | Done | |
Install on Windows and Linux: setup program, .deb, .rpm, AppImage, Open with |
Partial: Installation and First launch now have troubleshooting for every route, checked against the packaging scripts; there are no installer screenshots and no fresh install was run for this check | Done: the installer switches and exit codes are in Installation | Done | Partial | H-A |
GPU backend and timings (--backend, --timings, HELIA_GPU_TRACE, HELIA_GPU_RESIDENT_MB) |
Partial: GPU acceleration is explanation, no screenshot | Done: CLI, Configuration | Done | Partial | H-A |
| Batch processing | Done: Batch processing | Done: CLI | n/a | Done | |
| Troubleshooting: soft image, clipped red channel | Done: The stack looks soft, The red channel is clipped, FAQ | n/a | n/a | Done | |
API server and scripting (helia serve) |
Done: Drive Helia from your own code with the API, The API, the recipe | Done: API, CLI | Done | Done | |
Plugins: stack elsewhere, pipeline steps and analysis from separate programs (helia plugins, --plugin, --plugin-step, --stack-backend, plugin_steps and stack_backend in the API) |
Done: Using plugins, Writing a plugin, Plugins | Done: Plugins reference, specification, CLI, API | Done: the Unreleased entries say how, with the standards cited | Done | |
Installing ffmpeg for the user (helia tools, helia-external; signed tool list, licence shown and accepted first) |
Done: Optional tools, the command line and the window with screenshots | Done: CLI, adoption guide | Done: the Unreleased entries say how | Done | #365 |
The science outputs¶
The graphs and tables a stack can write. Each has a tutorial that reads it on a real capture
and is listed with its files on Science outputs. Every
one is a PNG with its data as CSV and JSON, drawn by helia stack --report DIR (or
helia timelapse --report DIR), redrawn by helia plot KIND DIR, served by the API as
GET /jobs/{id}/report/{file} and shown in the Science panel of the app. The kind in
brackets is the argument of helia plot.
Frame quality (tutorial):
- the quality graph sorted, with the keep threshold (
quality-sorted) - the quality graph in capture order, kept and rejected, with the trend (
quality-order) - the histogram of the quality scores (
quality-histogram) - the global shift (x, y) of each frame, the drift and the path (
shift-drift) - the differential image motion, the seeing, over the capture (
seeing-time)
Alignment points (tutorial):
- the point grid on the reference frame (
ap-grid) - the heatmap of the sharpness each point stacks (
ap-quality) - the heatmap of how much each point moves (
ap-shift) - the vector plot of the mean displacement of each point (
ap-field) - the vector plot of the residual against the finished stack, with
--ap-residual(ap-residual)
Image science (tutorial):
- the power spectrum of stack, best frame and sharpened image, with the noise floors and the
granulation and diffraction cut-offs (
power-spectrum) - the MTF-like transfer curves between them (
mtf) - the limb-darkening profile against the fitted law, with residuals (
limb-profile) - the limb edge, the fitted blur and the point spread function it implies (
limb-psf) - the histograms per channel with the clipping marked (
histogram) - the noise and the signal to noise (
noise-snr)
Solar specifics (tutorial):
- the Stonyhurst heliographic grid with P, B0, L0 and solar north and east (
grid-stonyhurst) - the Carrington heliographic grid (
grid-carrington) - the sunspot overlay and group table, with
--sunspots(sunspots.png; the method is in counting sunspots) - the registration, brightness and derotation diagnostics of a time-lapse
(
timelapse-registration,timelapse-brightness,timelapse-derotation)