Range Errors between granules in S1-GRD captures

I confirm that the height model considered in GRD is very coarse. However, the “coarsiness” of this DEM does not explain the issue experienced here. Even a very coarse DEM should place the sea level close to geoid level, and on the two images pointed by @ferretnt around 40% estimation is over sea. One would expect the location of the GCP provided over ocean to be good enough for points close to sea level. And this is in fact the case here (as confirmed by @ferretnt )

The main difference between the two images is that the two GRD slices are not fully aligned in azimuth due to variations of acquisition plan during the two acquisitions.

First image

Second image (significantly longer)

The issue is here mostly related to the way GDAL is by default warping the image using the tie points provided in the product. It performs an interpolation of the lat/lon position of each pixel of the image.

The culprit is here the way this interpolation is performed by GDAL *by default*, not even forcing that the interpolation is matching the lat/lon vs row/line provided in the list tie points (!!). Then slightly different slicing of GRD products will lead to different way of performing this interpolation and hence different results of wraping.

Considering the “Thin Plate Spline” option of GDAL Wrap you will get much better results.

See below a color composite of the two images (one colored in blue, the other in red with transparency) once wraped with Thin Plate Spline option, illustrating a proper geographic matching for the two GRD products.

Those two products with a different spatial coverage just allow to pinpoint that GDAL wrap needs to be used with caution and with the proper options. Once done, depending on your application, the flatness of your area of interest and your target geometric accuracy, a complete orthorectification is not necessarily required.