Partage
  • Partager sur Facebook
  • Partager sur Twitter

[QGIS] Jointure spatiale couches vectorielles

polygones différents

Sujet résolu
    15 janvier 2018 à 15:11:11

    Bonjour,

    J'ai 2 couches vectorielles de polygones (issues de 2 rasters). J'aimerais faire une jointure spatiale entre ces 2 couches. 

    Problème sous QGIS, je suis obligé de prendre une couche de référence pour faire cette jointure spatiale, sauf qu'il n'y a aucun rapport entre les id/formes/tailles des différents polygones des 2 couches shapefile.

    Une couche a 9149 polygones et l'autre en a 11586.

    Dois-je mettre en place une grille de polygones vides qui sera la couche de référence et de faire une jointure avec ces 2 couches ? Ou est-ce possible de faire une jointure autrement (ne pas prendre un shapefile pour la forme de référence) ? 

    Si vous avez la solution en requête PostGIS, je suis également preneur. (Faire une jointure spatiale entre 2 couches vectorielles de polygones)

    La description de mes 2 tables: 

    -table n°1 : colonnes gid / value / geom (9149 lignes)

    -table n°2 : colonnes gid / value / geom (11586 lignes)

    Merci pour votre aide.

    • Partager sur Facebook
    • Partager sur Twitter
      15 janvier 2018 à 18:19:22

      Bonjour,

      elgringo95 a écrit:

      J'aimerais faire une jointure spatiale entre ces 2 couches

      Lorsque l'on parle de géométrie on va parler d'intersection ( intersect ) ou de recouvrement ( overlap ).

      http://www.postgis.fr/chrome/site/docs/workshop-foss4g/doc/spatial_relationships.html

      Avec PostGIS regarde la fonction ST_Overlaps peut être ?

      -
      Edité par Benzouye 15 janvier 2018 à 18:20:06

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        16 janvier 2018 à 5:09:07

        Bonjour,

        Ce que je veux faire c'est associer chaque attribut de la table1 à chaque attribut de la table2 pour avoir une table3 avec la valeur 1 et 2 (+ la nouvelle géométrie correspondante).
        Au niveau de la géométrie, si j'ai 2 polygones (avec leurs valeurs correspondantes) qui se superpose partiellement, je voudrais qu'en résultat j'ai 3 polygones (la partie superposée + le reste du polygone 1 + le reste du polygone 2). Pour les valeurs des attributs, je voudrais conserver dans ma table résultat mes valeurs de mes attributs de ma table 1 et de ma table 2 dans 2 colonnes différentes.
        J'ai testé cette requete SQL:

        SELECT table1.*,
        table2.*
        FROM table1, table2
        WHERE ST_INTERSECTS(table1.geom, table2.geom)

        mais j'ai un message d'erreur dans PostGIS --> out of memory for query result.

        J'ai essayé avec ST_OVERLAPS mais j'ai un résultat avec 2 colonnes geom, 2 colonnes id,mes 2 valeurs attributs et seulement 10133 lignes. (alors que je voudrais 1 seule colonne geom, 1 seule id et mes 2 valeurs attributs / j'attend aussi à un résultat contenant forcement plus de lignes que ma table 2 car les polygones résultat seront forcement plus petit que les polygones initiaux)

        SELECT table1.*,
        table2.*
        FROM table1, table2
        WHERE ST_OVERLAPS(table1.geom, table2.geom)

        -
        Edité par elgringo95 16 janvier 2018 à 5:54:34

        • Partager sur Facebook
        • Partager sur Twitter
          16 janvier 2018 à 13:31:31

          Tu veux obtenir l'UNION des deux géométries ?
          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            17 janvier 2018 à 5:51:04

            Merci de te pencher sur mon problème.

            Je pense pas exactement que ce soit une union.

            Une union de 2 géométries fournit 1 géométrie finale, alors que moi je souhaiterais avoir 3 géométrie différentes (l'intersection entre le polygone 1 et le polygone 2 + le reste du polygone 1 + le reste du polygone 2). Et connaitre du coup les valeurs des 2 polygones dans chacun des 3 cas.

            En réalité, j'ai 9149 et 11586 polygones ... je sais pas si niveaux performance et rapidité, ça va être bon ....

            • Partager sur Facebook
            • Partager sur Twitter
              17 janvier 2018 à 12:50:57

              elgringo95 a écrit:

              je souhaiterais avoir 3 géométrie différentes (l'intersection entre le polygone 1 et le polygone 2 + le reste du polygone 1 + le reste du polygone 2)

              Du coup c'est :

              • ST_difference( polygone 1, polygone 2 )
              • ST_difference( polygone 2, polygone 1 )
              • ST_intersects( polygone 1, polygone 2 )

              http://postgis.refractions.net/docs/ST_Difference.html

              elgringo95 a écrit:

              je sais pas si niveaux performance et rapidité, ça va être bon ....

              Cela risque de faire du boulot ... Testes peut-être sur un petit échantillon au départ pour voir ...
              • Partager sur Facebook
              • Partager sur Twitter
              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                29 janvier 2018 à 3:55:32

                Merci pour ta réponse.

                Vu la longueur des traitements, j'ai finalement opté pour une autre solution.

                • Partager sur Facebook
                • Partager sur Twitter

                [QGIS] Jointure spatiale couches vectorielles

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown