Soy nuevo en SIG.
Tengo un código que convierte las imágenes infrarrojas de Marte en mapas de inercia térmica, que luego se almacenan como matrices numpy 2D. He guardado estos mapas como archivos hdf5, pero realmente me gustaría guardarlos como imágenes ráster para poder procesarlos en QGIS. He realizado varias búsquedas para encontrar cómo hacerlo, pero sin suerte. Intenté seguir las instrucciones del tutorial en http://www.gis.usu.edu/~chrisg/python/ pero los archivos que produzco usando su código de ejemplo se abren como cuadros grises cuando los importo a QGIS. Siento que si alguien pudiera sugerir el procedimiento más simple posible a un ejemplo simplificado de lo que me gustaría hacer, entonces podría progresar un poco. Tengo QGIS y GDAL, me encantaría instalar otros marcos que cualquiera podría recomendar. Yo uso Mac OS 10.7.
Entonces, si, por ejemplo, tengo una gran variedad de inercia térmica que se parece a:
TI = ( (0.1, 0.2, 0.3, 0.4),
(0.2, 0.3, 0.4, 0.5),
(0.3, 0.4, 0.5, 0.6),
(0.4, 0.5, 0.6, 0.7) )
Y para cada píxel tengo la latitud y longitud:
lat = ( (10.0, 10.0, 10.0, 10.0),
( 9.5, 9.5, 9.5, 9.5),
( 9.0, 9.0, 9.0, 9.0),
( 8.5, 8.5, 8.5, 8.5) )
lon = ( (20.0, 20.5, 21.0, 21.5),
(20.0, 20.5, 21.0, 21.5),
(20.0, 20.5, 21.0, 21.5),
(20.0, 20.5, 21.0, 21.5) )
¿Qué procedimiento recomendaría la gente para convertir estos datos en un archivo ráster que pueda abrir en QGIS?
Respuestas:
Una posible solución a su problema: conviértalo en un ráster ASCII, cuya documentación está aquí . Esto debería ser bastante fácil de hacer con Python.
Entonces, con sus datos de ejemplo anteriores, terminaría con lo siguiente en un archivo .asc:
Esto se agrega con éxito a QGIS y ArcGIS, y estilizado en ArcGIS se ve así:
Anexo: Si bien puede agregarlo a QGIS como se indicó, si intenta acceder a las propiedades (para estilizarlo), QGIS 1.8.0 se bloquea. Estoy a punto de reportar eso como un error. Si esto te sucede a ti también, entonces hay muchos otros SIG gratuitos disponibles.
fuente
A continuación hay un ejemplo que escribí para un taller que utiliza los módulos Python numpy y gdal. Lee datos de un archivo .tif en una matriz numpy, hace una reclasificación de los valores en la matriz y luego los vuelve a escribir en un .tif.
Según su explicación, parece que podría haber logrado escribir un archivo válido, pero solo necesita simbolizarlo en QGIS. Si no recuerdo mal, cuando agregas un ráster por primera vez, a menudo muestra todos los colores si no tienes un mapa de colores preexistente.
fuente
outDs = None
para guardarloFinalmente encontré esta solución, que obtuve de esta discusión ( http://osgeo-org.1560.n6.nabble.com/gdal-dev-numpy-array-to-raster-td4354924.html ). Me gusta porque puedo pasar directamente de una matriz numpy a un archivo ráster tif. Estaría muy agradecido por los comentarios que podrían mejorar la solución. Lo publicaré aquí en caso de que alguien más busque una respuesta similar.
fuente
También hay una buena solución en el libro de cocina oficial de GDAL / OGR para Python.
fuente
Una alternativa al enfoque sugerido en las otras respuestas es usar el
rasterio
paquete. Tuve problemas para generarlos usandogdal
y encontré que este sitio era útil.Suponiendo que tiene otro archivo tif (
other_file.tif
) y una matriz numpy (numpy_array
) que tiene la misma resolución y extensión que este archivo, este es el enfoque que funcionó para mí:fuente