Closed fastice closed 1 month ago
Thank you so much, @fastice , for reporting this.
In your notebook, you are utilizing the zero-Doppler azimuth time zeroDopplerPt
to interpolate the orbit and retrieve the platform position. While this method provides an approximation of the platform position, in order to get the actual platform position, we must employ the "native Doppler". In ISCE3, this is done here. Please note that while NISAR L1 products are represented over the zero-Doppler grid, focused sample of that grid may have been acquired with a "squint angle".
These are the steps we perform to compute the getGeolocationGrid cubes for L1 products:
getGeolocationGrid()
providing both the Doppler grid (zero-Doppler) look-up table (LUT) grid_doppler
and native-Doppler LUT native_doppler
.rdr2geo()
and the zero-Doppler look-up table (LUT) (code here).geo2rdr()
here with the native Doppler LUT to determine the actual azimuth time native_azimuth_time
corresponding to the target observation.I believe this would explain the discrepancy between your results and the geolocationGrid
cubes saved within the RUNW
. Please, let us know if you have any thoughts or questions. Thanks again.
Metadata cubes of L1 products are created using the zero-Doppler grid, but with radar geometry parameters (e.g., incidence or elevation angle) calculated based on the actual platform position (i.e., accounting for the squint angle). This explains why the geometry values from @fastice's notebook diverge from those stored in the RUNW product.
This notebook documents what I think is an error in the way the elevation/incidence angles are computed in the RUNW products.
https://github.com/fastice/nisarTestNotebooks/blob/main/LocationGridTest.ipynb
I get similar results when I also run it on one of the Antarctic Frames. Seem summary in notebook for more detail.