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é ?

#1 Sun 07 September 2008 17:53

buzuc
Participant occasionnel
Date d'inscription: 27 Jan 2008
Messages: 22

QGIS : Suppression ou regroupement de polygones/Valeurs

Bonjour à tous,

je continue ma découverte merveilleuse du monde de la cartographie afin de créer une scène (Bretagne) pour un simulateur de vol à voile...

J'ai donc récupéré les fichiers Corine Land Cover et tout va bien jusqu'ici. Mon problème commence quand je veux exploiter le fichier SVG généré par QGIS. J'obtiens un fichier supérieur à 60Mo et les manipulations requises dans Inkscape plantent à cause de la taille du fichier !
Un aperçu de "l'image" que j'obtiens :
[img]http://www.maquettes-papier.net/condorbretagne/QGis.jpg[/img]

Pour remédier à ce problème je cherche à effacer ou regrouper les informations de la couche mais je bloque complètement. Seuls les polygones à l'intérieur du carré violet m'interessent. (Le carré voilet représente les limites de la scène)

Y'a-t-il moyen de supprimer les informations en dehors des limites ? J'ai essayé en mode édition de couche et en sélectionnant les infos en dehors mais le résultat n'est pas concluant sad
Deuxième interrogation : est-il possible de regrouper les valeurs que l'on obtient en affichant "valeurs uniques" (dans le cas des CLC, les valeurs 111,113,...)

Merci

Hors ligne

 

#2 Sun 07 September 2008 18:31

xavier78
Participant actif
Date d'inscription: 12 Oct 2006
Messages: 148

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

Bonjour,
j'ai une solution mais elle n'est pas des plus évidentes.
Il est nécessaires d'installer Postgres/Postgis, d'importer tous tes fichiers vecteurs dans cette bdd et de faire une requête spatiale dans postgis telle qu'on peut en voir dans MapInfo à savoir une intersection entre ton rectangle et tes données vecteur.
Autre possibilité, utiliser Grass pour cela.
@+

Hors ligne

 

#3 Sun 07 September 2008 23:10

buzuc
Participant occasionnel
Date d'inscription: 27 Jan 2008
Messages: 22

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

utiliser Grass pour cela


Pour l'instant je vais me rabbattre la dessus mais j'ai beau parcourir la doc et tous les tutos sur Grass je n'ai toujours pas réussi à passer d'une couche vecteur à Grass...
Auriez-vous une explication simple et rapide pour la mise en oeuvre de cette usine à gaz ? (de mon point de vue de néophite bien sûr)

Hors ligne

 

#4 Mon 08 September 2008 06:37

Lid
Participant assidu
Lieu: Les Arcs sur Argens
Date d'inscription: 1 Oct 2005
Messages: 600
Site web

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

Bonjour,

Il faut créer un Mapset tout d'abord (Grass n'utilise pas directement les couches de Quantum GIS) puis utiliser la commande d'import vectoriel dans les outils de Grass.

@+
Philippe


Philippe Lépinard
École de l'Aviation Légère de l'Armée de Terre

Hors ligne

 

#5 Tue 09 September 2008 16:03

noxia
Participant occasionnel
Date d'inscription: 30 Jun 2008
Messages: 48

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

Hello,

ce problème (la résolution de ce problème) m'interesse, mais dans le cadre de la solution Postgres.
J'ai installé depuis longtemps postgres, j'ai crée une base posgis qui fonctionne nikel, et  j'arrive à importer exporter des données posgis vers quantum gis.
Là où je "rame" encore, c'est

"à savoir une intersection entre ton rectangle et tes données vecteur."


.
Pourrais tu me détailler comment faire?
J'ai mis toutes mes couches en couches vectorielles sous postgis, j'ai par exemple plusieurs tables avec des champs dans le style  'the_geom', 'code_insee','numero_regroupement'.

je cherche, tout comme buzuc, à n'afficher mes donnéees que pour un type de 'numero_regroupement' par exemple. Mais comment faire?

