sarpy icon indicating copy to clipboard operation
sarpy copied to clipboard

Improved mapping of SICD polarizations to SIDD polarizations

Open bombaci-vsc opened this issue 1 year ago • 0 comments

The SIDD types have a TxrcvPolarizationType.from_sicd_value() method which is responsible for mapping a SICD TxRcvPolarization value into separate SIDD Tx and Rcv values.

This mapping is not trivial. Each SIDD version supports a different list of valid values, and SICD has the concept of singular OTHER and UNKONWN values.

SICD v1.4 SIDD v1 SIDD v2 SIDD v3
image image image image

For the cases where SICD provides both a transmit and receive polarization, I believe the mapping for each polarization should be:

SICD v1.4 SIDD v1 SIDD v2 SIDD v3
V V V V
H H H H
X OTHER OTHER X
Y OTHER OTHER Y
S OTHER OTHER S
E OTHER OTHER E
RHC RHC RHC RHC
LHC LHC LHC LHC
OTHER* OTHER OTHER OTHER*

Then for the two sentinel values:

SICD v1.4 SIDD v1 SIDD v2 SIDD v3
OTHER OTHER OTHER OTHER
UNKNOWN OTHER UNKNOWN UNKNOWN

I've also fixed some bugs caused by the SIDD1 code reusing SIDD2, which would sometimes set the polarizations to "UNKNOWN" even though that isn't a valid value for SIDD v1.

bombaci-vsc avatar Aug 23 '24 21:08 bombaci-vsc