Add option to terrain correction to use a standard grid across images


Valgur pull request:
I have been using SNAP heavily to preprocess stacks of full-scene GRDs and I have been doing this without any further coregistration, since the geolocation accuracy without has been good enough for me. The lack of coregistration creates a minor problem though: every image has a grid that is slight offset from all others. If they were aligned then creating a spatial subset from a stack would become a straightforward cropping operation. It's possible to resample all of them to a single grid using GDAL, for example, but I would prefer to solve this issue right inside SNAP, if possible.
Since my question on the STEP forum regarding this issue did not receive a response, I thought I might as well add this feature myself.

I added three parameters to RangeDopplerGeocodingOp and SARSimTerrainCorrectionOp: alignToStandardGrid, standardGridOriginX and standardGridOriginY. These specify whether to adjust the origin of the image grid to be aligned with a standard grid (defaults to false) and with what point (in the target CRS) should the grid align with (defaults to 0,0). I scanned the list of operations available in SNAP and found that only these two (or three, if you count Ellipsoid-Correction-RD) can make use of this feature (i.e., Reproject takes an absolute easting and northing value as an input and Ellipsoid-Correction-GG determines the pixel spacing automatically and does not allow it to be set).
This functionality is essentially the same as the -tap parameter in gdalwarp, by the way. Besides GDAL, there does not seem to be any good, established term for this shared grid as far as I can tell from, so I simply chose to call it a "standard grid".

I also did some testing to make sure everything works correctly. I ran a Read→Subset→Terrain-Correction→Write graph with two different, slightly offset subset polygons.
Here is the result

without aligning the grids: 1, 2 and
with the grids aligned: 1, 2.




Luis Veci


Luis Veci

Fix versions




Affects versions