banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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

 

Pied de page des forums

Powered by FluxBB