Skip to content

Support new corner reflector CSV format#176

Merged
bhawkins merged 13 commits intoisce-framework:developfrom
bhawkins:square_corners
Mar 9, 2026
Merged

Support new corner reflector CSV format#176
bhawkins merged 13 commits intoisce-framework:developfrom
bhawkins:square_corners

Conversation

@bhawkins
Copy link
Copy Markdown
Contributor

@bhawkins bhawkins commented Nov 4, 2025

NASA and ISRO data processing teams agreed to some updates to the corner reflector CSV file specification. In particular, we added some validity codes to distinguish LSAR and SSAR usage, and we added a "Shape" column to distinguish triangular and square trihedrals. This PR implements support for these new features while retaining backwards compatibility.

When I went to implement the formula for a square trihedral (GO model), I was surprised that the one we have for triangular trihedrals didn't look quite right. All I can figure is that somebody misunderstood what was meant by "direction cosines" in the references. We ended up with the correct RCS for the region near the boresight, but the other branch in the formula was wrong. It's especially surprising because I could've sworn this came up earlier and Geoff had fixed it, but I guess not. Anyway, here are plots of the trihedral RCS vs angle before and after the fix in this PR (lines are contours at 3 dB intervals):

rcs_models

I added unit tests that check the boresight RCS against the simple formulas, and I added a unit test that verifies that a cut through the pattern is continuous. I also manually ran nisarqa on an RSLC image that I'd run before and verified that I got the same abscal factor.

Copy link
Copy Markdown
Contributor

@Tyler-g-hudson Tyler-g-hudson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Having read over all of this, it's hard to find fault with anything - LGTM!



# There's a branch in the RCS vs angle model, so make sure the RCS is continuous

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change

@hfattahi hfattahi modified the milestones: R05.01.0, R05.00.8 Jan 12, 2026
@hfattahi hfattahi added this to the R05.01.2 milestone Mar 5, 2026
@bhawkins
Copy link
Copy Markdown
Contributor Author

bhawkins commented Mar 5, 2026

Need to add test file description to README file

Copy link
Copy Markdown
Contributor

@rad-eng-59 rad-eng-59 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thank you for the fix, update, and comprehensive test.


import isce3

class CRShape(str, Enum):
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI, if necessary, in order to make the enum case insensitive (str.casefold()) to the string inputs, one can update __missing__ classmethod in Enum as shown here

Copy link
Copy Markdown
Contributor

@hfattahi hfattahi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. We reviewed in a PR review session. Thanks @bhawkins !

@bhawkins bhawkins merged commit 0df58be into isce-framework:develop Mar 9, 2026
7 of 8 checks passed
Tyler-g-hudson pushed a commit that referenced this pull request Mar 10, 2026
* wip support square trihedrals and new format

* Move CR model into a separate function for easier testing

* Remove "triangular" from names in isce3

* Remove "LSAR" from flags for easier refactor and support "Shape" column in CSV.

* check peak RCS value in unit test

* Add RCS continuity check

* Add new format CSV unit test. Fix capitalization.

* Generalize abscal workflow to square trihedrals

* Generalize PTA to square trihedrals

* Update some comments

* Add a note about the new .csv test file.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants