Backplane Generation
Overview
Backplanes are per-pixel geometry products (longitude, latitude, incidence angle, emission angle, phase angle, resolution, etc.) derived from a navigated image. The system reads prior navigation metadata to apply the image offset, then computes body and ring backplanes, merges them per-pixel by distance, and writes a multi-HDU FITS file along with a JSON metadata file.
Key properties:
The output FITS places
BODY_ID_MAPas the first image HDU (after the primary HDU).Backplanes that are entirely zero are omitted from the FITS file.
The list of backplanes to generate is configured under
backplanesinsrc/nav/config_files/config_90_backplanes.yaml.For simulated observations, synthetic backplanes are produced whose masks follow the simulated body shapes.
Backplane generation only writes the FITS file and the associated metadata
JSON. PDS4 labels for the backplane products are produced in a later step
by nav_create_bundle labels (see PDS4 Bundle Generation).
Command-Line Interfaces
Two drivers mirror the offset drivers:
nav_backplanes(local/CLI)nav_backplanes_cloud_tasks(Cloud Tasks)
Common flags:
--nav-results-root: Root containing prior navigation results (*_metadata.json).--backplane-results-root: Root directory for the backplane outputs.Dataset selection flags are the same as for
nav_offset(see Image Navigation).
Examples
Generate backplanes locally for a dataset:
nav_backplanes coiss_saturn \
--nav-results-root /data/nav/results \
--backplane-results-root /data/nav/backplanes \
--volumes COISS_2001 --first-image-num 1454000000 --last-image-num 1454999999
To generate a cloud-tasks JSON file for all selected images without actually
generating any backplanes, use --output-cloud-tasks-file:
nav_backplanes coiss_saturn \
--volumes COISS_2001 \
--output-cloud-tasks-file backplanes_tasks.json
Cloud Tasks variant (file list comes from the queue):
nav_backplanes_cloud_tasks \
--nav-results-root /data/nav/results \
--backplane-results-root /data/nav/backplanes
Cloud-tasks JSON schema
The file produced by --output-cloud-tasks-file is a JSON array of task
objects. Each task is:
{
"task_id": "<dataset_name>-<label_file_name>-<index>",
"data": {
"dataset_name": "<dataset_name>",
"files": [
{
"image_file_url": "<path or URL to image file>",
"label_file_url": "<path or URL to label file>",
"results_path_stub": "<relative stub used to name outputs>",
"index_file_row": {"<column>": "<value>", "...": "..."}
}
]
}
}
Fields:
task_id: unique string identifier built from the dataset name, the first image’s label filename, and the enumeration index.data.dataset_name: one of the supported dataset names (same value as the positional argument tonav_backplanes).data.files: one or more file descriptors. Each descriptor has required fieldsimage_file_url,label_file_url,results_path_stub, and an optionalindex_file_row(metadata from the source index file, may benull). Thenav_backplanes_cloud_tasksworker accepts no other task-level parameters; all other settings come from its own--config-file,--nav-results-root, and--backplane-results-rootCLI flags, which apply to every task the worker handles.
Configuration
Backplanes are configured under backplanes in
src/nav/config_files/config_90_backplanes.yaml:
backplanes.bodies: list of body backplane entries. Each entry hasname(the FITS HDU name),method(theoops.Backplanemethod to call), and optionalunits(written to theBUNITFITS header).backplanes.rings: list of ring backplane entries with the same structure. The specialdistanceentry is used only for per-pixel merge ordering and is not written as an HDU.
Outputs
For each processed image, nav_backplanes writes two files under
--backplane-results-root:
<results_path_stub>_backplanes.fitscontaining:A primary HDU.
BODY_ID_MAP(int32) as the first image HDU.One
ImageHDUper non-all-zero backplane array, withBUNITset when configured.
<results_path_stub>_backplane_metadata.jsoncontaining per-body inventory information and per-backplanemin/maxstatistics (consumed bynav_create_bundlewhen generating PDS4 labels).
Backplane Viewer GUI
Use the interactive GUI to inspect backplane FITS alongside the science image.
Run
nav_backplane_viewer coiss_saturn \
--nav-results-root /data/nav/results \
--backplane-results-root /data/nav/backplanes \
--volumes COISS_2001 \
--first-image-num 1454000000 --last-image-num 1454000999
Features
Image stretch: Blackpoint, whitepoint, and gamma for the grayscale science image.
Zoom and pan: Same behavior as the simulated body model UI.
Summary overlay: If
<results_path_stub>_summary.pngexists under--nav-results-root, it can be toggled on/off with an alpha control (no stretch or colormap).Backplane layers:
Lists all FITS image HDUs:
BODY_ID_MAP(int32) plus each backplane (float32).Each backplane can be toggled with a checkbox, assigned transparency 0-1, a colormap, and scaling mode (Absolute or Relative).
Relative mode computes min/max using only pixels where
BODY_ID_MAP != 0(numeric zeros are not treated specially).Absolute mode:
Longitudes: 0-360 deg; Latitudes: -90-90 deg.
Incidence/Emission/Phase: 0-180 deg.
Radius: 0 to observed max.
Resolution and others: observed min-max.
Live readout: Shows the science image value at the cursor and, for each backplane row, the current value at the cursor (angles are converted from radians to degrees when applicable).
Notes
Units: Angular FITS HDUs with
BUNIT=radare converted to degrees for display and absolute scaling. Heuristics are used for common angle names if units are missing.Masking: Backplane visualizations use
BODY_ID_MAP != 0to determine valid pixels for relative scaling; numeric zeros are not treated as masked unless indicated by the body map.