Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

API reference

Solar lucky-imaging stacker. All paths are relative to the server's data root. Version 0.5.0 of the document; licence GPL-3.0-or-later.

The narrative guide, with examples and the security model, is in The API. The machine-readable document is openapi.json, and a running server serves it at /api/v1/openapi.json.

All paths below are relative to /api/v1.

Operations

GET /captures/frame

One frame of a capture as an auto-stretched 8-bit greyscale PNG.

ParameterInTypeRequiredDescription
pathquerystringyesCapture path relative to the data root.
indexqueryintegernoFrame index (default 0).
channelqueryChannelArgnor, g, b or lum (default) for Bayer captures.
max_widthqueryintegernoDownscale to at most this width (16 to 8192).
bayerquerystringnoBayer handling, as for jobs: auto (default), none or a pattern.
bit_depthqueryinteger (int32)noBits per sample instead of the SER header's.
endianquerystringnolittle or big.
flip_rowsquerybooleannoRead the rows bottom to top.
StatusMeaningBody
2008-bit greyscale PNGimage/png

POST /captures/inspect

Header information for a .ser, .avi or video capture, without reading frames.

Request body:

StatusMeaningBody
200OKapplication/json: CaptureInfo

GET /docs

A small HTML page that lists the operations of the OpenAPI document; needs no token.

Needs no token.

StatusMeaningBody
200OKtext/html

GET /health

Liveness probe. Always answers {"status":"ok"}; needs no token.

Needs no token.

StatusMeaningBody
200OKapplication/json: Health

GET /jobs

Remembered jobs, oldest first. The newest 100 finished jobs are kept.

StatusMeaningBody
200OKapplication/json: array of JobView

POST /jobs

Queue a stack. Answers 202 with the job; poll it or follow its events.

Request body:

StatusMeaningBody
202Acceptedapplication/json: JobView
429queue full (queue_full)application/json: ErrorEnvelope

GET /jobs/{id}

One job: state, stage, progress, timings and summary.

ParameterInTypeRequiredDescription
idpathinteger (int64)yesjob id
StatusMeaningBody
200OKapplication/json: JobView
404unknown job idapplication/json: ErrorEnvelope

DELETE /jobs/{id}

Cancel a queued or running job, or forget a finished one.

A finished job's output file stays on disk.

ParameterInTypeRequiredDescription
idpathinteger (int64)yesjob id
StatusMeaningBody
202cancellation requestedapplication/json: JobView
204finished job forgotten
404unknown job idapplication/json: ErrorEnvelope

GET /jobs/{id}/events

WebSocket stream of job events: a snapshot, then state and progress messages.

The server closes the stream after the final state message.

ParameterInTypeRequiredDescription
idpathinteger (int64)yesjob id
StatusMeaningBody
101WebSocket; text frames are JobEvent JSON

GET /jobs/{id}/preview.png

An 8-bit PNG of the result (square-root stretch). Only once the job has succeeded.

ParameterInTypeRequiredDescription
idpathinteger (int64)yesjob id
max_widthqueryintegernoDownscale to at most this width (16 to 8192; stored previews are at most 2048 wide).
StatusMeaningBody
200PNG previewimage/png
409the job has not succeeded (not_ready)application/json: ErrorEnvelope

GET /jobs/{id}/result

The written TIFF or FITS file, streamed. Only once the job has succeeded.

ParameterInTypeRequiredDescription
idpathinteger (int64)yesjob id
StatusMeaningBody
200the stacked TIFF, PNG or FITS file
409the job has not succeeded (not_ready)application/json: ErrorEnvelope

GET /jobs/{id}/sunspots.csv

The sunspot table of a finished job that asked for sunspots, as CSV.

ParameterInTypeRequiredDescription
idpathinteger (int64)yesjob id
StatusMeaningBody
200one row per spottext/csv
404the job did not ask for sunspots (sunspots_missing)application/json: ErrorEnvelope
409the job has not succeeded (not_ready)application/json: ErrorEnvelope

GET /jobs/{id}/sunspots.png

The sunspot overlay of a finished job that asked for sunspots: the flattened disc with penumbra, umbra and group numbers drawn on it.

ParameterInTypeRequiredDescription
idpathinteger (int64)yesjob id
StatusMeaningBody
200overlay PNGimage/png
404the job did not ask for sunspots (sunspots_missing)application/json: ErrorEnvelope
409the job has not succeeded (not_ready)application/json: ErrorEnvelope

GET /openapi.json

This API as an OpenAPI document.

