Je suis nouveau au SIG.
J'ai un code qui convertit les images infrarouges de Mars en cartes d'inertie thermique, qui sont ensuite stockées sous forme de tableaux numpy 2D. J'ai enregistré ces cartes en tant que fichiers hdf5 mais j'aimerais vraiment les enregistrer en tant qu'images raster afin de pouvoir les traiter dans QGIS. J'ai parcouru plusieurs recherches pour trouver comment le faire, mais sans succès. J'ai essayé de suivre les instructions du didacticiel à http://www.gis.usu.edu/~chrisg/python/ mais les fichiers que je produis en utilisant son exemple de code s'ouvrent sous forme de cases grises lorsque je les importe dans QGIS. J'ai l'impression que si quelqu'un pouvait suggérer la procédure la plus simple possible à un exemple simplifié de ce que j'aimerais faire, je pourrais peut-être progresser. J'ai QGIS et GDAL, je serais très heureux d'installer d'autres frameworks que n'importe qui pourrait recommander. J'utilise Mac OS 10.7.
Donc, par exemple, si j'ai un tableau numpy d'inertie thermique qui ressemble à:
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) )
Et pour chaque pixel j'ai la latitude et la longitude:
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) )
Quelle procédure les gens recommandent-ils pour convertir ces données en un fichier raster que je peux ouvrir dans QGIS?
Réponses:
Une solution possible à votre problème: convertissez-le en un raster ASCII, dont la documentation est ici . Cela devrait être assez facile à faire avec python.
Donc, avec vos données d'exemple ci-dessus, vous vous retrouveriez avec ce qui suit dans un fichier .asc:
Cela s'ajoute avec succès à QGIS et ArcGIS, et stylisé dans ArcGIS, il ressemble à ceci:
Addendum: Bien que vous puissiez l'ajouter à QGIS comme indiqué, si vous essayez d'aller dans ses propriétés (pour le styliser), QGIS 1.8.0 se bloque. Je suis sur le point de signaler cela comme un bug. Si cela vous arrive aussi, il existe de nombreux autres SIG gratuits.
la source
Voici un exemple que j'ai écrit pour un atelier qui utilise les modules Python numpy et gdal. Il lit les données d'un fichier .tif dans un tableau numpy, reclasse les valeurs du tableau, puis les réécrit dans un fichier .tif.
D'après votre explication, il semble que vous ayez réussi à écrire un fichier valide, mais il vous suffit de le symboliser dans QGIS. Si je me souviens bien, lorsque vous ajoutez un raster pour la première fois, il affiche souvent toutes une couleur si vous n'avez pas de carte de couleurs préexistante.
la source
outDs = None
pour le sauverJ'ai finalement trouvé cette solution, que j'ai tirée de cette discussion ( http://osgeo-org.1560.n6.nabble.com/gdal-dev-numpy-array-to-raster-td4354924.html ). Je l'aime parce que je peux passer directement d'un tableau numpy à un fichier raster tif. Je serais très reconnaissant pour les commentaires qui pourraient améliorer la solution. Je le posterai ici au cas où quelqu'un d'autre chercherait une réponse similaire.
la source
Il y a aussi une belle solution dans le livre de recettes officiel GDAL / OGR pour Python.
la source
Une alternative à l'approche suggérée dans les autres réponses est d'utiliser le
rasterio
package. J'ai eu des problèmes pour les générergdal
et j'ai trouvé ce site utile.En supposant que vous avez un autre fichier tif (
other_file.tif
) et un tableau numpy (numpy_array
) qui ont la même résolution et l'étendue que ce fichier, c'est l'approche qui a fonctionné pour moi:la source