Вам необходимо преобразовать координаты в другую проекцию, с помощью GDAL это можно сделать с помощью модуля osr
.
Важно знать, что с GDAL 3 и выше порядок координат зависит от проекции. В приведенном ниже примере показано, как вы можете получить «старое» поведение (всегда x, y), но это, конечно, зависит от вашего варианта использования. Удалите эти строки, если вы этого не хотите.
Получите свойства из набора данных
wkt_srs = ds.GetProjection()
gt = ds.GetGeoTransform()
xs = ds.RasterXSize
ys = ds.RasterYSize
Преобразуйте геотрансформатор в угловые координаты:
ulx, uly = gdal.ApplyGeoTransform(gt, 0, 0)
lrx, lry = gdal.ApplyGeoTransform(gt, xs, ys)
Установить вверх объекта преобразования:
src_srs = gdal.osr.SpatialReference()
src_srs.ImportFromWkt(wkt_srs)
tar_srs = gdal.osr.SpatialReference()
tar_srs.ImportFromEPSG(4326)
# with recent versions of GDAL the axis order (x,y vs y,x) depends
# on the projection. Force "x,y" with:
src_srs.SetAxisMappingStrategy(gdal.osr.OAMS_TRADITIONAL_GIS_ORDER)
tar_srs.SetAxisMappingStrategy(gdal.osr.OAMS_TRADITIONAL_GIS_ORDER)
ct = gdal.osr.CoordinateTransformation(src_srs, tar_srs)
Преобразование координат:
ulx_deg, uly_deg = ct.TransformPoint(ulx, uly)
lrx_deg, lry_deg = ct.TransformPoint(lrx, lry)