StatusMeaningBody
200OpenAPI 3 document

GET /presets

GET /presets: the filter presets, their recommended settings and colours.

StatusMeaningBody
200OKapplication/json: PresetList

GET /presets/{id}/lut

A preset's colour table as a file other programs read.

ParameterInTypeRequiredDescription
idpathstringyespreset id, see GET /presets
formatquerystringnocube (default), csv, imagej or png.
sizequeryintegernoEntries, 2 to 4096 (default 256; an imagej table always has 256).
invertquerybooleannoInvert before colouring.
strengthquerynumber (float)noMix of colour and grey, 0 to 1 (default 1).
StatusMeaningBody
200the table: a .cube, .csv, ImageJ .lut or a PNG strip
404no such presetapplication/json: ErrorEnvelope
422a bad format, size or strengthapplication/json: ErrorEnvelope

GET /version

Server version, backend availability, limits and whether a token is required.

The GPU is probed once, on first use.

StatusMeaningBody
200OKapplication/json: VersionInfo

Schemas

AlignmentSummary

Global alignment: the method that ran, why, and its confidence.

FieldTypeRequiredDescription
confidencenumber (float), may be nullnoMean confidence of the frames, 0 to 1. Absent when it was not measured.
confidence_minnumber (float), may be nullnoLeast confidence of any frame, 0 to 1.
fallbacksintegeryesFrames that wanted the limb fit but were aligned by phase correlation.
limbarray of number (float), may be nullnoFitted limb of the reference: centre x, centre y and radius, pixels.
methodstringyesWhat ran: limb or phase.
reasonstringyesWhy, in a sentence (for auto, whether the full disc was in view).
requestedstringyesWhat config.align asked for: auto, phase or limb.
sampledbooleanyesThe confidence comes from a sample of the frames (a GPU run).

AutoApSummary

What automatic alignment points chose and what they were based on.

FieldTypeRequiredDescription
arcsec_per_pixelnumber (float), may be nullnoImage scale from the fitted limb, arcseconds per pixel. Absent when there was no limb.
search_radiusintegeryesSearch radius around the global shift, pixels.
sizeintegeryesWindow edge, pixels.
stepintegeryesDistance between window centres, pixels.
textstringyesThe choice in a sentence.
warp_pxnumber (float), may be nullnoLocal warp of the seeing, pixels (root mean square distance of an alignment point's shift from its frame's median). Absent when too few points locked.

BackendArg

Compute backend request.

One of auto, cpu, gpu.

Backends

Backend availability.

FieldTypeRequiredDescription
cpuCpuInfoyesCPU reference path.
gpuGpuInfoyeswgpu path.

BuildDetails

How the server binary was built.

FieldTypeRequiredDescription
builtstringyesBuild time, UTC.
commitstringyesShort git commit hash (unknown outside a git checkout).
dirtybooleanyesBuilt from a tree with uncommitted changes.
profilestringyesCargo profile.
ruststringyesCompiler version.
targetstringyesTarget triple.
wgpustringyeswgpu version.

CalibrationConfig

Calibration masters for a job. Each path is relative to the data root and names a master file (FITS, from helia calibrate) or raw calibration frames to build one from (a SER, AVI or FITS file, or a folder of them).

FieldTypeRequiredDescription
bad_pixelsstring, may be nullnoBad-pixel map: a FITS map from helia calibrate, or a text file with an x y pair (from 0, top-left) on each line.
biasstring, may be nullnoMaster bias, or bias captures. Only used with scale_dark.
combinestringnoHow frames are combined into a master: median, sigma or sigma:K. Default sigma. Default "sigma".
cosmeticbooleannoWithout bad_pixels, find the hot pixels of the dark and the cold ones of the flat and correct them. Default true. Default true.
darkstring, may be nullnoMaster dark, or dark captures.
displacedstring, may be nullnoCaptures of the Sun at many places on the sensor, to solve a flat from when there is no flat (self-calibration: dust and fringes included). The dark is taken off first. Excludes flat.
flatstring, may be nullnoMaster flat, or flat captures.
flat_darkstring, may be nullnoDark captures at the exposure of the flats, when flat is captures.
scale_darkbooleannoScale the dark by the ratio of the exposures (read from the SharpCap sidecar of the capture). Default false.

CaptureInfo

Header information for a capture.

