File formats
Opening
| Format | Extensions | Notes |
|---|---|---|
| FITS | .fits, .fit, .fts | Mono or RGB, 8/16/32-bit integer or 32/64-bit float. Integer data is scaled by the type's full range, not by the image's own brightest pixel, so frames from one camera stay comparable. Capture details from the header (frame type, exposure, gain, temperature, filter, Bayer pattern) are kept and written back on FITS export. |
| XISF | .xisf | The open astro format of PixInsight. Mono or RGB, 8-bit, 16-bit or 32-bit float, stored planar and uncompressed in one file. The capture details are read from the header's FITS keywords; if a keyword is missing, the XISF properties for exposure time, sensor temperature, filter and start of observation fill in. The property Instrument:Camera:Gain is the conversion gain in e⁻/ADU (such as 0.25), not the gain setting of the camera (such as 120, the FITS card GAIN), so it is kept as the electron gain and never as the gain. Compressed or interleaved XISF files and 16-bit or 32-bit files in big-endian byte order are refused with a message. |
| Camera RAW | .cr2, .cr3, .nef, .arw, .dng and more | Open develops the file: demosaiced and white-balanced on load, ready for editing but not for calibration with darks and flats. File → Open Raw Sensor Data… and the Stack step read the undeveloped sensor data instead, see below. |
| TIFF, PNG, JPEG | .tif, .tiff, .png, .jpg, .jpeg | Converted to linear values on load. |
Instead of File → Open Image… you can drag files from Finder onto the canvas in the middle of the window. Each image opens in a window of its own; a file Siderea cannot read is reported without stopping the others, and other folders are ignored. Edit projects and sessions (below) can be dropped the same way.
FITS header information
Siderea reads the capture keywords of a FITS header into its own fields and writes them back in a normalized form when you export FITS: EXPOSURE becomes EXPTIME, FRAMETYP becomes IMAGETYP (spelled Light, Dark, Flat, Bias or Dark Flat), and XBAYROFF and YBAYROFF are folded into BAYERPAT, so the exported file names the pattern seen from its first row and has both offsets at 0. A value Siderea cannot interpret, such as an unknown Bayer pattern like X-Trans, a non-numeric GAIN, a negative EXPTIME or a number that is infinite or not a number (INF, 1E999), or an IMAGETYP like "Snapshot", stays in the header unchanged. Numbers may use D as the exponent letter (1.8D2 is 180). COMMENT and HISTORY cards, the comments behind values and cards longer than 80 characters are not carried over.
XISF
Siderea reads and writes monolithic XISF files. Opening works like FITS: integers are scaled by the type's full range, floats are used as they are. Exporting XISF writes 32-bit float, with the capture details as FITS keywords in the header, so opening the exported file gives back exactly the same pixels and the same information. The keywords follow the FITS rules: characters outside ASCII become "?" (a filter named Hα is written as H?), and header entries longer than 80 characters or with names longer than eight characters are left out. COMMENT and HISTORY keywords are not taken over, just as with FITS. Compressed XISF files (zlib, LZ4, zstd), files that store the channels interleaved and 16-bit or 32-bit files in big-endian byte order cannot be opened yet; re-save them uncompressed, planar and little-endian in PixInsight, or export them as FITS there.
World coordinates (WCS)
A FITS or XISF header can say which position in the sky each pixel shows (the result of a plate solve). Siderea reads this as the world coordinates of the image and writes it back when you export FITS or XISF. It understands the gnomonic projection (CTYPE1 = 'RA---TAN', CTYPE2 = 'DEC--TAN', with the suffix -SIP when a distortion polynomial follows in the A_, B_, AP_ and BP_ cards, up to order 9), the reference point (CRVAL, CRPIX) and the matrix as CD1_1 to CD2_2, as CDELT with PC, or as CDELT with CROTA2. The sky must be ICRS or FK5 at J2000 (RADESYS, EQUINOX) and the units degrees. Exports always write the CD form and RADESYS = 'ICRS'.
Header cards that do not fit, such as another projection, another equinox or a missing reference point, are not interpreted and stay in the header unchanged. Siderea then has no world coordinates for the image.
FITS counts pixels from 1 and rows from the bottom of the picture; XISF keywords follow the same rule, although XISF stores the top row first; only a FITS file with ROWORDER = 'TOP-DOWN' counts rows from the top. Siderea converts both ways, so other programs read an exported file correctly.
A stack made after its reference frame was solved in the Analyze step carries the world coordinates of that frame in the header of its FITS result, and in every FITS or XISF export of it, so other programs can annotate it. The stack has the pixel grid of the reference frame (every light is aligned onto it and nothing is cropped or scaled), so the coordinates are the reference frame's as they are. A stack without a stored, valid solution of its reference frame has none. See The result.
The modules Crop, Rotate and Flip, and Bin and Scale keep the world coordinates in step with the pixels. If a header holds coordinates Siderea cannot interpret, these modules remove those cards instead of leaving wrong ones behind.
Pointing hints
Capture programs write where the telescope pointed and with what. Siderea reads these hints into their own fields and writes them back on export; they only help to find the position of the image faster and are never required.
| Information | FITS card | Notes |
|---|---|---|
| Pointing | RA, DEC, else OBJCTRA, OBJCTDEC | Degrees (83.82), or hours and degrees written as text ('05 35 17.3', '05:35:17', '-05 23 28'). A single plain number in OBJCTRA counts as degrees. Exports write RA and DEC in degrees and OBJCTRA and OBJCTDEC as text. XISF files without these keywords use the properties Observation:Center:RA and Observation:Center:Dec (degrees). |
| Target | OBJECT | |
| Focal length | FOCALLEN | Millimeters. XISF: the property Instrument:Telescope:FocalLength (meters) if the keyword is missing. |
| Pixel size | XPIXSZ, else PIXSIZE1, PIXSIZE | Micrometers. XISF: Instrument:Sensor:XPixelSize. |
| Binning | XBINNING, YBINNING | Whole numbers from 1. |
From pixel size, binning and focal length Siderea estimates the pixel scale: 206.265 × pixel size × binning ÷ focal length arcseconds per pixel. Capture programs differ in whether the pixel size already includes the binning, so this is a first guess, not a result. A value that is zero, negative or not a number is not used and stays in the header unchanged.
Gain, electron gain and ISO
Three header values describe how a camera amplifies, and they are not the same number. The gain is the setting of the camera (FITS GAIN, for example 120 in N.I.N.A. or on a ZWO camera). The electron gain is the conversion gain in e⁻/ADU (FITS EGAIN, XISF Instrument:Camera:Gain, for example 0.25): a property of the camera, which Siderea keeps in the file but does not compare. The ISO (ISOSPEED, also read from camera RAW files) is the setting of a DSLR, which has no gain. The checks for darks, flats and bias frames and the master matching compare the gain; where neither side names a gain, they compare the ISO instead (ISO 800 darks do not fit ISO 1600 lights). A gain is never compared with an ISO, and a frame that names neither is not judged. The sensor temperature (CCD-TEMP) is the reading of the sensor. The temperature of the camera housing that some RAW files carry is ambient air, not the sensor, so Siderea does not use it as the sensor temperature and the dark check ignores it.
Camera RAW as sensor data
File → Open Raw Sensor Data… opens a camera RAW file the way a FITS frame from an astro camera looks: one mono image that still holds the Bayer mosaic. Black and white point are applied, so a frame without light sits near 0 and full saturation is 1; the Bayer pattern, exposure time, ISO, sensor temperature and capture date are kept as header information and written along when you export FITS. Apply the Debayer module to turn it into a color image. The capture date (DATE-OBS) is the time on the camera's clock, not UTC: RAW files carry no time zone.
The Stack step always reads camera RAW this way, so darks, flats and bias frames can be applied before debayering.
Supported are cameras with a Bayer sensor (red, green, blue filters). Fujifilm X-Trans and Foveon sensors are not supported, and neither are DNG files with lossy or deflate compression. The masked border of the sensor is cut off.
Project folders
A project (File → Save Project) is a folder. It holds project.siderea, a small text file in JSON, and five subfolders for everything Siderea produces for the project: cache, masters, results, export and logs. Siderea creates the subfolders when it creates the project and again on opening if one is missing. To open a project, choose its folder (File → Open Project…).
project.siderea holds the project name, the version of the file format and, for each frame, where the file is and which group it belongs to: Lights, Darks, Flats, Bias or Unsorted. The frames themselves are not copied into the project folder and never changed.
- Groups are kept as you set them. A frame you moved to another group stays there when you open the project again, even if its header (
IMAGETYP) says something else. - Moved frames are found again. Besides the path, the project stores a macOS bookmark for each file. Siderea uses it to open the frames without asking for access again, and to find a file that you moved or renamed after saving.
- Missing frames are not lost. If a file is gone, or cannot be read, the project still opens, with the frame marked as missing. Saving the project again keeps its reference. If the file is back at its place the next time you open the project, it is a frame of its group again.
- Sessions are kept. A frame you assigned to a session by hand has the field
sessioninproject.siderea: the id of the session, orallfor All Sessions. Flats, darks and bias you assigned to two or more sessions have the fieldsessionsinstead, the list of the ids. A frame without either follows the rule of its group: lights and unsorted frames belong to the session of the night they were captured in (the idnight-2026-04-20for the night that began on that evening;nodatewithout a readableDATE-OBS), flats, darks and bias to all sessions. Sessions you made yourself, and nights you renamed or left out of the stack, are listed in the fieldsessionswith theiridandname(a night hasnightas well;excluded: truemarks a session left out of the stack, and is written only then). The fieldflatOverrideslists the lights that run without a flat: each entry has thesessionwhose lights it is for, thefilter(lowercase, absent for lights without one) and thesourcenone. The format version stays 1. Files saved before this order of things open with the rules above and are brought along: an assignment to a night without lights becomes All Sessions (an assignment to a session you made yourself stays, with or without lights), a flat that followed its night is in All Sessions, and a choice to use the flat of another session (asourcethat is a session id) becomes an assignment of those flats to that session. Files saved before sessions existed have none of these fields; a project that uses none of them writes none. The night itself is not stored; it follows the time zone described next. See Sessions. - The time zone of the nights is kept.
project.sidereahas the fieldtimeZone, the name of the time zone (such asEurope/Berlin) in which a night runs from noon to noon. A project opened on a Mac in another zone keeps its nights, and with them the names, exclusions and assignments of its sessions. Files saved before this open in the time zone of the Mac, as before; so does a file with a name this Mac does not know. The format version stays 1. - Master decisions are kept. For the bias, each dark exposure time and each flat filter,
project.sidereastores the fieldmasterChoices: per entry thekind, theset(the filter of a flat, the exposure time of a dark in seconds; none for a bias) and either the id of the master (from the project or the library) you accepted, or that you declined to use one. A master without an entry is undecided. Files saved before this field existed simply have none, an entry withoutset(from an older version) counts for the one set of its kind, and an entry for a type this version does not know is ignored. - Opening a project reads only the headers of the frames, not their pixels.
- Logs are plain text. Every stacking run writes
logs/stack-<date>-<time>Z.log, the start in UTC (a second run in the same second gets-2). The file exists from the start of the run and is replaced atomically whenever the run reports something, so it shows Run in progress with the time of the last update until the run ends and a crash leaves it up to the last event. It is English text in the style of PixInsight's WBPP log: the run and its settings, the frame groups, then one block per step with its start time, frame count, duration and cache use, the skipped frames, per frame tables (Star alignment with stars, matches and transform, Normalization, Pixel rejection counts) and the result. See The run log. Siderea never reads the files back and never deletes them.
A project saved by a newer version of Siderea cannot be opened; Siderea says so instead of guessing. The same goes for a folder without a project.siderea file. Projects saved as a single .siderea file by earlier versions are not converted; create the project again.
Edit projects
File → Save Edit Project… saves where you are in an edit: the original image and the steps you applied, with the values of each. File → Open Edit Project… (or dropping the folder onto the canvas) opens it again and applies the steps once more, so you can keep working or take a step back. An edit project is a folder named <name>.sidereaedit, which Finder shows as one file.
- A file you opened is not copied. The project remembers where it is, also through a macOS bookmark, and finds it again after you moved or renamed it. If it is really gone, Siderea tells you which file is missing. A camera RAW file that you opened as sensor data is opened as sensor data again. Siderea finds the original through the path only while macOS still allows access to it; without a usable bookmark, a file that was moved or sits somewhere Siderea may no longer read is reported as missing.
- A finished stack has no file, so the project holds a FITS copy of it inside the folder. Keep the folder together when you copy the project to another Mac.
- The steps are applied again, not stored as pixels, so a project stays small. If a step cannot be applied, for example because a newer version no longer has that module or the saved values are refused, Siderea stops there, says which step it was, and keeps the steps before it. A parameter that a step has no saved value for, because it was added after you saved the project, takes its default. A saved value that no longer fits its parameter (another kind of value, or a menu choice that does not exist any more) is not guessed: Siderea rejects that step and names the parameter. Values for parameters that no longer exist are ignored.
- A project saved by a newer version of Siderea cannot be opened; Siderea says so instead of guessing.
The undo history of an edit is not part of the project: after opening, the steps appear as history again and can be undone one by one.
Sessions
File → Save Session… saves every image window at once: where it is on the canvas, its size and state (minimized, rolled up, maximized), its zoom and position, and an edit project that rebuilds its image. File → Open Session… (or dropping the folder onto the canvas) adds those windows to the canvas; windows that are already open stay. A session is a folder named <name>.sidereasession, which Finder shows as one file, with one edit project folder per window inside.
- Everything said about edit projects holds for each window: files are not copied, a finished stack is stored as a FITS copy inside the folder, and the steps are applied again when you open the session.
- If one window cannot be restored, for example because its original file is gone, Siderea restores the others and lists the problems in one message.
- A session saved by a newer version of Siderea cannot be opened; Siderea says so instead of guessing.
Master frames
A master frame is a FITS file that Siderea marks with MASTER = T. Besides the usual capture keywords (IMAGETYP, EXPTIME, GAIN, CCD-TEMP, FILTER, BAYERPAT; CCD-TEMP is the mean of the frames it was built from) its header holds NCOMBINE (the number of frames it was built from), DATE (when it was built, UTC), INSTRUME (the camera, taken from the frames) and, for a dark with the bias removed, BIASSUB = T. A master built from camera RAW frames also has TIMESYS = 'LOCAL': its DATE-OBS is the time on the camera's clock, which carries no zone, kept as the frames wrote it, and Siderea reads its night in UTC instead of the project's time zone. A master without the card has a UTC DATE-OBS, like every FITS file. The master library reads exactly these from the header and never the pixels. It keeps a copy of each master as FITS, plus a small index.json next to the copies. If the index is damaged or a copy was added or deleted by hand, Siderea repairs it from the FITS headers; only the names you gave the masters are lost then. A library saved by a newer version of Siderea is only read and never changed: the masters are listed from their headers, but adding, renaming and removing are refused.
Exporting
Step 7 Export writes the image of the active window; the settings are described in The Export step. Files go to the export folder of the project unless you choose another folder.
| Format | Bit depth | Extension | Use it for |
|---|---|---|---|
| FITS | 32-bit float | .fits | Keeping linear data exactly as it is, e.g. for other astro software. Values outside 0–1 are kept. |
| XISF | 32-bit float | .xisf | The same for PixInsight. Values outside 0–1 are kept. |
| TIFF | 32-bit float | .tif | Continuing in another program without losing much precision. Values are limited to 0–1. |
| TIFF | 16-bit | .tif | Printing and further work on a finished, stretched image. |
| PNG | 16-bit | .png | Sharing a finished, stretched image without loss. |
| JPEG | 8-bit | .jpg | Sharing on the web and in messages; small files, quality 50–100 %. |
With Stretch: Linear the pixel data is written as it is. A linear image looks almost black in other programs, so the formats made for viewing (16-bit TIFF, PNG, JPEG) start with As displayed, which writes the picture as the canvas shows it. The size can be reduced to a long edge in pixels; FITS and XISF files written from a reduced image hold the averaged pixels, not the original data.