Comment puis-je obtenir les coordonnées projetées ainsi que les valeurs réelles des pixels à ces coordonnées à partir d'un fichier GeoTiff, puis les enregistrer dans un tableau numpy? J'ai le fichier arsenci020l.tif, et ses coordonnées sont en mètres. Voici la sortie abrégée de gdalinfo que j'ai exécutée dessus.
~$ 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)
...
Il y avait une question similaire ici concernant l'obtention de coordonnées lat / long à partir de tiff (obtenir la latitude et la longitude à partir d'un fichier GeoTIFF) et la réponse a montré comment obtenir uniquement les coordonnées des pixels x et y en haut à gauche. J'ai besoin d'obtenir TOUTES les coordonnées des pixels projetés ainsi que d'obtenir les valeurs des pixels et de les enregistrer dans un tableau numpy. Comment puis-je le faire?
la source
Réponses:
ajouterait comme commentaire, mais un peu long - au cas où vous voudriez utiliser gdal / ogr dans python - quelque chose comme ça pourrait fonctionner (piraté ensemble à partir d'un autre code que j'avais - non testé!) Cela suppose également que plutôt que de trouver le plus proche pixel raster à un polygone centroïde, vous interrogez simplement le raster au xy du centroïde. je n'ai aucune idée de ce que le compromis de vitesse pourrait être ...
la source
Cela devrait vous permettre de continuer. Les valeurs raster sont lues à l'aide de rasterio et les coordonnées du centre des pixels sont converties en abscisses / ordonnées en utilisant affine , qui sont ensuite converties en latitude / longitude en utilisant pyproj . La plupart des tableaux ont la même forme que le raster en entrée.
la source
affine
n'est qu'un alias pourtransform
, et l'alias a été supprimé de la version la plus récente de rasterio. J'ai édité la réponse, mais il semble qu'elle doive être évaluée par des pairs puisque je suis nouveau ici. :)A.shape
, ce qui n'a que deux dimensions.