Como posso obter coordenadas projetadas e os valores reais de pixel nessas coordenadas de um arquivo GeoTiff e salvá-los em uma matriz numpy? Eu tenho o arquivo arsenci020l.tif e suas coordenadas estão em metros. Abaixo está a saída abreviada do gdalinfo que eu executei nele.
~$ 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)
...
Havia uma pergunta semelhante aqui sobre a obtenção de coordenadas lat / long a partir de tiff (obter latitude e longitude de um arquivo GeoTIFF) e a resposta mostrou como obter apenas as coordenadas x e y pixel superiores à esquerda. Preciso obter TODAS as coordenadas de pixel projetadas, além de obter os valores de pixel e salvá-los em uma matriz numpy. Como eu posso fazer isso?
python
gdal
geotiff-tiff
numpy
irakhman
fonte
fonte
Respostas:
adicionaria como comentário, mas um pouco longo - caso você queira usar o gdal / ogr no python - algo como isso pode funcionar (hackeado de algum outro código que eu tinha - não testado!) Isso também pressupõe que, em vez de encontrar o mais próximo pixel de varredura para um centróide de polígono, basta consultá-lo no xy do centróide. Eu não tenho idéia do que pode ser a troca de velocidade ...
fonte
Isso deve fazer você ir. Os valores da varredura são lidos usando rasterio , e as coordenadas do centro de pixel são convertidas em Leste / Norte usando affine , que são convertidas em Latitude / Longitude usando pyproj . A maioria das matrizes tem o mesmo formato da varredura de entrada.
fonte
affine
é apenas um apelido paratransform
, e o apelido foi removido da versão mais recente do rasterio. Editei a resposta, mas parece que ela precisa ser revisada por pares, já que sou novo aqui. :)A.shape
, com apenas duas dimensões.