#1 Mon 12 May 2014 12:03
- MarcI
- Membre du bureau
- Lieu: Saint-Baldoph
- Date d'inscription: 7 Oct 2005
- Messages: 2266
QGIS : emprise couche vecteur
Salut,
Je dispose de couches vectorielles volumineuses. Je souhaite créer rapidement pour chacune d'elles uniquement leur emprise spatiale (soit 1 polygone d'emprise).
Y a t-il une extension ou une fonctionnalité qui permette de le faire dans QGis ?
Merci pour votre aide,
Marco
Hors ligne
#2 Mon 12 May 2014 12:28
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3895
Re: QGIS : emprise couche vecteur
Salut,
Dans la boîte à outils du menu "Traitements", tu devrais trouver des réponses:
- QGIS Geoalgorithms> vector General Tools>Polygone from Layer Extent qui semble laisser une zone tampon autour de la géométrie, (ce n'est pas collé collé à la géométrie, de ce que je vois sur ma donnée)
- ou SAGA > Shape Tools>Get shape Extents (dont l'option "entité unique" ne marche pas chez moi).
Un lancement par lot ou une boucle sur un dossier devrait être bon.
- ou encore menu Vecteur > outil de recherche > créer un polygone à partir de l'emprise de la couche. Mais pas de possibilité de batch et son résultat est identique à Polygone from Layer Extent (même algo surement)
Dernière modification par SANTANNA (Mon 12 May 2014 12:38)
Hors ligne
#3 Mon 12 May 2014 13:52
- MarcI
- Membre du bureau
- Lieu: Saint-Baldoph
- Date d'inscription: 7 Oct 2005
- Messages: 2266
Re: QGIS : emprise couche vecteur
Merci pour ces pistes. J'ai oublié de préciser que je travaille avec QGIS 2.2
MArco
Hors ligne
#4 Tue 13 May 2014 03:44
- Leyan
- Participant assidu
- Date d'inscription: 14 Oct 2013
- Messages: 160
Re: QGIS : emprise couche vecteur
Santanna utilise l'interface avancée de la boîte à outils. Dans l'interface simplifié, tu peux essayer :
* Geoalgorithms -> vector -> creation -> polygon from layer extent
* Geoalgorithms -> vector -> general tools -> get shapes extents
Chez moi les deux collent exactement à la géométrie et les deux fonctionnent pour toute la couche ou par élément. La seule différence est que pour l'emprise de chaque élément, polygon from layer extent va te donner plus d'attributs de l'emprise, par exemple the xmin/xmax/ymin/ymax de chaque emprise, alors que get shape extents conserve les attributs de l'élément.
Dernière modification par Leyan (Tue 13 May 2014 04:04)
Hors ligne
#5 Tue 13 May 2014 09:14
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3895
Re: QGIS : emprise couche vecteur
Bonjour,
Leyan, effectivement, je suis en mode avancé (désolé de ne pas l'avoir précisé) mais je pense qu'on parle des mêmes outils.
Pour ce qui est de générer les emprises pour chaque entité de la couche, no souci. Ça colle bien.
Toutefois, Marc voulait, si j'ai bien compris, pour une couche en entrée, une couche en sortie qui contienne un seul polygone correspondant à l'emprise de la couche en entrée. Et ça, même en passant par les chemins que tu indiques, j'obtiens toujours la même géométrie avec un débord par rapport à ce qui devrait être l'emprise normale.
Après, ma version de Processing est 2.2.0-2 et je récupère aussi ses mises à jour expérimentales. Donc, si tel n'est pas ton cas et que tu confirmes que ça marche bien chez toi, ça voudrait peut-être dire qu'il y a un souci dans la mise à jour à venir?
---EDIT---
J'ai réessayé la manip. Ce qui ne marchait pas pour ma couche PostGIS marche une fois qu'elle est convertie en shapefile; j'obtiens bien un polygone qui correspond vraiment à l'emprise. Quelqu'un d'autre peut-il me confirmer ce constat avant qu'on le remonte (je n'ai pas vu un tel ticket) aux développeurs? Merci
Dernière modification par SANTANNA (Tue 13 May 2014 09:41)
Hors ligne
#6 Tue 13 May 2014 09:46
- MarcI
- Membre du bureau
- Lieu: Saint-Baldoph
- Date d'inscription: 7 Oct 2005
- Messages: 2266
Re: QGIS : emprise couche vecteur
Toutefois, Marc voulait, si j'ai bien compris, pour une couche en entrée, une couche en sortie qui contienne un seul polygone correspondant à l'emprise de la couche en entrée.
Oui c'est tout à fait ce que je recherche.
- L'outil [Geoalgorithms -> vector -> creation -> polygon from layer extent] ne donne pas le résultat ce que je souhaite. Il s'agit ici d'un rectangle d'emprise des 4 points les plus extrêmes et non pas l'emprise exacte des objets de la couche.
- L'outil [Geoalgorithms -> vector -> general tools -> get shapes extents] : il est où celui là ? Je ne le trouve pas !
Merci encore pour tous vos retours,
Marco
Hors ligne
#7 Tue 13 May 2014 09:59
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3895
Re: QGIS : emprise couche vecteur
Il s'agit ici d'un rectangle d'emprise des 4 points les plus extrêmes et non pas l'emprise exacte des objets de la couche.
Il y a une option "Calculate extent for each feature separately" qu'il faut penser à mettre à no
- L'outil [Geoalgorithms -> vector -> general tools -> get shapes extents] : il est où celui là ? Je ne le trouve pas !
En principe, là, pour autant que tu sois en mode simplifié. Sinon, fais une recherche dans la barre en haut...
Dernière modification par SANTANNA (Tue 13 May 2014 09:59)
Hors ligne
#8 Tue 13 May 2014 10:07
- MarcI
- Membre du bureau
- Lieu: Saint-Baldoph
- Date d'inscription: 7 Oct 2005
- Messages: 2266
Re: QGIS : emprise couche vecteur
Il y a une option "Calculate extent for each feature separately" qu'il faut penser à mettre à no
Oui fait mais aucun des deux résultats ne convient.
En principe, là, pour autant que tu sois en mode simplifié. Sinon, fais une recherche dans la barre en haut...
Ok trouvé mais l'outil plante à tous les coups. Ci-dessous le msg d'erreur renvoyé :
Algorithm Get shapes extents starting...
shapes_tools "Get Shapes Extents" -SHAPES "D:\TESTS\carte_test.shp" -EXTENTS "D:/TESTS/test.shp"
C:\OSGEO4~1\bin>set SAGA=C:/OSGEO4~1/apps\saga
C:\OSGEO4~1\bin>set SAGA_MLB=C:/OSGEO4~1/apps\saga\modules
C:\OSGEO4~1\bin>PATH=PATH;C:/OSGEO4~1/apps\saga;C:/OSGEO4~1/apps\saga\modules
C:\OSGEO4~1\bin>saga_cmd shapes_tools "Get Shapes Extents" -SHAPES "D:\TESTS\carte_test.shp" -EXTENTS "D:/TESTS/test.shp"
C:\OSGEO4~1\bin>exit
Converting outputs
Loading resulting layers
Algorithm Get shapes extents finished
Vois-tu d'où cela peut venir ? un soucis d'installation de Saga ?
Merci,
Marco
Hors ligne
#9 Tue 13 May 2014 10:28
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3895
Re: QGIS : emprise couche vecteur
Il y a une option "Calculate extent for each feature separately" qu'il faut penser à mettre à no
Oui fait mais aucun des deux résultats ne convient.
Je me demande si depuis le début, je ne me méprends pas sur tes attentes. En relisant les échanges, je pense que tu ne veux pas le rectangle englobant de tes données mais un polygone qui en fusionne tout le contenu. Pour ça, dans menu Vecteur > outils de géotraitement >Regrouper, il y a la solution mais couche par couche . je ne vois pas trop ce qui le ferait en masse, sauf à créer son propre script avec le modeleur (?) ou la console python...
mais c'est bizarre qu'un tel outil n'existe pas déjà...
Pour le log, à part que dans le mien, j'ai C:\OSGeo4W et non C:\OSGEO4~1, je ne vois pas de différence dans les chemins et il a l'air d'aller jusqu'au bout, le script (même si en réalité, il plante).
Dernière modification par SANTANNA (Tue 13 May 2014 10:42)
Hors ligne
#10 Tue 13 May 2014 10:38
- MarcI
- Membre du bureau
- Lieu: Saint-Baldoph
- Date d'inscription: 7 Oct 2005
- Messages: 2266
Re: QGIS : emprise couche vecteur
L'outil Regrouper donne bien le résultat que je souhaite mais il faut le faire couche par couche. L'idéal serait d'avoir un "outil" qui permette de générer les emprises exactes de toutes les couches disposées dans un même répertoire.
Encore merci pour vos contributions.
Marco
Dernière modification par MarcI (Tue 13 May 2014 10:47)
Hors ligne
#11 Tue 13 May 2014 10:48
- MarcI
- Membre du bureau
- Lieu: Saint-Baldoph
- Date d'inscription: 7 Oct 2005
- Messages: 2266
Re: QGIS : emprise couche vecteur
Pour le log, à part que dans le mien, j'ai C:\OSGeo4W et non C:\OSGEO4~1, je ne vois pas de différence dans les chemins et il a l'air d'aller jusqu'au bout, le script (même si en réalité, il plante).
Merci pour ton retour.
Marco
Hors ligne
#12 Tue 13 May 2014 10:49
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3895
Re: QGIS : emprise couche vecteur
En fait, si, ça existe. Il suffit de trouver le bon terme de la recherche : Essaie avec Dissolve
Hors ligne
#13 Tue 13 May 2014 16:34
- MarcI
- Membre du bureau
- Lieu: Saint-Baldoph
- Date d'inscription: 7 Oct 2005
- Messages: 2266
Re: QGIS : emprise couche vecteur
Ok merci mais il faut que je comprenne d'abord pourquoi les outils en question me plantent systématiquement Qgis.
Les outils SAGA fonctionnent-ils bien avec la version 2.2 ?
Marco
Hors ligne
#14 Wed 14 May 2014 03:31
- Leyan
- Participant assidu
- Date d'inscription: 14 Oct 2013
- Messages: 160
Re: QGIS : emprise couche vecteur
---EDIT---
J'ai réessayé la manip. Ce qui ne marchait pas pour ma couche PostGIS marche une fois qu'elle est convertie en shapefile; j'obtiens bien un polygone qui correspond vraiment à l'emprise. Quelqu'un d'autre peut-il me confirmer ce constat avant qu'on le remonte (je n'ai pas vu un tel ticket) aux développeurs? Merci
En effet, j'avais testé avec un shapefile, je n'ai pas de PostGIS sous la main. Je pense que c'est un bug avec PostGIS alors.
Hors ligne
#15 Wed 14 May 2014 10:01
- mich
- Participant occasionnel
- Lieu: Grenoble
- Date d'inscription: 1 Aug 2007
- Messages: 35
Re: QGIS : emprise couche vecteur
Salut MarcO,
voici une autre solution qui peut être un peu hors sujet car elle n'utilise pas directement Qgis mais ces outils (OGR) :
il faut lancer le Shell C:\OSGeo4W\OSGeo4W.bat
de là tu as 2 solutions :
1-navigues dans le répertoire contenant tes .shp avec les commandes dos (cd nom_de_dossier)
et tu lances la commande Ogr dans la console:
FOR %Q IN (*.shp) DO ogr2ogr "%~dpnQ_Emprise.shp" "%Q" -dialect sqlite -sql "SELECT ST_Union(geometry) FROM %~nQ"
2-indiquer le chemin vers ton répertoire :
FOR %Q IN (E:\CHEMIN\VERS\\LE\DOSSIER\*.shp) DO ogr2ogr "%~dpnQ_Emprise.shp" "%Q" -dialect sqlite -sql "SELECT ST_Union(geometry) FROM %~nQ"
Pour chaque couche se trouvant dans ton répertoire, ça va te créer une nouvelle couche shape avec regroupement des entités (comme l'outil Regrouper).
En espérant que ça te soit utile.
@ bientôt
Dd
Dernière modification par mich (Wed 14 May 2014 11:00)
Hors ligne
#16 Thu 15 May 2014 15:20
- MarcI
- Membre du bureau
- Lieu: Saint-Baldoph
- Date d'inscription: 7 Oct 2005
- Messages: 2266
Re: QGIS : emprise couche vecteur
Merci Mich pour tes conseils de manipulations. Je teste cela dès qu'il repleut.
Marco
Hors ligne