Как я могу получить проекционные координаты, а также фактические значения пикселей в этих координатах из файла GeoTiff, а затем сохранить их в массив массивов? У меня есть файл arsenci020l.tif, и его координаты указаны в метрах. Ниже приведен сокращенный вывод gdalinfo, на котором я работал.
~$ gdalinfo arsenci020l.tif
Driver: GTiff/GeoTIFF
Files: arsenci020l.tif
arsenci020l.tfw
Size is 10366, 7273
Coordinate System is:
PROJCS["Lambert Azimuthal Equal Area projection with arbitrary plane grid; projection center 100.0 degrees W, 45.0 degrees N",
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433],
AUTHORITY["EPSG","4326"]],
PROJECTION["Lambert_Azimuthal_Equal_Area"],
PARAMETER["latitude_of_center",45],
PARAMETER["longitude_of_center",-100],
PARAMETER["false_easting",0],
PARAMETER["false_northing",0],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]]]
Origin = (-6086629.000000000000000,4488761.000000000000000)
Pixel Size = (1000.000000000000000,-1000.000000000000000)
...
Здесь был похожий вопрос о получении координат широты и долготы из tiff (получить широту и долготу из файла GeoTIFF), и в ответе было показано, как получить только координаты верхнего и левого пикселей x и y. Мне нужно получить ВСЕ спроецированные координаты пикселей, а также получить значения пикселей и сохранить их в массиве. Как мне это сделать?
python
gdal
geotiff-tiff
numpy
irakhman
источник
источник
Ответы:
добавил бы в качестве комментария, но немного длиннее - в случае, если вы хотите использовать gdal / ogr в Python - что-то подобное может сработать (взломано вместе из некоторого другого кода, который я имел - не проверял!) Это также предполагает, что вместо поиска ближайшего растровый пиксель для центроида многоугольника, вы просто запрашиваете растр в точке xy центроида. я понятия не имею, каким может быть компромисс между скоростью ...
источник
Это должно помочь вам. Значения растра считываются с использованием растерио , а координаты центра пикселей преобразуются в восточные / северные с помощью аффинного преобразования, которые затем преобразуются в широту / долготу с помощью pyproj . Большинство массивов имеют ту же форму, что и входной растр.
источник
affine
это просто псевдоним дляtransform
, и псевдоним был удален из самой последней версии растерио. Я отредактировал ответ, но, похоже, его нужно рецензировать, так как я здесь новичок. :)A.shape
, который имеет только два измерения.