Hors ligne

 

#6 Wed 10 September 2008 14:32

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1228
Site web

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

Bonjour noxia,

on séloigne du sujet initial mais en double-cliquant sur la table que tu veux sélectionner dans QGIS, tu ouvres l'éditeur de requête qui te permet d'appliquer un ensemble de critères à ta sélection.

Si tu as besoin de manière récurrente de ta sélection, tu peux créer une vue dans postgresql et l'afficher dans QGIS

par exemple je veux créer la vue des communes de l'Aude :

CREATE VIEW commune_aude AS SELECT * FROM commune WHERE num_insee LIKE '11%';

Buzuc, as tu essayé de simplifier tes chemins avec Inkscape (onglet chemin => simplifier ou Ctrl + L) ?

Par ailleurs, je crois que GVSIG te permet de faire des intersections entre couches (geoprocess -> intersection).


Mathieu Bossaert

Dernière modification par Mathieu BOSSAERT (Wed 10 September 2008 14:35)


Mathieu BOSSAERT
Association GeoRezo

Hors ligne

 

#7 Wed 10 September 2008 17:03

buzuc
Participant occasionnel
Date d'inscription: 27 Jan 2008
Messages: 22

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

Buzuc, as tu essayé de simplifier tes chemins avec Inkscape (onglet chemin => simplifier ou Ctrl + L) ?


Le problème c'est que le fichier SVG généré fait 60Mo et qu'Inkscape plante à chaque ouverture ! C'était mon objectif inital de faire le traitement dans Inkscape mais là ce n'est pas possible. Voilà pourquoi je voulai simplifier la carte pour obtenir un fichier svg plus petit.

Hors ligne

 

#8 Thu 11 September 2008 11:33

noxia
Participant occasionnel
Date d'inscription: 30 Jun 2008
Messages: 48

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

Bonjour noxia,

on séloigne du sujet initial mais en double-cliquant sur la table que tu veux sélectionner dans QGIS, tu ouvres l'éditeur de requête qui te permet d'appliquer un ensemble de critères à ta sélection.

Si tu as besoin de manière récurrente de ta sélection, tu peux créer une vue dans postgresql et l'afficher dans QGIS

par exemple je veux créer la vue des communes de l'Aude :

CREATE VIEW commune_aude AS SELECT * FROM commune WHERE num_insee LIKE '11%';


Désolé ça ne répond pas à ma question. Je vais la poser ailleurs car c'est vrai que ça sort du contexte apparement.

Hors ligne

 

#9 Thu 11 September 2008 11:50

Matthieu
Membre
Lieu: Brandenburg/Havel
Date d'inscription: 24 Jun 2006
Messages: 181
Site web

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

Sinon concernant la simplification d'un multipolygones, car je crois que c'était le problème original, une solution est d'importer le fichier vecteur dans une base de données Postgre/PostGIS, puis d'utiliser la fonction Simplify de PostGIS, décrite ici :
http://main.merlin.com.ua/doc/postgis/docs/ch06.html
et en images ici:
http://www.bostongis.com/postgis_simplify.snippet

Sinon il existe de nombreux scripts Python qui permettent d'approfondir ca, à chaque fois en travaillant sur une géométrie dans PostGIS, comme ceux présents dans la librairie psycopg, décrit ici :
http://www.cartoweb.org/downloads/verte … ation.html

En espérant que ca réponde à la question,

Matthieu Rigal


Découvrez la constellation de satellites RapidEye, lancée le 29 août 2008
http://www.rapideye.de
Découvrez le blog du Master TGAE et les stages que suivent ses étudiants.
http://tgae0607.free.fr

Hors ligne

 

#10 Thu 11 September 2008 22:14

buzuc
Participant occasionnel
Date d'inscription: 27 Jan 2008
Messages: 22

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

Merci !
j'étudie tout ça, la simplification de polygones semble interessante maintenant il faut que je m'y mette...

