Command line reference
Every subcommand also accepts -h and --help; helia itself also accepts -V and --version. Exit status is 0 on success and 1 on any error, with the message on standard error.
helia
Solar lucky-imaging stacker
helia <COMMAND>
Subcommands:
stack: Stack a capture into a single sharp imagecalibrate: Build master dark, flat and bad-pixel files from calibration captures, forhelia stack --dark --flat --bad-pixelsedit: Sharpen and adjust an existing TIFF, PNG or FITS imageinfo: Print what a capture file contains: every header field as written, what Helia will use instead where it differs, and whymeasure: Measure how much granulation an image holds: the band-pass contrast (standard deviation over mean) of a disc-centre crop in three bands, for comparing settings on the same capturesunspots: Find the sunspots on a stacked white-light image: groups, the relative Wolf number and areas corrected for foreshortening, as a table, JSON and an overlay pictureserve: Run the HTTP/JSON API serverpresets: List the filter presets (helia stack --preset ...)lut: Write a filter's colour table as a file other programs read (.cube, .csv,ImageJ.lut or a PNG strip), so a picture coloured elsewhere matches one coloured by Heliafeedback: Send feedback (a bug, a feature request or a question). It is sent to the Helia developers and filed in the Helia issue tracker, through the feedback service
helia stack
Stack a capture into a single sharp image
helia stack [OPTIONS] --output <OUTPUT> <INPUT>
Arguments:
<INPUT>: Capture file: .ser or .avi, or a compressed video (.mp4, .mov, .mkv, .webm, .m4v) read through the optional ffmpeg program (required)
Options:
-o, --output <OUTPUT>: Output image; the extension picks the format (.tif/.tiff, .png or .fits/.fit/.fts) (required)--keep <KEEP>: Share of frames to keep, e.g. 25%--keep-frames <N>: Number of frames to keep--ap-size <AP_SIZE>: Alignment point size in pixels. Default: chosen from the image size--ap-auto: Choose the alignment point size, spacing and search range from the image scale (the fitted limb) and the seeing (a probe of a dozen frames), instead of one size for every capture. What was chosen is printed--ap-passes <N>: Alignment point passes: 1 measures the points against the reference built from the best few frames, 2 stacks once and measures them again against that stack (less noise, more detail to lock on). Needs multipoint. Default: 1--ap-smooth <on|off>: Replace alignment point shifts that disagree with their neighbours (a mismatch on a neighbouring granule) by the neighbours' median. Needs multipoint. Default: offon: Enabledoff: Disabled
--ap-residual: Measure the alignment points once more against the finished stack and print how far the shifts that were used are from that (px RMS): a check of the registration, at the cost of one more measuring pass--autocrop: Crop the result to the solar disc plus a margin (FITS too). A capture without a clear disc is left as it is, with a note--seeing: Estimate the seeing from the capture: the Fried parameter r0 from the spectral ratio of tiles of the disc over a sample of all the frames (needs --aperture-mm), and a relative index from how much neighbouring alignment points move against each other. Printed after the stack and written into the FITS header. Reads about 120 more frames--sunspots: Find the sunspots on the stack: groups, the relative Wolf number, areas corrected for foreshortening. Printed after the stack, written into the FITS header, and saved beside the output as NAME-sunspots.csv, .json and .png. For a white-light capture with the whole disc in view; the time is the capture's--sunspot-umbra <SHARE>: Umbra threshold: pixels darker than this share of the quiet disc (after the limb darkening is flattened out) are umbra (default0.55)--sunspot-penumbra <SHARE>: Penumbra threshold: pixels darker than this share of the quiet disc are spot. Raise it to take in fainter penumbrae and pores (default0.88)--sunspot-min-area <MSH>: Smallest spot to keep, in millionths of the visible hemisphere (default2)--sunspot-max-area <MSH>: Largest spot, in millionths of the hemisphere; a dark region bigger than this (a cloud, a vignette) is left out (default6000)--sunspot-group-gap <DEG>: Spots whose edges are closer than this on the Sun, in degrees, form one group (default3)--wolf-k <K>: Observer factor k of the Wolf number R = k (10 g + s) (default1)--north-angle <DEG>: How far solar north is turned counter-clockwise from the top of the image, in degrees. Default 0: solar north up (default0)--celestial-north-up: The image has celestial north up (an equatorial mount): solar north is then turned by the position angle P of the Sun at the capture time, added to --north-angle--mirror: The image is a mirror image (west is on the left)--wavelength-nm <NM>: Wavelength in nanometres for --seeing when the filter is not known (the filter's own wavelength is used otherwise)--aperture-mm <MM>: Telescope aperture in millimetres. With it, the granulation report of a white-light or sodium stack also gives the diffraction cut-off and how much of it the data resolves, and --seeing gives r0 and a grade--autocrop-margin <PERCENT>: Margin of--autocropas a percentage of the disc radius (default10)--preset <FILTER>: The filter the capture was taken with (ha, cak, cah, mg, na, he-d3, hbeta, white): applies its recommended channel and frame share and colours a .tif or .png output. Without it the filter is read from the file name, folder or sidecar when possible; seehelia presets--colour <COLOUR>: Colour of the output: auto (the preset), mono, a preset id, or true (true colour from a raw colour camera: red, green and blue stacked on one alignment, channels aligned and white balanced, written as an RGB TIFF or PNG or a three-plane FITS). The other looks colour a .tif or .png from the mono stack; FITS output is mono for them--invert: Invert the picture before colouring (shows filaments and prominences)--white-balance <BALANCE>: White balance of--colour true: auto (make the disc centre neutral), off (the sensor's own balance) or three gains R,G,B such as 1.9,1,1.5 (defaultauto)--no-channel-align: With--colour true, do not register red and blue to green (atmospheric dispersion). On by default--colour-strength <S>: Mix of colour and grey from 0 to 1 (default1)--site <LAT,LON,ALT>: Observing site as LAT,LON,ALT (degrees north, degrees east, metres), for a FITS output's OBSGEO-X/Y/Z. Without it theHELIA_SITEenvironment variable is used, else the keywords are left out--align <ALIGN>: How whole frames are aligned: auto (fit the solar limb when the full disc is in view and the fit is confident, else phase correlation), phase (phase correlation, best for a cropped region) or limb (fit the limb; frames without a usable limb still use phase correlation) (defaultauto)--sharpen-fits: Apply the sharpening and other edits to FITS output too. By default a FITS file is the unsharpened stack, for further processing elsewhere--sharpen <METHOD>: Sharpening: wavelet (Registax-style layers, the usual choice), unsharp, rl (Richardson-Lucy deconvolution) or none. The default is none--unsharp-radius <PX>: Unsharp mask: Gaussian radius (sigma) in pixels--unsharp-amount <A>: Unsharp mask: how much detail is added back (0.6 is gentle, 2 is strong)--unsharp-threshold <T>: Unsharp mask: detail weaker than this (0 to 1) is left alone, so noise is not boosted--wavelet-gains <G1,G2,...>: Wavelets: gain of layers 1, 2, 3 ... (comma separated; 1 leaves a layer alone, above 1 sharpens it). Layers not listed keep the recommended gain--wavelet-noise <T1,T2,...>: Wavelets: noise threshold of layers 1, 2, 3 ... in noise sigmas (0 keeps all detail; 2 removes what is not clearly above the noise)--rl-iterations <N>: Richardson-Lucy: iterations (more is sharper and noisier)--rl-tv <L>: Richardson-Lucy: total-variation weight, 0 to 0.05 (keeps noise from becoming speckle)--rl-psf <PSF>: Richardson-Lucy: the blur to undo. auto (from the image scale), gaussian:SIGMA, airy:RADIUS (first dark ring, pixels) or airy-scope:NM,MM,ARCSEC_PER_PX--rl-guard <S>: Richardson-Lucy: strength of the limb and sunspot ringing guard, 0 (off) to 1--flatten <SOURCE>: Divide the disc by its limb-darkening profile before anything else, so sharpening sees flat contrast:model(the fitted law) orprofile(the measured azimuthal median). Outside the limb nothing changes--limb-law <LAW>: The limb-darkening law to fit: linear, quadratic (the default) or neckel (Neckel and Labs, five terms).helia stackprints the fit--prominence: Composite a stretched prominence layer with the disc: outside the fitted limb the scattered light is taken off and what is left is stretched to read like the disc, joined to it by a feathered edge. For H-alpha and the other lines with prominences. Runs after the sharpening--prominence-strength <S>: How hard the prominence layer is lifted: 1 refers it to the brightest prominence found--prominence-stretch <K>: The k of the asinh stretch of the layer; 0 is linear, larger lifts the faint parts more (default 6)--prominence-level <SHARE>: Brightness of the brightest prominence as a share of the disc's (default 0.75)--prominence-feather <SHARE>: Half-width of the feathered join at the limb, as a share of the disc radius (default 0.012)--prominence-reach <RADII>: How far out the layer reaches, in disc radii (default 1.4)--prominence-gate <SIGMA>: Noise sigmas taken off the layer before the stretch (default 3)--prominence-offset <SHARE>: Move the join of layer and disc, as a share of the disc radius added to the fitted limb (negative inside the limb, default 0)--prominence-disc-gamma <G>: Gamma of the disc's tone above the sky while the layer is on (default 1: the disc is left alone)--prominence-layer-gamma <G>: Gamma of the stretched layer's tone (default 1; above 1 darkens its faint parts)--denoise <STRENGTH>: Wavelet denoise; the strength is in noise sigmas for the finest layer (default: the filter's recommended value)--denoise-layers <N>: Layers the denoise treats, from the finest--black <V>: Levels: input value (0 to 1) that becomes black--white <V>: Levels: input value (0 to 1) that becomes white--gamma <G>: Levels: mid-tone gamma (above 1 brightens)--curve <IN:OUT,...>: A tone curve through IN:OUT points, for example 0.25:0.15,0.75:0.85--crop <X,Y,W,H>: Crop to X,Y,W,H in pixels (top-left origin)--rotate <DEG>: Rotate clockwise by this many degrees (multiples of 90 are exact)--flip-h: Mirror left to right--flip-v: Mirror top to bottom--resize <SIZE>: Resize: 50% or 0.5, 1200x800, 1200x (width) or x800 (height)--edits <NAME|FILE>: Start from a saved edit preset (a name from the presets folder, or a .json file); the options above are added after it--save-edits <NAME>: Save the resulting edit list as a preset under this name, for --edits--no-multipoint: Skip multi-point alignment (global alignment only)--exclude <X,Y,W,H>: Keep alignment and quality scoring off this rectangle, given as x,y,w,h in pixels (top-left origin); repeat for several. The area is flattened in every frame, so it is flat in the result too. Burned-in timestamps are found automatically; use this for anything else (a logo, a hot pixel cluster) (repeatable)--prominence-band <PX>: Place alignment points up to this many pixels outside the fitted limb, so they can follow prominences (0 keeps them on the disc) (default0)--no-disc-mask: Do not fit the limb; alignment points may sit anywhere there is contrast--no-overlay-detect: Do not look for burned-in text (a capture timestamp) to mask--backend <BACKEND>: Compute backend (defaultauto)--dark <PATH>: Master dark (FITS fromhelia calibrate, or any FITS or TIFF), or dark captures to build one from (a SER, AVI or FITS file, or a folder). Subtracted from every frame before it is demosaiced or aligned--flat <PATH>: Master flat, or flat captures to build one from. Divided out of every frame after the dark--displaced <PATH>: Captures of the Sun at many places on the sensor, to solve a flat from (seehelia calibrate --displaced); used when no--flatis given. The dark is taken off first--displaced-keep-smooth: With--displaced, keep every scale of the solution (seehelia calibrate --displaced-keep-smooth)--flat-dark <PATH>: Dark captures at the exposure of the flats, when--flatis captures--bias <PATH>: Master bias (or captures). Only used with--scale-dark--bad-pixels <FILE>: Bad-pixel map:bad-pixels.fitsfromhelia calibrate, or a text file with anx ypair (from 0, top-left) per line. Without it, hot pixels of the dark and dead pixels of the flat are found and corrected--no-cosmetic: Do not look for hot and cold pixels in the dark and the flat--scale-dark: Scale the dark by the ratio of the exposures (the Sun's exposure comes from theSharpCapsidecar). Best with--bias--calibration-combine <CALIBRATION_COMBINE>: How frames are combined into a master: median, sigma or sigma:K (defaultsigma)--sigma-clip <K>: Enable sigma clipping at this many standard deviations (off by default). Same as--robust sigma --robust-k K--robust <ROBUST>: Outlier-robust combination of the frames at each pixel:sigmadrops outliers,huberdown-weights them,winsorclamps them. Two passes over the frames. Defaultnone, the weighted meannone: Weighted mean of every sample (the default)sigma: Drop samples further than K sigma from the mean (default K 2.5)huber: Huber M-estimator: down-weight samples beyond K sigma in proportion to their distance (default K 1.345)winsor: Winsorised mean: clamp samples to K sigma from the mean (default K 2)
--robust-k <K>: Threshold of--robustin standard deviations. Default: 2.5 forsigma, 1.345 forhuber, 2 forwinsor--bayer <BAYER>: Bayer handling: auto, none, rggb, bggr, grbg or gbrg. auto trusts the header, but for a SER file labelled mono it also checks the pixels for a hidden Bayer mosaic (some recorders label raw colour data as mono) and debayers when it finds one. none treats the frames as mono whatever the header or sidecar say; a pattern forces it. For AVI the pattern otherwise comes from theSharpCapsidecar (defaultauto)--bit-depth <BITS>: Bits per sample, instead of the SER header's: 1 to 8 read one byte per pixel, 9 to 16 two bytes. For a header that gets the depth wrong. SER only--endian <ORDER>: Byte order of 16-bit samples, instead of the SER header flag (little or big). SER only--flip-rows: Read the rows bottom to top, for a file stored upside down. Patterns given to --bayer describe the picture after the flip. SER only--channel <CHANNEL>: Colour channel to stack from a Bayer capture. Default: the preset's channel, else lumr: Red plane only (usual for H-alpha)g: Green plane onlyb: Blue plane onlylum: Mean of the three planes
--debayer <DEBAYER>: Demosaicing method (defaultmhc)bilinear: Plain bilinear interpolationmhc: Malvar-He-Cutler, edge aware
--metric <METRIC>: Sharpness metric used to rank frames (defaultgradient)gradient: Gradient energylaplacian: Laplacian variance
--cache-dir <DIR>: Directory for compressed video (.mp4, .mov, .mkv, .webm, compressed .avi) decoded by ffmpeg. The decoded frames are uncompressed, so this needs room for the whole video (checked first) and is cleaned up afterwards. Default: the operating system's cache directory, or theHELIA_CACHE_DIRenvironment variable-q, --quiet: Hide the progress bar and the summary--timings: Print where the time went: wall time per stage and busy time per kind of work
helia calibrate
Build master dark, flat and bad-pixel files from calibration captures, for helia stack --dark --flat --bad-pixels
helia calibrate [OPTIONS]
Options:
--darks <PATH>: Dark captures (lens capped, same exposure and gain as the Sun) (repeatable)--flats <PATH>: Flat captures (an even field, at the focus and set-up of the Sun) (repeatable)--displaced <PATH>: Captures of the Sun at many places on the sensor (the mount off tracking, or nudged between frames), to solve the flat from instead of from--flats: it then holds the dust and fringes of the observing moment, without a diffuser. The darks (same exposure as the Sun) are taken off first. Needs at least six frames with the limb clear (repeatable)--displaced-keep-smooth: With--displaced, keep every scale of the solution, not only the structure finer than a quarter of the displacements (the smooth scales cannot be told from the Sun's own limb darkening unless it moved far)--flat-darks <PATH>: Dark captures at the exposure of the flats. Without them the flats keep their offset (or lose the bias, if--biasis given) (repeatable)--bias <PATH>: Bias captures (the shortest exposure). Only needed to scale a dark to another exposure (repeatable)--lights <CAPTURE>: A light capture: pixels that read the same wrong value in every frame while the Sun moves (stuck pixels) are added to the bad-pixel map. Useful when there are no darks-o, --output-dir <DIR>: Folder formaster-dark.fits,master-flat.fits,master-bias.fitsandbad-pixels.fits(created if needed) (defaultcalibration)--combine <COMBINE>: How frames are combined: median, sigma (clip at 3 standard deviations) or sigma:K (defaultsigma)--max-frames <N>: Use at most this many frames per master, spread over the input (default: as many as fit in 3 GiB)--no-bad-pixels: Do not look for hot, cold and stuck pixels--hot-sigma <K>: A pixel this many robust standard deviations off its neighbours in the dark is hot (default6)--preset <FILTER>: The filter the flats were taken through (ha, cak, ...): adds the advice that goes with it, such as the etalon's sweet spot and Newton rings for H-alpha--bayer <BAYER>: Bayer handling: auto, none, rggb, bggr, grbg or gbrg. auto trusts the header, but for a SER file labelled mono it also checks the pixels for a hidden Bayer mosaic (some recorders label raw colour data as mono) and debayers when it finds one. none treats the frames as mono whatever the header or sidecar say; a pattern forces it. For AVI the pattern otherwise comes from theSharpCapsidecar (defaultauto)--bit-depth <BITS>: Bits per sample, instead of the SER header's: 1 to 8 read one byte per pixel, 9 to 16 two bytes. For a header that gets the depth wrong. SER only--endian <ORDER>: Byte order of 16-bit samples, instead of the SER header flag (little or big). SER only--flip-rows: Read the rows bottom to top, for a file stored upside down. Patterns given to --bayer describe the picture after the flip. SER only-q, --quiet: Hide the progress messages
helia edit
Sharpen and adjust an existing TIFF, PNG or FITS image
helia edit [OPTIONS] --output <OUTPUT> <INPUT>
Arguments:
<INPUT>: Image to edit: .tif, .tiff, .png or .fits (mono or RGB) (required)
Options:
-o, --output <OUTPUT>: Output image; the extension picks the format. A colour image stays colour (TIFF or PNG) (required)--preset <FILTER>: The filter the image was taken with, for the recommended sharpening values (ha, cak, ...). Without it the filter is read from the file name or folder when possible--sharpen <METHOD>: Sharpening: wavelet (Registax-style layers, the usual choice), unsharp, rl (Richardson-Lucy deconvolution) or none. The default is none--unsharp-radius <PX>: Unsharp mask: Gaussian radius (sigma) in pixels--unsharp-amount <A>: Unsharp mask: how much detail is added back (0.6 is gentle, 2 is strong)--unsharp-threshold <T>: Unsharp mask: detail weaker than this (0 to 1) is left alone, so noise is not boosted--wavelet-gains <G1,G2,...>: Wavelets: gain of layers 1, 2, 3 ... (comma separated; 1 leaves a layer alone, above 1 sharpens it). Layers not listed keep the recommended gain--wavelet-noise <T1,T2,...>: Wavelets: noise threshold of layers 1, 2, 3 ... in noise sigmas (0 keeps all detail; 2 removes what is not clearly above the noise)--rl-iterations <N>: Richardson-Lucy: iterations (more is sharper and noisier)--rl-tv <L>: Richardson-Lucy: total-variation weight, 0 to 0.05 (keeps noise from becoming speckle)--rl-psf <PSF>: Richardson-Lucy: the blur to undo. auto (from the image scale), gaussian:SIGMA, airy:RADIUS (first dark ring, pixels) or airy-scope:NM,MM,ARCSEC_PER_PX--rl-guard <S>: Richardson-Lucy: strength of the limb and sunspot ringing guard, 0 (off) to 1--flatten <SOURCE>: Divide the disc by its limb-darkening profile before anything else, so sharpening sees flat contrast:model(the fitted law) orprofile(the measured azimuthal median). Outside the limb nothing changes--limb-law <LAW>: The limb-darkening law to fit: linear, quadratic (the default) or neckel (Neckel and Labs, five terms).helia stackprints the fit--prominence: Composite a stretched prominence layer with the disc: outside the fitted limb the scattered light is taken off and what is left is stretched to read like the disc, joined to it by a feathered edge. For H-alpha and the other lines with prominences. Runs after the sharpening--prominence-strength <S>: How hard the prominence layer is lifted: 1 refers it to the brightest prominence found--prominence-stretch <K>: The k of the asinh stretch of the layer; 0 is linear, larger lifts the faint parts more (default 6)--prominence-level <SHARE>: Brightness of the brightest prominence as a share of the disc's (default 0.75)--prominence-feather <SHARE>: Half-width of the feathered join at the limb, as a share of the disc radius (default 0.012)--prominence-reach <RADII>: How far out the layer reaches, in disc radii (default 1.4)--prominence-gate <SIGMA>: Noise sigmas taken off the layer before the stretch (default 3)--prominence-offset <SHARE>: Move the join of layer and disc, as a share of the disc radius added to the fitted limb (negative inside the limb, default 0)--prominence-disc-gamma <G>: Gamma of the disc's tone above the sky while the layer is on (default 1: the disc is left alone)--prominence-layer-gamma <G>: Gamma of the stretched layer's tone (default 1; above 1 darkens its faint parts)--denoise <STRENGTH>: Wavelet denoise; the strength is in noise sigmas for the finest layer (default: the filter's recommended value)--denoise-layers <N>: Layers the denoise treats, from the finest--black <V>: Levels: input value (0 to 1) that becomes black--white <V>: Levels: input value (0 to 1) that becomes white--gamma <G>: Levels: mid-tone gamma (above 1 brightens)--curve <IN:OUT,...>: A tone curve through IN:OUT points, for example 0.25:0.15,0.75:0.85--crop <X,Y,W,H>: Crop to X,Y,W,H in pixels (top-left origin)--rotate <DEG>: Rotate clockwise by this many degrees (multiples of 90 are exact)--flip-h: Mirror left to right--flip-v: Mirror top to bottom--resize <SIZE>: Resize: 50% or 0.5, 1200x800, 1200x (width) or x800 (height)--edits <NAME|FILE>: Start from a saved edit preset (a name from the presets folder, or a .json file); the options above are added after it--save-edits <NAME>: Save the resulting edit list as a preset under this name, for --edits--backend <BACKEND>: Compute backend (defaultauto)-q, --quiet: Hide the summary
helia info
Print what a capture file contains: every header field as written, what Helia will use instead where it differs, and why
helia info [OPTIONS] <INPUT>
Arguments:
<INPUT>: Capture file: .ser or .avi, or a video (.mp4, .mov, .mkv, .webm, .m4v) read through the optional ffmpeg program (required)
Options:
--bayer <BAYER>: Bayer handling: auto, none, rggb, bggr, grbg or gbrg. auto trusts the header, but for a SER file labelled mono it also checks the pixels for a hidden Bayer mosaic (some recorders label raw colour data as mono) and debayers when it finds one. none treats the frames as mono whatever the header or sidecar say; a pattern forces it. For AVI the pattern otherwise comes from theSharpCapsidecar (defaultauto)--bit-depth <BITS>: Bits per sample, instead of the SER header's: 1 to 8 read one byte per pixel, 9 to 16 two bytes. For a header that gets the depth wrong. SER only--endian <ORDER>: Byte order of 16-bit samples, instead of the SER header flag (little or big). SER only--flip-rows: Read the rows bottom to top, for a file stored upside down. Patterns given to --bayer describe the picture after the flip. SER only
helia measure
Measure how much granulation an image holds: the band-pass contrast (standard deviation over mean) of a disc-centre crop in three bands, for comparing settings on the same capture
helia measure [OPTIONS] <INPUT>
Arguments:
<INPUT>: Image: .tif, .tiff, .png or .fits (mono or RGB; RGB is averaged to grey) (required)
Options:
--crop <PX>: Side of the disc-centre crop in pixels (default240)--limb: Instead of the granulation bands, fit the limb-darkening laws (linear, quadratic, Neckel and Labs) to the disc and print the coefficients and the measured profile--scale <ARCSEC>: Image scale in arcseconds per pixel, to give sizes in arcseconds--aperture <MM>: Telescope aperture in millimetres; with --wavelength and --scale it gives the diffraction cut-off of the power spectrum--wavelength <NM>: Wavelength in nanometres (for --aperture)
helia sunspots
Find the sunspots on a stacked white-light image: groups, the relative Wolf number and areas corrected for foreshortening, as a table, JSON and an overlay picture
helia sunspots [OPTIONS] <INPUT>
Arguments:
<INPUT>: Stacked image: .tif, .tiff, .png or .fits (mono or RGB; RGB is averaged to grey), white light, with the whole disc in view (required)
Options:
--date <TIME>: When the image was taken, UTC, such as 2026-10-20T11:30:00. Gives P, B0 and L0 for the Carrington longitude. Without it, a FITS file's DATE-AVG or DATE-OBS is used, else B0 is taken as 0--capture <FILE>: The capture (a .ser) the image was stacked from: its frame timestamps give the time--csv <FILE>: Write the spot table as CSV--json <FILE>: Write the whole report as JSON--overlay <FILE>: Write the overlay picture (spots outlined on the flattened disc) as PNG--sunspot-umbra <SHARE>: Umbra threshold: pixels darker than this share of the quiet disc (after the limb darkening is flattened out) are umbra (default0.55)--sunspot-penumbra <SHARE>: Penumbra threshold: pixels darker than this share of the quiet disc are spot. Raise it to take in fainter penumbrae and pores (default0.88)--sunspot-min-area <MSH>: Smallest spot to keep, in millionths of the visible hemisphere (default2)--sunspot-max-area <MSH>: Largest spot, in millionths of the hemisphere; a dark region bigger than this (a cloud, a vignette) is left out (default6000)--sunspot-group-gap <DEG>: Spots whose edges are closer than this on the Sun, in degrees, form one group (default3)--wolf-k <K>: Observer factor k of the Wolf number R = k (10 g + s) (default1)--north-angle <DEG>: How far solar north is turned counter-clockwise from the top of the image, in degrees. Default 0: solar north up (default0)--celestial-north-up: The image has celestial north up (an equatorial mount): solar north is then turned by the position angle P of the Sun at the capture time, added to --north-angle--mirror: The image is a mirror image (west is on the left)
helia serve
Run the HTTP/JSON API server
helia serve [OPTIONS]
Options:
--bind <BIND>: Address to listen on; a non-loopback address needs a token (default127.0.0.1:7870)--data-root <DIR>: Directory all request paths must stay inside (default: the current directory)--token <TOKEN>: Bearer token. Visible in the process list; prefer --token-file or theHELIA_TOKENenvironment variable--token-file <FILE>: File holding the bearer token--workers <WORKERS>: Jobs that run at once (default1)--max-queue <MAX_QUEUE>: Queued plus running jobs allowed before answering 429 (default16)--cors-origin <ORIGIN>: Allow browser access from this origin (repeatable). Off by default--cache-dir <DIR>: Directory for compressed video decoded by ffmpeg (default: the operating system's cache directory, orHELIA_CACHE_DIR)--allow-host <HOST>: Accept this Host header on a loopback bind (repeatable), e.g. behind a proxy
helia presets
List the filter presets (helia stack --preset ...)
helia presets
helia lut
Write a filter's colour table as a file other programs read (.cube, .csv, ImageJ .lut or a PNG strip), so a picture coloured elsewhere matches one coloured by Helia
helia lut [OPTIONS] --output <OUTPUT> <PRESET>
Arguments:
<PRESET>: The filter whose colour look to write (ha, cak, cah, mg, na, he-d3, hbeta, white); seehelia presets(required)
Options:
-o, --output <OUTPUT>: Output file. The extension picks the format: .cube, .csv, .lut (ImageJ) or .png, unless --format says (required)--format <FORMAT>: File format: cube, csv, imagej or png--size <N>: Entries in the table, 2 to 4096 (anImageJtable always has 256) (default256)--invert: Invert the picture before colouring (the table runs from white to black)--strength <S>: Mix of colour and grey from 0 to 1 (default1)
helia feedback
Send feedback (a bug, a feature request or a question). It is sent to the Helia developers and filed in the Helia issue tracker, through the feedback service
helia feedback [OPTIONS] --title <TITLE>
Options:
--kind <KIND>: What kind of feedback this is (defaultbug)bug: Something is broken or wrongfeature: A request for something newquestion: A question about using Heliaother: Anything else
--title <TITLE>: One line that says what it is (at most 120 characters) (required)--description <DESCRIPTION>: The details (at most 8000 characters).-reads standard input (default ``)--screenshot <FILE.png>: A PNG screenshot to attach (at most 5 MiB; larger ones are shrunk). Check it shows nothing private: it is filed in the issue tracker--highlight <X,Y,W,H>: A rectangle to highlight on the screenshot, asx,y,w,hin its pixels (repeatable)--system-info: Include system details: Helia version, commit and target, and your operating system. Never a host name, user name or path--url <URL>: Feedback service address (default:HELIA_FEEDBACK_URL, else the built-in public Helia feedback service)--dry-run: Show the report that would be sent, and send nothing--save <FILE.zip>: If the service cannot be reached, also save the report to this.zip