Estoy luchando con un procesamiento y espero poder resolverlo aquí.
Trabajo con teledetección aplicada a la silvicultura, especialmente trabajando con datos LiDAR. La idea es utilizar Scikit-image para la detección de la parte superior del árbol. Como soy nuevo en Python, consideré un gran triunfo personal hacer lo siguiente:
- Importar un CHM (con matplotlib);
- Ejecute un filtro gaussiano (con el paquete scikit-image);
- Ejecute un filtro maxima (con el paquete scikit-image);
- Ejecute peak_local_max (con el paquete scikit-image);
- Muestre el CHM con los máximos locales (con matplotlib);
Ahora mi problema. Cuando importo con matplot, la imagen pierde sus coordenadas geográficas. Entonces, las coordenadas que tengo son solo coordenadas de imagen básicas (es decir, 250,312). Lo que necesito es obtener el valor del píxel debajo del punto máximo local en la imagen (puntos rojos en la imagen). Aquí en el foro vi a un chico preguntando lo mismo (¿ Obteniendo el valor de píxel del ráster GDAL bajo el punto OGR sin NumPy? ), Pero ya tenía los puntos en un archivo de forma. En mi caso, los puntos se calcularon con scikit-image (es una matriz con las coordenadas de cada parte superior del árbol). Entonces no tengo el shapefile.
En conclusión, lo que quiero al final es un archivo txt con las coordenadas de cada máximo local en coordenadas geográficas, por ejemplo:
525412 62980123 1150 ...
fuente
De un vistazo rápido a matplotlib, diría que tiene que modificar las escalas del eje después de la importación.
fuente
Por favor, intente con el siguiente código. Esto se puede usar para leer datos de imágenes de ráster y escribir datos procesados en ráster (archivo .geotiff).
fuente