Hors ligne

 

#11 Fri 12 September 2008 10:45

buzuc
Participant occasionnel
Date d'inscription: 27 Jan 2008
Messages: 22

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

OK, c'est parti pour les interrogations !
J'ai installé PostGre/GIS, j'ai créé une base et j'ai importé un shp avec la commande shp2pgsql...
Le problème c'est que quand j'ouvre ma couche dans QGIS tous les index (pas sur du vocabulaire) ont été changés.
Au lieu d'avoir les valeurs de Corine Land Cover (112,113,...) j'ai d'autres chiffres qui ne sont pas classés. J'ai l'impression que ceux-ci correspondent aux polygones et non plus à un regroupement de polygones comme dans le fichier initial.

Help, mayday...

Autant pour moi ! J'ai classé selon le mauvais champ roll

Je poursuis ma découverte

Dernière modification par buzuc (Fri 12 September 2008 10:51)

Hors ligne

 

#12 Fri 12 September 2008 11:27

buzuc
Participant occasionnel
Date d'inscription: 27 Jan 2008
Messages: 22

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

La simplification des polygones par requete (SIMPLIFY) n'a pas l'air de faire grand chose sur la couche!

Mais c'est peut-être parce qu'il faut sauvegarder les valeurs que me donne la requête ?
En effet j'ai fait un select et cela ne fait qu'afficher le résultat de la requête non?
Mon code :

Code:

SELECT simplify(the_geom,500) as "53simpl" 
    FROM "53"

Auriez-vous une idée ?

Hors ligne

 

#13 Fri 12 September 2008 11:40

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

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

Bonjour,

Oui !

Code:

UPDATE 53 SET the_geom = simplify(the_geom,500);

Un conseil, créer une nouvelle colonne the_geom_simplify et mettez cette colonne à jour wink

Code:

SELECT addGeometryColumn('53','the_geom_simplify',27572,'MULTIPOLYGON',2);
UPDATE 53 SET the_geom_simplify = simplify(the_geom,500);

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

 

#14 Fri 12 September 2008 14:54

buzuc
Participant occasionnel
Date d'inscription: 27 Jan 2008
Messages: 22

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

Ca avance à la vitesse grand V !
J'ai laissé tombé la simplification de polygone : trop de déformations même avec un paramètre à 100.
J'ai en fait décomposé le fichier CLC(Corine Land Cover) en plusieurs couches postGIS. une pour les forets, une pour l'habitat urbain et une pour les cultures.
Aucun soucis pour les deux premiers : j'ai deux fichiers d'environ 5Mo parfaitement exploitables dans InkScape.
La couche des cultures demande par contre à être simplifiée (svg de 18Mo !).

Je vais déja voir ce que ça donne en faisant une intersection entre la couche et les limites de ma carte comme suggéré par Xavier78.
Le problème est que je n'arrive pas à écrire la requête qui va bien.

Pourriez-vous me donner un exemple à partir duquel je peux extrapoler ?
J'ai aussi cherché la doc des fonctions PostGis mais je ne trove que des descriptions sommaires, y'a-t-il ça quelque part ?

Encore merci à tous

Hors ligne

 

#15 Fri 12 September 2008 15:02

Matthieu
Membre
Lieu: Brandenburg/Havel
Date d'inscription: 24 Jun 2006
Messages: 181
Site web

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

commence par un SELECT * WHERE contains(table1.the_geom, table2.the_geom)
et vois si le résultat est ok.
Si oui crée une nouvelle table et fais un INSERT avant le SELECT

Tu vas y arriver !


Découvrez la constellation de satellites RapidEye, lancée le 29 août 2008
http://www.rapideye.de
Découvrez le blog du Master TGAE et les stages que suivent ses étudiants.
http://tgae0607.free.fr

Hors ligne

 

#16 Fri 12 September 2008 15:27

buzuc
Participant occasionnel
Date d'inscription: 27 Jan 2008
Messages: 22

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

