¿Cómo puedo obtener las coordenadas proyectadas, así como los valores de píxeles reales en esas coordenadas de un archivo GeoTiff y luego guardarlos en una matriz numpy? Tengo el archivo arsenci020l.tif, y sus coordenadas están en metros. A continuación se muestra la salida resumida de gdalinfo que ejecuté en él.
~$ 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)
...
Hubo una pregunta similar aquí sobre la obtención de coordenadas lat / long de tiff (Obtener Latitud y Longitud de un Archivo GeoTIFF) y la respuesta mostró cómo obtener solo las coordenadas de píxel x e y superior izquierda. Necesito obtener TODAS las coordenadas de píxel proyectadas, así como obtener los valores de píxel y guardarlos en una matriz numpy. ¿Cómo puedo hacerlo?
python
gdal
geotiff-tiff
numpy
irakhman
fuente
fuente
Respuestas:
agregaría como comentario, pero un poco largo, en caso de que quiera usar gdal / ogr dentro de python, algo como esto podría funcionar (pirateado desde otro código que tenía, ¡no probado!) Esto también supone que en lugar de encontrar el más cercano píxel de trama a un centroide de polígono, simplemente consulta el ráster en la xy del centroide. No tengo idea de cuál sería la compensación de velocidad ...
fuente
Esto debería ponerte en marcha. Los valores ráster se leen usando rasterio , y las coordenadas del centro de píxeles se convierten en Este / Norte usando afín , que luego se convierten en Latitud / Longitud usando pyproj . La mayoría de las matrices tienen la misma forma que el ráster de entrada.
fuente
affine
es solo un alias paratransform
, y el alias se ha eliminado de la versión más reciente de rasterio. Edité la respuesta, pero parece que debe ser revisada por pares ya que soy nuevo aquí. :)A.shape
, que tiene solo dos dimensiones.