FieldTypeRequiredDescription
bayerstring, may be nullnoBayer pattern (rggb ...) when raw colour.
bit_depthinteger (int32)yesBits per sample.
codecstring, may be nullnoVideo codec (h264, ...), for video read through ffmpeg.
colourstringyesPixel layout: mono, bayer, rgb, bgr, or video for compressed video, which ffmpeg converts to luminance or one colour channel.
detectionDetectionInfo or nullno
effectiveEffectiveInfoyesWhat Helia decodes the capture with, and where each value came from.
formatstringyesser, avi, or the extension of a video read through ffmpeg (mp4, mov, mkv, webm, m4v; also avi for a compressed AVI).
fourccstring, may be nullnoAVI FourCC.
frame_ratenumber (double), may be nullnoFrames per second, for video.
framesintegeryesNumber of frames.
headerSerHeaderInfo or nullno
heightinteger (int32)yesHeight in pixels.
instrumentstring, may be nullnoSER instrument string.
noticesarray of NoticeInfoyesWhat to tell the user about how the file was read.
observerstring, may be nullnoSER observer string.
overridesarray of stringyesThe overrides in force, as command-line flags.
pathstringyesCapture path relative to the data root.
quality_notestring, may be nullnoQuality caveat when the input is lossy video, for example "lossy 8-bit 4:2:0 video (h264): fine for quick results, SER/AVI raw captures keep more detail".
recommendedRecommendedyesThe settings a job would use if none were given.
sidecarSidecarInfo or nullno
telescopestring, may be nullnoSER telescope string.
timestampsboolean, may be nullnoSER per-frame timestamps present.
widthinteger (int32)yesWidth in pixels.

ChannelArg

Colour plane taken from a Bayer capture.

One of r, g, b, lum.

ChannelSummary

How red and blue were registered to green in a true-colour stack.

FieldTypeRequiredDescription
appliedbooleanyesThe plane was moved. False when the shift was too small, too large or not trustworthy.
channelstringyesred or blue.
confidencenumber (float)yesConfidence of the correlation, 0 to 1.
shiftarray of number (float)yesShift measured, pixels: [dx, dy].

CpuInfo

CPU availability (always true).

FieldTypeRequiredDescription
availablebooleanyesAlways true.

DebayerArg

Demosaicing method.

One of bilinear, mhc.

DetectionInfo

The test for a hidden Bayer mosaic.

FieldTypeRequiredDescription
frames_usedintegeryesFrames measured.
patternstring, may be nullnoPattern found, for mosaic.
position_meansarray of number (double)yesMean level (0 to 1) of the pixels at even x/even y, odd x/even y, even x/odd y and odd x/odd y.
reasonstring, may be nullnoWhy it could not tell, for inconclusive.
red_blue_basisstring, may be nullnoHow red was told from blue, for mosaic.
regionarray of integeryesArea measured: x, y, width, height.
spreadnumber (double)yes(largest - smallest) / average of the four means.
verdictstringyesmosaic, mono or inconclusive.

EffectiveInfo

What Helia decodes the capture with.

FieldTypeRequiredDescription
bayerSourcedTextyesBayer pattern (rggb ...), or none for mono.
bit_depthSourcedNumberyesBits per sample.
byte_orderSourcedTextyesByte order of 16-bit samples: little or big.
flip_rowsSourcedFlagyesRows are read bottom to top.

ErrorBody

Machine-readable error body.

FieldTypeRequiredDescription
codestringyesStable snake_case identifier, safe to match on.
messagestringyesHuman-readable explanation.

ErrorEnvelope

Envelope returned for every non-2xx response.

FieldTypeRequiredDescription
errorErrorBodyyesThe error.

GpuInfo

GPU availability.

FieldTypeRequiredDescription
adapterstring, may be nullnoAdapter description.
availablebooleanyesA GPU backend can be created (a software adapter counts).
softwarebooleanyesThe adapter is a software rasteriser.

GranulationSummary

Granulation statistics of the stack (helia measure, the quality report).

FieldTypeRequiredDescription
arcsec_per_pixelnumber (float), may be nullnoImage scale, arcseconds per pixel (absent without a fitted limb).
cell_diameter_pxnumber (float)yesMean diameter of whole granules, pixels.
cell_pitch_pxnumber (float)yesMean spacing of granules, pixels.
cutoff_freqnumber (float), may be nullnoDiffraction cut-off D / lambda in cycles per pixel; needs aperture_mm and a fitted limb.
linesarray of stringyesThe report in lines, as the command line prints it.
resolved_freqnumber (float)yesHighest frequency (cycles per pixel) above 1% of the peak power.
rms_contrastnumber (float)yesStandard deviation over mean of the flattened disc-centre region (a fraction, 0.04 is 4%).
rolloff_freqnumber (float)yesSpatial frequency (cycles per pixel) where the noise-subtracted power spectrum has fallen to 10% of its peak.

