Преобразование 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)

http://www.gdal.org/gdal_datamodel.html

Если ваш растр не повернут, это довольно просто, просто вычтите происхождение и разделите на разрешение.

Есть несколько библиотек, которые могут выполнять такое аффинное преобразование, например, метко названная "аффинная" библиотека. Подробное объяснение его использования можно найти по адресу:

http://www.perrygeo.com/python-affine-transforms.html

Другие вопросы по тегам