isce-framework / isce-framework/isce3
(All L1/L2 products) Missing/Unpopulated dataset: `listOfObservationModes`
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 239
- Forks
- 90
- Avg merge
- 13d 1h
- Merged PRs (30d)
- 5
Description
Background
Per the product specification documents, each L1/L2 product should contain metadata in the identification group listing the observation modes used:
- RSLC/GSLC/GCOV:
/science/LSAR/identification/listOfObservationModes
- InSAR:
/science/LSAR/identification/referenceListOfObservationModes/science/LSAR/identification/secondaryListOfObservationModes
Issue
As of ISCE3 v0.25.13 (for R05.01.6 i.e. R05.02.0):
- RSLC omits this dataset
- GSLC, GCOV, and InSAR products populate this dataset with
[(NOT SPECIFIED)]
Discussion
Links to the original discussions:
- (internal) https://github-fn.jpl.nasa.gov/NISAR-ADT/NISAR_PIX/issues/278
- (internal) https://github-fn.jpl.nasa.gov/NISAR-ADT/NISAR_PIX/pull/293
nisarqa's description of the metadata format, as of Aug 2025: https://github.com/isce-framework/nisarqa/blob/9093d7fe76a16d060545eda0559f6a9d967a0987/src/nisarqa/validate/sanity_checks.py#L569-L647
Fix
Step 1) focus.py needs to be updated to generate and populate the listOfObservationModes metadata field.
Step 2) Double-check that GSLC, GCOV, and InSAR products correctly parse this metadata and populate their HDF5 files.
- My understanding is that the downstream workflows are already coded to copy this metadata. However, need to double-check.
Related Issues
This Issue has been previously documented as part of these large, multi-part Issues:
- https://github.com/isce-framework/isce3/issues/202
- https://github.com/isce-framework/isce3/issues/218
- https://github.com/isce-framework/isce3/issues/216
- https://github.com/isce-framework/isce3/issues/219
I'm in currently breaking apart those large, multi-part Issues into individual issues; this is for ease of tracking and implementation. Once that process is complete and the individual issues are active, then those multi-part issues will be closed.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in focus.py and trace how observation-mode metadata is generated for RSLC, GSLC, GCOV, and InSAR products. Review the nisarqa sanity-check description and the listed HDF5 paths, then verify whether downstream workflows copy the metadata. Done means RSLC contains the required dataset and the other products contain populated observation modes rather than [(NOT SPECIFIED)].
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100