Skip to content

Documentation coverage

Every user-visible feature of Helia should have three things:

  1. 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;
  2. a complete reference: every command line flag, API field and app control, with ranges and defaults;
  3. 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)