J'ai testé ta requête et j'ai un message d'erreur :

Code:

La requête va renvoyer 0 ligne(s).

ERREUR:  Un SELECT * sans table spécifiée n'est pas valide

********** Erreur **********

ERREUR: Un SELECT * sans table spécifiée n'est pas valide
État SQL :42601

La même requête en ajoutant un from :

Code:

SELECT * FROM "clc53" WHERE contains("clc53".the_geom, "limites".the_geom)

me renvoi

Code:

La requête va renvoyer 0 ligne(s).

ERREUR:  entrée manquante de la clause FROM pour la table « limites »
LIGNE 1 : ... SELECT * FROM "clc53" WHERE contains("clc53".the_geom, "limites"....
                                                               ^

********** Erreur **********

ERREUR: entrée manquante de la clause FROM pour la table « limites »
État SQL :42P01
Caractère : 58

Je maîtrise assez  bien SQL mais là j'avoue que les commandes "contains" ou l'opérateur d'intersection "&&" me donnent du fil à retordre.

De plus, mes deux couches n'ont pas le même SRID : clc est en Lambert II et les limites en WGS84.
Ca devient un peu le b..... mais je pense qu'il va falloir que je transforme la couche clc en WGS84 (SRID final que j'exploiterai)

Dernière modification par buzuc (Fri 12 September 2008 15:33)

Hors ligne

 

#17 Fri 12 September 2008 15:34

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

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

Buzuc,

je pense qu'il faut citer les deux tables dans la clause from !

Code:

SELECT * FROM "53",limites WHERE contains("53".the_geom, "limites".the_geom) AND "53".the_geom && "limites".the_geom;

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

 

#18 Fri 12 September 2008 15:48

buzuc
Participant occasionnel
Date d'inscription: 27 Jan 2008
Messages: 22

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

Merci Yves, je viens de comprendre ça aussi.

Par contre pourquoi est-ce que les shp de CLC n'ont pas de SRID défini ? Normalement ils devraient être en "Lambert Zone II" mais quand je les ouvre dans QGIS c'est WGS84 qui est défini !
J'ai tenté de changer le SRID en enregistrant la couche sous un autre nom mais ça n'a pas l'air de marcher...

Et je n'ai pas trouvé non plus comment le faire avec PostGIS.

Hors ligne

 

#19 Fri 12 September 2008 16:05

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

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

QGIS détermine la projection grâce au fichier prj. Si celui n'existe pas ou n'a pas le même nom, Personne ne pourra deviner dans quelle projection sont les données.

Pour PostGIS, il faut le définir lors de l'import : shp2pgsql -s 27572 .... il est possible de modifier après coup la définition de la projection de la couche avec :

Code:

SELECT UpdateGeometrySRID('public','table','the_geom',27572);

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

 

#20 Fri 12 September 2008 17:19

buzuc
Participant occasionnel
Date d'inscription: 27 Jan 2008
Messages: 22

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

Bien, bien...

J'ai donc transformer mes deux couches pour qu'elles aient le même SRID (WGS84).
J'ai lancé la requête

Code:

SELECT * FROM "clc53",limites WHERE contains("clc53".the_geom, "limites".the_geom) AND "clc53".the_geom && "limites".the_geom;

Et le résultat c'est que je n'ai aucun enregistrement renvoyé sad
Cela veut dire que je n'ai pas d'intersection entre mes deux couches ? C'est pas glop !

Hors ligne

 

#21 Fri 12 September 2008 18:15

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

Re: QGIS : Suppression ou regroupement de polygones/Valeurs

Non cela veut dire qu'aucun objet clc53 ne contient de limite communale..

Code:

SELECT * FROM "clc53",limites WHERE contains("limites".the_geom,"clc53".the_geom) AND "clc53".the_geom && "limites".the_geom;

Un retour vers la doc pourrait être un bon investissement wink et t'évitera ce genre de désagrément :p

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

 

Pied de page des forums

Powered by FluxBB