#1 Wed 26 April 2017 19:01
- PieTODO
- Juste Inscrit !
- Date d'inscription: 26 Apr 2017
- Messages: 3
QGIS: Probleme jointure entre deux couches
Bonjour à tous.
Je travail sur QGIS avec deux couches vecteurs :
- Une couches "crue" qui représente l'extension des eaux l'hors d'une crue centennale (avec 7 hauteurs d'eau (5 cm, 15 cm, 30 cm etc). Elle est sous format .TAB (provient d'un travail effectué sur MapInfo). Cette couche se présente sous forme de multiples polygones, parfois avec des formes assez complexes. Attention, une hauteur d'eau n'est pas formée d'un polygone. Autrement-dit, il y a par exemple plusieurs polygones pour une hauteur d'eau de 15 cm.
- Une couche "logements" que j'ai réalisé à partir d'un travail sur Excel (puis transférée en .CSV et localisée grâce aux coordonnées GPS), qui est au format shape. Cette couche se compose de multiples points. Un point représente un logement.
Mon but est d'avoir pour chaque point (logement) la hauteur d'eau du polygone dans lequel le point est situé.
(Je travail sous RGF 2154)
j'ai utilisé deux méthodes :
- une jointure spatiale;
- une "comparaison" des couches avec l'extension "Point Sampling Tool".
Le résultat est bien (identiques avec les deux méthodes), mais comporte des erreurs. J'obtiens la hauteur d'eau pour presque tous les points. mais certains points, pourtant localisés dans des polygones (par exemple d'une hauteur d'eau de 15 cm) ont une hauteur d'eau "nulle". Le problème est que cela fausse mon analyse après. J'ai quelques pistes, mais pas très fructueuses :
- le fait que les polygones soient dans certains cas "évidés", la hauteur d'eau étant différente au centre, donc il y a un autre polygone
- le fichier TAB au lieu du format shape
- la complexité de certains polygones.
Si vous avez une solution ou des idées, je suis preneur. Merci par avance.
Hors ligne
#2 Wed 26 April 2017 21:36
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS: Probleme jointure entre deux couches
Bonsoir,
je pense surtout qu'il faut vérifier en premier lieu que votre couche de crues ne comporte pas d'erreurs géométriques.
http://docs.qgis.org/2.14/fr/docs/user_ … ecker.html
Cordialement,
Dernière modification par lejedi76 (Thu 27 April 2017 06:55)
Hors ligne
#3 Thu 27 April 2017 11:09
- PieTODO
- Juste Inscrit !
- Date d'inscription: 26 Apr 2017
- Messages: 3
Re: QGIS: Probleme jointure entre deux couches
Bonjour Lejedi76,
Merci pour votre réponse. Effectivement j'ai effectué une vérification de la validité (avec GEOS)
et j'ai pu observer de nombreuses erreurs.
En fait c'est toujours la même erreur qui est localisée sur de nombreux sommets.
Cette erreur est "Self Intersection". Et cette erreur est à l'origine de l'invalidité de nombreux polygones
dans ma couche "crue".
Pouvez-vous (ou qqun d'autre sur ce forum) m'aider car je ne maîtrise pas le codage, je ne sais donc pas
utiliser "ST_MakeValid" (je crois que c'est l'une des solutions à mon problème).
Connaissez-vous d'autres solutions que je peux effectuer à mon niveau de compétence ?
Merci par avance
Hors ligne
#4 Thu 27 April 2017 11:58
- fnixou
- Participant actif
- Date d'inscription: 22 Feb 2017
- Messages: 82
Re: QGIS: Probleme jointure entre deux couches
si tu souhaites utiliser st_makevalid il va falloir passer par l'utilisation d'une base de donnée PostgreSQL avec PostGIS et je ne sais pas si c'est réellement le plus simple mais si personne ne t'apporte d'autre solution je te donnerai un coup de main la dessus.
Hors ligne
#5 Thu 27 April 2017 12:58
- atilio
- Participant actif
- Lieu: Brest
- Date d'inscription: 17 Jan 2006
- Messages: 80
Re: QGIS: Probleme jointure entre deux couches
Si non, avec QGis il y a
http://www.sigterritoires.fr/index.php/ … avec-qgis/
et
http://www.sigterritoires.fr/index.php/ … is-2-12-0/
Hors ligne
#6 Thu 27 April 2017 14:05
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS: Probleme jointure entre deux couches
Bonjour,
j'ai créé un modèle de traitement qui fait appel à make_valid (fonction de spatialite) en passant par un virtual layer.
Pour l'installer, il faut disposer d'au moins la version de qgis 2.14
traitement > boite à outils de traitement > add model from file
Aller chercher le modele.
Remarque : Si le .model n'apparait pas, entrer * puis presser la touche entrée
Ensuite le modèle s'appelle MakeValid Polygon.
Cordialement,
Dernière modification par lejedi76 (Thu 27 April 2017 14:06)
Hors ligne
#7 Thu 27 April 2017 17:20
- PieTODO
- Juste Inscrit !
- Date d'inscription: 26 Apr 2017
- Messages: 3
Re: QGIS: Probleme jointure entre deux couches
Re-Bonjour,
Alors j'ai pu résoudre le problème.
J'ai utiliser l'outil v.clean de Grass.
Cela a suffit a nettoyer les sommets qui posaient problème sans modifier les polygones.
Toutes les hauteurs d'eau sont donc valides pour chaque logement.
Mais je vais tester vos méthodes car je ne sais pas comment v.clean a procédé, et donc je ne peux pas justifier de ma méthode.
je vous remercie lejedi76 et atilio et fnixou
je vous tiens au courant lejedi76 par rapport aux traitement que vous m'avez conseillé.
Hors ligne
#8 Fri 21 December 2018 07:25
- Tzara
- Juste Inscrit !
- Date d'inscription: 19 Dec 2018
- Messages: 2
Re: QGIS: Probleme jointure entre deux couches
Bonjour,
J'avais un problème assez similaire sur des tampons qui ne se créaient pas sur l'ensemble de la couche, et l'utilisation du modèle de lejedi76 a été un franc succès !
Merci !
Hors ligne
#9 Sat 12 January 2019 12:27
- marieca
- Juste Inscrit !
- Date d'inscription: 10 Jan 2019
- Messages: 1
Re: QGIS: Probleme jointure entre deux couches
Bonjour,
J'ai le même problème pour un grand nombre de couches que je dois traiter et l'outil clean fait disparaître certains trous dans mes polygones. Je ne suis pas assez calée en QGIS pour utiliser spatialite, je dois passer par ce type d'outils pour utiliser votre modèle make_valid polygon Lejedi76 ? si je fais la démarche directement depuis qgis dans la boite à outil, il est écrit "le fichier selectionné ne contient pas un modèle valide".
Cordialement,
Hors ligne