Health

Liveness probe.

FieldTypeRequiredDescription
statusstringyesAlways ok.

InspectRequest

POST /captures/inspect body.

FieldTypeRequiredDescription
bayerstring, may be nullnoauto (default), none, rggb, grbg, gbrg or bggr: see what an override would change.
bit_depthinteger (int32), may be nullnoBits per sample instead of the SER header's (1 to 16).
endianstring, may be nullnolittle or big, instead of the SER header flag.
flip_rowsbooleannoRead the rows bottom to top.
pathstringyesCapture path relative to the data root.

JobConfig

The same knobs as helia stack.

FieldTypeRequiredDescription
alignstringnoHow 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, or limb. The choice and its confidence come back in summary.alignment. Default "auto".
align_channelsbooleannoWith colour: "true", register red and blue to green (atmospheric dispersion). Default true. Default true.
ap_autobooleannoChoose the alignment point size, spacing and search range from the image scale (the fitted limb) and the seeing (a probe of a dozen frames). Excludes ap_size; needs multipoint. What was chosen comes back in summary.auto_ap. Default false.
ap_passesinteger (int32), may be nullnoAlignment point passes, 1 or 2. 2 stacks once and measures the points again against that stack. Default 1; needs multipoint.
ap_sizeinteger, may be nullnoAlignment point size in pixels (8 to 1024). Absent: chosen from the image size.
ap_smoothbooleannoReplace alignment point shifts that disagree with their neighbours by the neighbours' median. Needs multipoint. Default false.
aperture_mmnumber (float), may be nullnoTelescope aperture in millimetres, for the diffraction cut-off in summary.granulation and for r0 in summary.seeing.
autocropbooleannoCrop the result to the solar disc plus autocrop_margin, FITS too. A capture without a clear disc is left uncropped; summary.crop is then absent. Default false.
autocrop_marginnumber (float), may be nullnoMargin of autocrop as a percentage of the disc radius, 0 to 200. Default 10.
backendBackendArgnoCompute backend. Default "auto".
bayerstringnoauto, none, rggb, grbg, gbrg or bggr. auto trusts the file's header, but checks a SER file labelled mono for a hidden Bayer mosaic and debayers when it finds one. none treats the frames as mono whatever the header says; a pattern forces it. Default "auto".
bit_depthinteger (int32), may be nullnoBits per sample instead of the SER header's (1 to 8 read one byte per pixel, 9 to 16 two). SER only.
calibrationCalibrationConfig or nullno
channelChannelArg or nullno
colourstring, may be nullnoColour of the output: auto (the preset in force), mono, a preset id, or true. true is true colour from a raw colour camera: red, green and blue stacked on one alignment, channels aligned, white balanced, written as an RGB TIFF or PNG or a three-plane FITS cube; it needs a Bayer capture and excludes channel, invert and colour_strength. The other looks colour a .tif or .png from the mono stack, and FITS output is mono and unaltered for them. Absent: the preset's colours if one was given, else mono.
colour_strengthnumber (float)noMix of colour and grey, 0 to 1. Default 1.0.
debayerDebayerArgnoDemosaicing method. Default "mhc".
detect_overlaybooleannoLook for burned-in text (a SharpCap timestamp) and mask it. Default true.
disc_maskbooleannoFit the limb and place alignment points on the disc only. Default true.
editsarray of objectnoFurther edits, applied in order after sharpen: objects with an op of unsharp, wavelet, deconvolve, denoise, levels, curve, crop, rotate, flip or resize and that operation's parameters (see the sharpening and adjustments page of the user guide). Unset parameters take their defaults. Default [].
endianstring, may be nullnoByte order of 16-bit samples instead of the SER header flag: little or big. SER only.
excludearray of RegionnoRectangles to keep alignment and scoring off. They are flattened in every frame and so are flat in the result. Burned-in timestamps are found automatically (see detect_overlay). Default [].
flattenstring, may be nullnoFlatten the disc's limb darkening before anything else: model (divide by the fitted law) or profile (divide by the measured azimuthal median). Outside the limb nothing changes. It runs first, so sharpen and edits see flat contrast. A capture with no clear disc is left as it is and summary.limb_darkening is absent.
flip_rowsbooleannoRead the rows bottom to top. SER only. Default false.
invertbooleannoInvert before colouring (shows filaments and prominences). Default false.
keepstring, may be nullnoShare ("25%") or count ("500") of frames to keep. Default 25%.
keep_framesinteger, may be nullnoNumber of frames to keep; excludes keep.
limb_lawstring, may be nullnoThe limb-darkening law fitted to the stack and used by flatten: linear, quadratic (the default) or neckel (five terms). The fit comes back in summary.limb_darkening whether or not flatten is set.
metricMetricArgnoFrame ranking metric. Default "gradient".
multipointbooleannoMulti-point alignment; false is global alignment only. Default true.
presetstring, may be nullnoFilter preset (ha, cak, cah, mg, na, he-d3, hbeta, white; see GET /presets): its channel and frame share apply wherever channel and keep are absent, and a .tif or .png output is coloured with it. Absent: the filter is detected from the file name, folder, sidecar or header, for the settings only.
prominence_bandintegernoPixels outside the fitted limb where alignment points are still allowed; 0 keeps them on the disc. Default 0.
robustRobustArg or nullno
robust_knumber (float), may be nullnoThreshold of robust in standard deviations. Default 2.5 for sigma, 1.345 for huber, 2 for winsor.
seeingbooleannoEstimate the seeing from the capture (summary.seeing): the Fried parameter from the spectral ratio, which needs aperture_mm, and a relative alignment point motion index. Default false.
sharpenstring, may be nullnoSharpening of the stack: wavelet (Registax-style layers, the usual choice), unsharp, rl (Richardson-Lucy) or none, with the recommended values of the filter in force. Absent: none. It runs first, on the mono image, before edits and before any colour.
sharpen_fitsbooleannoApply sharpen and edits to FITS output too. By default a FITS file is the unsharpened stack. Default false.
sigma_clipnumber (float), may be nullnoSigma clipping threshold in standard deviations; off when absent. Same as robust: "sigma" with robust_k.
sitestring, may be nullnoObserving site as "lat,lon,alt" (degrees north, degrees east, metres), written to a FITS output as OBSGEO-X/Y/Z. Absent: the server's HELIA_SITE environment variable, else the keywords are left out.
sunspotsSunspotsConfig or nullno
white_balancestring, may be nullnoWhite balance of colour: "true": auto (make the disc centre neutral), off (the sensor's own balance) or "R,G,B" gains such as "1.9,1,1.5". Default auto. Only with colour: "true".

JobEvent

Message on the /events WebSocket.

One of:

  • Full job view, sent once on connect. Fields: job (JobView), type = snapshot.
  • State change. Fields: error (ErrorBody or null), job (integer (int64)), state (JobState), type = state.
  • Progress tick. Fields: job (integer (int64)), progress (number (float)), stage_progress (number (float)), stage (string), type = progress.

JobRequest

POST /jobs body.

FieldTypeRequiredDescription
configJobConfignoStacking settings.
inputstringyesCapture path (.ser or .avi), relative to the data root.
outputstringyesOutput path; .tif/.tiff or .fits/.fit/.fts.
overwritebooleannoReplace an existing output file.

JobState

Lifecycle state.

One of queued, running, succeeded, failed, cancelled.

JobSummary

What a finished stack contains.

FieldTypeRequiredDescription
alignmentAlignmentSummaryyesHow whole frames were aligned, and how confident that was.
alignment_points_activeinteger, may be nullnoActive alignment points (multi-point only).
alignment_points_totalinteger, may be nullnoAlignment points in the grid (multi-point only).
auto_apAutoApSummary or nullno
bayerstring, may be nullnoBayer pattern the frames were decoded with (rggb ...); absent for mono.
bayer_sourcestringyesWhere that came from: header, sidecar, detection or override.
calibrationarray of stringyesThe calibration masters applied, one line each, and any warning about them (a flat with rings, a dark that could not be scaled). Empty when the job had no calibration.
colourstring, may be nullnoHow the output was coloured, in words; absent for a mono output.
cropRegion or nullno
editedbooleanyesThe edits were applied to the pixels of the output.
editsarray of stringyesThe edits recorded in the output file, one line each. For FITS output without sharpen_fits this is the note that the file is unedited.
filterstring, may be nullnoPreset id in force (chosen or detected), if any.
filter_sourcestring, may be nullnoWhere the filter was read from (chosen, or the text it was found in).
framesintegeryesFrames in the capture.
granulationGranulationSummary or nullno
heightintegeryesOutput height.
keptintegeryesFrames in the kept set.
limb_darkeningLimbSummary or nullno
noticesarray of stringyesThings worth knowing about how the capture was read, such as a Bayer mosaic found in a file whose header says mono.
registeredintegeryesFrames registered.
seeingSeeingSummary or nullno
sunspotsSunspotsSummary or nullno
true_colourTrueColourSummary or nullno
widthintegeryesOutput width.

JobView

Public view of a job.

FieldTypeRequiredDescription
backendstring, may be nullnoBackend used.
configJobConfigyesThe settings in force.
created_atinteger (int64)yesCreation time, Unix milliseconds.
errorErrorBody or nullno
finished_atinteger (int64), may be nullnoEnd time, Unix milliseconds.
idinteger (int64)yesJob id.
inputstringyesInput path relative to the data root.
outputstringyesOutput path relative to the data root.
progressnumber (float)yesApproximate overall progress, 0 to 1.
queue_positioninteger, may be nullnoPosition among queued jobs (0 is next), while queued.
run_secondsnumber (float), may be nullnoSeconds spent running so far or in total.
stagestring, may be nullnoCurrent stage name, once running.
stage_progressnumber (float)yesProgress within the current stage, 0 to 1.
started_atinteger (int64), may be nullnoStart time, Unix milliseconds.
stateJobStateyesState.
summaryJobSummary or nullno
timingsarray of StageTimingyesPer-stage wall times of a finished run.

LicenceDetails

Licensing of the software.

FieldTypeRequiredDescription
copyrightstringyesCopyright line.
licencestringyesSPDX licence identifier.
sourcestringyesSource code location.

LimbSummary

A limb-darkening law fitted to the stack's azimuthal median profile.

FieldTypeRequiredDescription
coefficientsarray of number (float)yesThe coefficients, I(mu) / I(1) = 1 - sum c_k (1 - mu^k) for neckel, 1 - u (1 - mu) - u2 (1 - mu)^2 for the others.
lawstringyeslinear, quadratic or neckel.
limb_levelnumber (float)yesThe law at the limb as a share of the disc centre.
namesarray of stringyesNames of the coefficients, in order (u1, u2, or a1 to a5).
radius_pxnumber (float)yesFitted disc radius, pixels.
rmsnumber (float)yesRoot mean square departure of the profile from the law, as a share of the centre intensity.
textstringyesThe fit in a sentence.

Limits

Server limits.

FieldTypeRequiredDescription
active_jobsintegeryesJobs queued or running now.
max_body_bytesintegeryesRequest body limit in bytes.
max_queueintegeryesQueued plus running jobs allowed.
workersintegeryesConcurrent jobs.

MetricArg

Sharpness metric.

One of gradient, laplacian.

NoticeInfo

A message about how the capture was understood.

FieldTypeRequiredDescription
levelstringyesinfo or warning.
textstringyesThe message.

PresetColour

The colour parameters of a preset.

FieldTypeRequiredDescription
exponentsarray of number (float)yesPer-channel exponent (red, green, blue).
gainsarray of number (float)yesPer-channel gain (red, green, blue).
gammanumber (float)yesTone exponent applied before colouring (below 1 brightens).
mid_grey_rgbarray of integer (int32)yesWhat a mid-grey (0.5) becomes, 8-bit red, green, blue.

PresetList

GET /presets body.

FieldTypeRequiredDescription
presetsarray of PresetViewyesEvery preset.

PresetSharpen

The recommended sharpening values of a preset (what sharpen in a job uses for this filter).

FieldTypeRequiredDescription
denoisenumber (float)yesWavelet denoise strength.
reasonstringyesWhy they are what they are.
rl_iterationsinteger (int32)yesRichardson-Lucy iterations.
rl_tvnumber (float)yesRichardson-Lucy total-variation weight.
unsharp_amountnumber (float)yesUnsharp mask amount.
unsharp_thresholdnumber (float)yesUnsharp mask threshold (image units, 0 to 1).
wavelet_gainsarray of number (float)yesWavelet gain of layers 1 to 6.
wavelet_noisearray of number (float)yesWavelet noise threshold of layers 1 to 6, in noise sigmas.

PresetView

One filter preset.

FieldTypeRequiredDescription
channelstringyesBayer channel stacked (r, g, b or lum).
colourPresetColouryesColour parameters. Colour is presentation, not measurement.
huestringyesHue in words.
idstringyesId to give as preset or colour in a job: ha, cak, ...
keep_percentnumber (float)yesShare of frames kept, percent.
namestringyesPlain name.
reasonstringyesWhy the recommendations are what they are.
sharpenPresetSharpenyesRecommended sharpening values.
summarystringyesOne line on what it is for.
wavelengthstringyesWavelength as printed in the docs.

What Helia would do with a capture if given no settings.

FieldTypeRequiredDescription
ap_sizeintegeryesAlignment point size in pixels.
channelstringyesBayer channel it would stack (r, g, b, lum).
filterstring, may be nullnoPreset id detected from the file name, folder, sidecar or SER header.
filter_sourcestring, may be nullnoThe text the filter was read from.
keep_percentnumber (float)yesShare of frames it would keep, percent.

Region

A rectangle of the frame, in pixels from the top-left corner.

FieldTypeRequiredDescription
hintegeryesHeight; at least 1.
wintegeryesWidth; at least 1.
xintegeryesLeft edge.
yintegeryesTop edge.

RobustArg

Outlier-robust combination of the frames at each pixel.

One of none, sigma, huber, winsor.

SeeingSummary

Seeing estimated from the capture.

FieldTypeRequiredDescription
d_over_r0number (float), may be nullnoD / r0 from the spectral ratio; needs aperture_mm.
framesintegeryesFrames followed (spread over the whole capture).
gradestring, may be nullnoexcellent, good, fair, poor or bad, from r0_500nm_cm.
linesarray of stringyesThe report in lines, as the command line prints it.
motion_arcsecnumber (float), may be nullnoThe same in arcseconds, with a fitted limb.
motion_pxnumber (float), may be nullnoRMS differential motion between neighbouring alignment points, per axis, pixels. A relative index, not r0.
r0_500nm_cmnumber (float), may be nullnoFried parameter at 500 nm, centimetres.
r0_cmnumber (float), may be nullnoFried parameter at the capture's wavelength, centimetres.
tilesintegeryesTiles of the disc followed.

SerHeaderInfo

A SER header exactly as written in the file, decoded.

FieldTypeRequiredDescription
colour_idinteger (int32)yesColorID as stored.
colour_meaningstringyesIts meaning (MONO, BAYER_RGGB ...).
date_timestring, may be nullnoDateTime (local) decoded; absent when unset.
date_time_utcstring, may be nullnoDateTimeUTC decoded; absent when unset.
file_idstringyesFileID.
frame_countinteger (int32)yesFrame count.
heightinteger (int32)yesHeight in pixels.
instrumentstringyesInstrument.
little_endianbooleanyesLittleEndian flag as stored.
lu_idinteger (int32)yesLuID.
observerstringyesObserver.
pixel_depthinteger (int32)yesBits per sample.
telescopestringyesTelescope.
timestampsTimestampInfo or nullno
widthinteger (int32)yesWidth in pixels.

SidecarInfo

SharpCap sidecar contents that Helia uses.

FieldTypeRequiredDescription
bayer_hintstring, may be nullnoBayer pattern implied by the sidecar.
colour_spacestring, may be nullnoColour Space value.
frame_countinteger, may be nullnoFrame count from the sidecar.
pathstringyesSidecar path relative to the data root.
raw_colourboolean, may be nullnoWhether the sidecar says the data is raw colour.
sectionsarray of stringyesSection headings (camera model).

SourcedFlag

A switch and where its setting came from.

FieldTypeRequiredDescription
sourcestringyesheader, sidecar, detection or override.
valuebooleanyesThe value.

SourcedNumber

A number Helia uses and where it came from.

FieldTypeRequiredDescription
sourcestringyesheader, sidecar, detection or override.
valueinteger (int32)yesThe value.

SourcedText

A value Helia uses and where it came from.

FieldTypeRequiredDescription
sourcestringyesheader, sidecar, detection or override.
valuestringyesThe value.

StageTiming

Wall time of one stage.

FieldTypeRequiredDescription
secondsnumber (float)yesSeconds.
stagestringyesStage name.

SunspotGroupRow

One group of sunspots.

FieldTypeRequiredDescription
area_mshnumber (float)yesCorrected, millionths of the hemisphere.
cmd_degnumber (float)yesArea-weighted central meridian distance, degrees.
idintegeryesNumber from 1, largest first.
lat_degnumber (float)yesArea-weighted latitude, degrees north.
lon_degnumber (float), may be nullnoArea-weighted Carrington longitude, degrees (needs time).
projected_mshnumber (float)yesAs seen, millionths of the visible hemisphere.
spotsintegeryesSpots in it.
umbra_mshnumber (float)yesUmbrae corrected, millionths of the hemisphere.
umbraeintegeryesUmbrae in it.

SunspotRow

One sunspot.

FieldTypeRequiredDescription
area_mshnumber (float)yesCorrected for foreshortening, millionths of the hemisphere.
cmd_degnumber (float)yesCentral meridian distance, degrees, west positive.
groupintegeryesIts group.
idintegeryesNumber from 1.
lat_degnumber (float)yesHeliographic latitude, degrees north.
lon_degnumber (float), may be nullnoCarrington longitude, degrees (needs time).
munumber (float)yesCosine of the angle from disc centre.
penumbra_pxintegeryesPenumbra pixels.
projected_mshnumber (float)yesAs seen, millionths of the visible hemisphere.
umbra_mshnumber (float)yesUmbra corrected, millionths of the hemisphere.
umbra_pxintegeryesUmbra pixels.
umbraeintegeryesUmbrae in it.
xnumber (float)yesCentroid, pixels.
ynumber (float)yesCentroid, pixels, top row 0.

SunspotsConfig

Tuning of the sunspot detection; every field is optional.

FieldTypeRequiredDescription
celestial_north_upbooleannoThe image has celestial north up: add the position angle P of the Sun at the capture time to north_angle_deg. Default false.
group_gap_degnumber (float), may be nullnoSpots closer than this on the Sun, degrees, form one group. Default 3.
max_areanumber (float), may be nullnoLargest spot, millionths of the hemisphere; bigger dark regions are left out as a cloud or vignette. Default 6000.
min_areanumber (float), may be nullnoSmallest spot, millionths of the hemisphere. Default 2.
mirrorbooleannoThe image is a mirror image. Default false.
north_angle_degnumber (float), may be nullnoCounter-clockwise angle from the top of the image to solar north, degrees. Default 0.
penumbranumber (float), may be nullnoPenumbra threshold, a share of the quiet disc (0 to 1). Default 0.88.
umbranumber (float), may be nullnoUmbra threshold, a share of the quiet disc (0 to 1). Default 0.55.
wolf_knumber (float), may be nullnoObserver factor k of the Wolf number. Default 1.

SunspotsSummary

Sunspots on the stack: counts, areas and the table.

FieldTypeRequiredDescription
area_mshnumber (float)yesEverything corrected for foreshortening, millionths of the hemisphere.
b0_degnumber (float), may be nullnoHeliographic latitude of the disc centre, degrees (needs time).
discarray of number (float)yesDisc centre x, centre y and radius the positions are measured on, pixels.
group_tablearray of SunspotGroupRowyesOne row per group.
groupsintegeryesSunspot groups, g.
knumber (float)yesThe observer factor used.
l0_degnumber (float), may be nullnoCarrington longitude of the disc centre, degrees (needs time).
linesarray of stringyesThe report in lines, as the command line prints it.
notesarray of stringyesThings to be careful about.
p_degnumber (float), may be nullnoPosition angle of the solar axis, degrees (needs time).
projected_mshnumber (float)yesEverything as seen, millionths of the visible hemisphere.
spot_tablearray of SunspotRowyesOne row per spot.
spotsintegeryesIndividual spots, s (umbrae and pores).
timestring, may be nullnoCapture time used, ISO 8601 UTC; absent when the capture had none.
umbra_mshnumber (float)yesUmbrae corrected, millionths of the hemisphere.
wolfnumber (float)yesRelative Wolf number k (10 g + s).

TimestampInfo

SER trailer timestamps.

FieldTypeRequiredDescription
countintegeryesHow many.
firststring, may be nullnoFirst, UTC.
laststring, may be nullnoLast, UTC.

TrueColourSummary

What a true-colour job did.

FieldTypeRequiredDescription
channelsarray of ChannelSummary, may be nullnoRed and blue against green; absent when align_channels was off.
gainsarray of number (float)yesGains applied to red, green and blue, including the common scale that keeps the picture inside white.
notesarray of stringyesThe notes written into the file's history, including warnings (a channel held at the largest automatic gain, a shift not applied).

VersionInfo

/version response.

FieldTypeRequiredDescription
apistringyesAPI version in the URL prefix.
auth_requiredbooleanyesWhether a token is required.
backendsBackendsyesBackends.
buildBuildDetailsyesBuild record.
licenceLicenceDetailsyesCopyright and licence.
limitsLimitsyesLimits.
namestringyesPackage name.
versionstringyesPackage version.