#1 Mon 19 July 2010 12:53
- Denis.Degez
- Participant actif
- Lieu: Marseille
- Date d'inscription: 19 May 2008
- Messages: 51
gdaltindex et "nodata"
Bonjour je cherche a obtenir une couche vecteur (polygone) pour extraire les emprises de levés sonar.
gdaltindex me renvoie des rectangles d'emprise incluant les valeurs "nodata" dont je cherche à me débarrasser.
J'ai essayé d'utiliser "gdalcontour" en en détournant l'usage (- i 255) mais cette fonction ne retourne que des lignes ...
En bref, je cherche une solution (gdal/ogr ou Grass) qui puisse fonctionner comme un gdaltindex mais qui ne prennent pas en compte les valeurs nodata de mon image afin d'obtenir une couche vecteur de polygone qui corresponde à l'emprise pour laquelle j'ai de la donnée uniquement.
Hum ... j'espère avoir été clair ...
Merci de votre aide !
Denis
Je sers la science et c'est ma joie ...
Hors ligne
#2 Mon 19 July 2010 13:13
- jack tippit
- Participant actif
- Lieu: Limoges
- Date d'inscription: 3 Dec 2008
- Messages: 116
- Site web
Re: gdaltindex et "nodata"
Bonjour Denis
Comme ça a chaud (mais je n'ai pas testé) j'utiliserai GRASS et les commande
v.db.select tabledesobjects where="data=no data" pour voir ces données, et ensuite,
v.extract tabledesobjet out=tableobjetnull where="data=no_data"
Et enfin
v.overlay avec l'opérateur not....
(voir tuto pour overlay... http://grass.itc.it/grass57/tutorial/ve … rlay.html)
Mais il y a surement une solution plus simple...
Hors ligne
#3 Mon 19 July 2010 13:33
- Denis.Degez
- Participant actif
- Lieu: Marseille
- Date d'inscription: 19 May 2008
- Messages: 51
Re: gdaltindex et "nodata"
Merci je vais essayer ça de ce pas ... j'ai tenté également gdal_polygonize.py ... sans succès ... mauvaise utilisation sans doute .. j'y retourne.
Je sers la science et c'est ma joie ...
Hors ligne
#4 Mon 19 July 2010 13:35
Re: gdaltindex et "nodata"
Bonjour,
Grass me semble la seule solution, GDAL-OGR n'a pas la possibilité de réaliser ce que tu veux.
Autre solution avec GRASS : une classification du raster pour mettre 0 quand il n'y a pas de données et 1 quand il y en a puis vectoriser le raster reclassifié.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#5 Mon 19 July 2010 14:11
- Sylvain_M
- Membre
- Lieu: Lyon
- Date d'inscription: 3 Aug 2009
- Messages: 298
Re: gdaltindex et "nodata"
peut-être r.contour? (http://grass.osgeo.org/grass64/manuals/ … ntour.html)
"Produces a vector map of specified contours from a raster map"
Dernière modification par yarma (Mon 19 July 2010 14:12)
Hors ligne
#6 Mon 19 July 2010 22:46
- Denis.Degez
- Participant actif
- Lieu: Marseille
- Date d'inscription: 19 May 2008
- Messages: 51
Re: gdaltindex et "nodata"
Résolu !
Grass est effectivement la solution (merci Yves)
dans l'ordre :
r.null pour assigner une valeur nulle aux données nodatas
r.buffer avec une distance de 0.00001 (en mètre) on doit pouvoir faire pire ... (r.buffer par défaut ignore les nodatas)
r.to.vect feature=area -v (le flag -v permet d'assigner les valeurs de la couche non celles des pixels)
Il me reste a rassembler tout ça dans un beau script linux pour le faire rouler en batch et zou.
Merci à tous
Denis
Je sers la science et c'est ma joie ...
Hors ligne