isce-framework / isce-framework/isce3
`attitudeType` is always set to "Custom"
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 239
- Forks
- 90
- Avg merge
- 13d 1h
- Merged PRs (30d)
- 5
Description
Originally reported by @gmgunter on March 17, 2025: https://github-fn.jpl.nasa.gov/isce-3/isce/issues/2170
Summary
attitudeType metadata is always set to "Custom".
Products Impacted: All L1, All L2, and STATIC
Causes (2.5 causes)
Cause 1 -- Incorrect Input Pointing Files
Here is the relevant description from the SIS for the pointing files:
@bhawkins grabbed a random NRP, and saw:
<fileClass>Custom</fileClass>
<fileType>NRP</fileType>
@jplzhan grabbed a PRP, and it claimed to be a FRP:
<fileClass>Custom</fileClass>
<fileType>FRP</fileType>
Per @bhawkins D&C will need to fix the pointing XML products.
Cause 2 - Hardcoded values in both focus.py and static.py
RSLC: Hardcoded in focus.py
Copy-paste from https://github-fn.jpl.nasa.gov/isce-3/isce/issues/2170 , with updated links:
A thing I noticed while shamelessly stealing @bhawkins's code to use in static layers--
The SLC writer class's set_attitude() method takes an attitude type string as an optional input, defaulting to "Custom". This is used to populate the metadata/attitude/attitudeType dataset in the RSLC product.
When writing output RSLC products in focus.py, we don't override the default attitude type, so it's always set to "Custom".
STATIC: Hardcoded in static.py
GSLC, GCOV, InSAR: Inherited from input RSLC HDF5
These workflows copy the attitudeType from the input RSLC. Once focus.py is updated, then the downstream products will automatically populate their products with the correct value.
Action Items
- D&C to correctly populate the pointing XML files
- ADT to fix
focus.py - ADT to fix
static.py
cc: @hfattahi @bhawkins @gshiroma @jplzhan @Tyler-g-hudson
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 by reading the SLC.set_attitude() implementation and the referenced locations in python/packages/nisar/workflows/focus.py and python/packages/nisar/static/product.py. Check how the input pointing XML fileClass and fileType values map to attitudeType, then verify that RSLC and STATIC products no longer use the hardcoded "Custom" value and that downstream products inherit the corrected RSLC metadata.
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
- 48/100