On mercredi 12 septembre 2018 01:48:34 CEST krikr42 wrote: > Hi, > > I have two tiff images, of which the first one is a GeoTIFF image and the > second is a tiff image created from the first one by opening it with pyvips > in Python, modifying it (blurring it) and saving it as a new file (so I > don't know whether the second image counts as a GeoTIFF file). However, the > second image lacks a lot of metadata that exists in the first image which I > need, such as the coordinate system and corner coordinates. > > How can I read this metadata from the first file with GDAL (in Python, > although I guess the C++ API is pretty similar)? I have already tried > loading the file as a GDAL dataset using gdal.Open > <https://gdal.org/python/osgeo.gdal-module.html> and reading the data with > the GetMetadata > <https://www.gdal.org/classGDALMajorObject.html#a8ce3bf5795bbebfe9bc643e2152 > bb360> method, and I have looked in the domains > <https://www.gdal.org/gdal_datamodel.html> 'SUBDATASETS', > 'IMAGE_STRUCTURE', 'RPC', 'IMAGERY' as well as the default domain, but none > of those contain the information about the coordinate system or the > coordinates. There are supposedly also xml: domains, and I'm wondering > whether the data I'm looking for may be under an xml domain, but I don't > know what the name of that domain would be, and I can't find any way to list > available domains (is there any? Because that would be great). > > So, how can I read the metadata specifying the coordinate system and corner > coordinates from the first file and write it to the other? If I can read it > with GetMetadata, I suppose I will also be able to write it with > SetMetadata > <https://www.gdal.org/classGDALMajorObject.html#a61ab7226d95b20e3e1f42461a1f > 62906> (I was able to do that for the domains listed above). > > I have also tried to transfer the information by reading it with the command > line tool gdalinfo and writing it with gdal_translate, but that fails as 1) > I don't know how to write all the relevant metadata with gdal_translate and > 2) the metadata that I try to write isn't successfully written as the > coordinate system information – which looks to be JSON-formatted – ends up > with a different JSON-tag in the root element and with some elements > missing.
You need to use SetGeoTransform() / GetGeoTransform() and SetProjection() / GetProjectionRef() to transfer georeferencing information. Overall presentation at https://gdal.org/gdal_datamodel.html -- Spatialys - Geospatial professional services http://www.spatialys.com _______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/gdal-dev