[GDAL] Lecture d'un fichier raster .adf aigrid
Bonjour à tous,
Je continue à travailler sur mon script où j'ai maintenant un problème assez particulier et je n'ai pas réussi à trouver de réponse sur le net.
Je dispose en fait de fichier de type raster Arc Info Binary grid (fichier adf)
Je recherche à lire les altitudes des points de ce fichier.
(en travaillant sur ArcGis pas de soucis, elle est correctement géoréférencée, lecture ok aussi)
Le soucis, c'est que je n'arrive pas à utiliser la bibliothèque gdal pour lire les attributs de chaque pixel. En fait, je bute comme dans le message ci-dessous :
http://lists.maptools.org/pipermail/...il/001207.html
J'ai donc testé des drivers comme aigrid.py mais qui me renvoyait vers des erreurs encore plus incompréhensible. Je me suis arrêté là avec aigrid.py, pourtant très prometteur. :cry:
mon script :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
IDLE 2.6
>>> import os
>>> import gdal
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
import gdal
File "C:\Python26\Lib\site-packages\gdal.py", line 3, in <module>
deprecation_warn('gdal')
File "C:\Python26\Lib\site-packages\osgeo\gdal.py", line 89, in deprecation_warn
DeprecationWarning)
File "C:\Python26\lib\warnings.py", line 29, in _show_warning
file.write(formatwarning(message, category, filename, lineno, line))
TypeError: idle_formatwarning_subproc() takes exactly 4 arguments (5 given)
>>> import gdal
>>> from gdalconst import *
>>> raster=gdal.Open('C:\Documents and Settings\xixix\Bureau\Developpement\xixix\w001001x.adf')
>>> rasterdriver=raster.GetDriver().ShortName
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
rasterdriver=raster.GetDriver().ShortName
AttributeError: 'NoneType' object has no attribute 'GetDriver' |
La première erreur, je ne sais pas trop d'où elle vient mais en important une deuxième fois, je n'ai pas de message d'erreur.
Mais la deuxième erreur, c'est vraiment le grand mistère. Bon en clair, je suis perdu !
En tuto, je me suis servit de ressource sur GDAL.ORG : http://www.gdal.org/gdal_tutorial.html
Je ne connais pas forcément bien la façon dont on peut lire le raster (plusieurs fichiers adf ect comme décliné dans le premier url), mais j'avais donc plusieurs questions:
1 - Est ce que vous avez déjà vu la première erreur ? Et comment passer outre ?
2 - Est ce qu'il existe des lecteurs annexes à gdal pour les fichiers raster ?
3 - Quel sont les format de fichier raster les plus facile à manipuler pour en lire les altitudes (value) ?
4 - Est ce que j'ai rien compris aux classes et aux fonctions de python ?
Merci d'avance...
Etienne
[GDAL] lecture d'un fichier adf
J'ai trouvé la solution à mon problème :
Le fichier adf (ou le pack fichier) était dans un dossier (ici nommé raster_ign : dans mon script c'est "xixix").
En fait, en faisant os.chdir(mon repertoire de travail jusqu'à raster_ign), j'ai eu une erreur windows32 me faisant part que l'adresse n'existait pas.
En clair, le dossier contenant mes fichiers raster n'est pas considéré comme un dossier "commun". En copiant l'ensemble de mes fichiers raster en dehors de mon dossier raster_ign, je réussi à lire tranquillement le fichier adf... :D
mon code :
Code:
1 2 3 4 5 6
|
>>> os.chdir('C:\Documents and Settings\xixix\Bureau\Developpement') #répertoire ou j'ai sorti mes fichiers
>>> raster=gdal.Open('w001001.adf')
>>> rasterx=raster.RasterXSize
>>> print rasterx
9560 |
Bon voilà, si ça peut servir à certain.
Je suis toujours ouvert à des réponses par rapport à la lecture de ce fichier si quelqu'un à déjà fait la manip car je suis novice avec python. (Ca se voit :D )