Преобразование XY-кодов Geotiff в NumPy позиции массива в Python
У меня есть файл geotiff, который я прочитал в массив Numpy, как описано в ссылке ниже:
Работа с TIFF (импорт, экспорт) в Python с использованием numpy
Размер массива Geotiff, который у меня есть, (465 465), и я получил метаданные файла, используя gdalinfo, и он использует WGS84 в качестве CRS.
Что я хотел бы сделать с файлом, так это перевести координаты x y lat lon, которые я вижу в QGIS и Gdalinfo, в фактические положения точек в импортированном массиве numpy, как мне поступить?
1 ответ
Вам нужно использовать геотрансформацию, из открытого набора данных GDAL вы можете получить его:
gt = ds.GetGeoTransform()
Из документации GDAL:
Аффинное преобразование состоит из шести коэффициентов, возвращаемых функцией GDALDataset::GetGeoTransform(), которые отображают пиксельные / линейные координаты в пространство с пространственной привязкой, используя следующие отношения:
Xgeo = GT(0) + Xpixel*GT(1) + Yline*GT(2) Ygeo = GT(3) + Xpixel*GT(4) + Yline*GT(5)
Если ваш растр не повернут, это довольно просто, просто вычтите происхождение и разделите на разрешение.
Есть несколько библиотек, которые могут выполнять такое аффинное преобразование, например, метко названная "аффинная" библиотека. Подробное объяснение его использования можно найти по адресу: