Je me bats avec un traitement et j'espère que je serai en mesure de résoudre ici.
Je travaille avec la télédétection appliquée à la foresterie, en particulier avec les données LiDAR. L'idée est d'utiliser Scikit-image pour la détection du sommet des arbres. Depuis que je suis nouveau en Python, j'ai considéré un grand triomphe personnel pour faire ce qui suit:
- Importez un CHM (avec matplotlib);
- Exécutez un filtre gaussien (avec le package scikit-image);
- Exécutez un filtre maxima (avec le package scikit-image);
- Exécutez peak_local_max (avec le package scikit-image);
- Montrer le CHM avec les maxima locaux (avec matplotlib);
Maintenant mon problème. Lorsque j'importe avec matplot, l'image perd ses coordonnées géographiques. Ainsi, les coordonnées que j'ai ne sont que des coordonnées d'image de base (par exemple 250 312). Ce dont j'ai besoin, c'est d'obtenir la valeur du pixel sous le point de maxima local dans l'image (points rouges dans l'image). Ici, dans le forum, j'ai vu un gars demander la même chose ( obtenir la valeur en pixels du raster GDAL sous le point OGR sans NumPy? ), Mais il avait déjà les points dans un fichier de formes. Dans mon cas, les points ont été calculés avec scikit-image (c'est un tableau avec les coordonnées de chaque sommet d'arbre). Je n'ai donc pas le fichier de formes.
En conclusion, ce que je veux à la fin, c'est un fichier txt avec les coordonnées de chaque maximum local en coordonnées géographiques, par exemple:
525412 62980123 1150 ...
la source
D'un rapide coup d'œil à matplotlib, je dirais que vous devez modifier les échelles des axes après l'importation.
la source
Veuillez essayer avec le morceau de code suivant. Cela peut être utilisé pour lire les données d'image du raster et écrire les données traitées dans le raster (fichier .geotiff).
la source