GDAL Sentinel1-GRD Geoprojection/GeoTransformation is missing

Hi Everyone,
As any other raster data, one can read S1 .tiff products using gdal module as:

ds =gdal.Open(file_name.tiff)

It should then be able to get two crucial sets of information regarding “Geo-projection” and “Geo-transformation” using:

geoproj = ds.GetProjection()
geotransform = ds.GetGeoTransform()

I tried it with Sentinel-2 products being read with Python/gdal and it provides you the relevant information. However absolutely nothing will be achieved when you do it with Sentinel-1 data.
I also tried to find such information within the .xml files inside the “annotation” folder which comes with each Sentinel-1 .SAFE product. So far nothing is achieved. I wonder if this lack of information regarding “Transformation” and “Projection” could be linked to the fact that these S-1 tiles are Ground Range Detected and therefore the information regarding transformation/projection must be calculated from other existing parameters? If yes, how?

I would appreciate any hint in this respect.
With regards,

GRD is not projected, because it is in ground range geometry (the .tiff in the SAFE set is not a GeoTIFF). You need to first apply terrain correction to project and create a GeoTIFF, which will then have the geometry information embedded in the relevant TIFF tags (which recognises).


Thank you very much for these clarifying comments. I wonder if you are aware of any open source terrain correction procedure other than the one in SNAP? I want to include it in a preprocessing step of my workflow and I want to be independent from using SNAP.

You can try for example S1-Tiling by Cesbio or ASF MapReady. There are probably other options too.

1 Like

Thank you very much Glemoine and Mengdahl. Thanks to your comments and suggestions I am getting a more clear picture of SAR image acquisition and SAR geometry.

Best regards,

please have a look at this tutorial on how to use BEAM DIMAP data directly instead of converting to GeoTiff: Export of products from SNAP

Maybe this solves your problem already?

1 Like