Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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 Tue 11 December 2018 09:39

Groflo
Participant actif
Date d'inscription: 3 Jun 2013
Messages: 84

2 couches de parcelles différentes : trouver les changements ?

Bonjour à tous,

désolé, mon titre n'est pas très explicite, mais difficile avec le nombre de caractère autorisé.
J'ai 2 couches d'affectation des sols d'un grand territoire, l'une datant de 2009, l'autre de 2015.
Je souhaitais les comparer pour identifier les parcelles passées par exemple de vigne à friche, mais aussi de bois à espace artificialisé, etc. Bref, identifier les ha totaux de telle utilisation passés dans telle autre, pour des stats.

Il s'agit de couches « maisons », faites par la collectivité qui a suivi assez fin de son territoire (travail réalisé par analyse orthophoto), mais le problème est que la nomenclature et les polygones entre les 2 couches sont différents, je ne peux donc pas comparer polygone par polygone à partir de leurs id, puisque rien ne correspond.

À partir de là, comment vous y prendriez-vous pour avoir une couche où chaque poly indique la valeur en 2009 et celle en 2015 ?

Comme visiblement les poly sont plus fins et nombreux en 2015 qu'en 2009, j'ai tenté de faire une extraction par intersection, ce qui me donne une nouvelle couche avec les attributs 2009 et 2015 avec de nouveaux poly.
Ça a fonctionné sur une petite partie du territoire que j'ai extraite pour faire des essais (modulo plusieurs poly dont les géométries ne sont pas valides, mais ce n'est pas très grave), mais si je l'applique à tout mon territoire, le nombre de poly est tellement énorme que ça plante direct.

J'ai alors tenté de joindre les attributs par localisation, mais après avoir lancé l'algorithme tourner toute une nuit sur un tiers du territoire, il n'en était qu'à 5 % ! Ce n'est donc pas jouable.

Voyez-vous d'autres solutions, peut-être en passant par un outil de gestion de base de données ? J'ai un peu manié Postgresql, ainsi que MS SQL Server, peut-être pourraient-ils faire ce genre de traitement de manière plus efficiente et rapide ?
Ou bien sous QGIS ou tout autre logiciel de SIG, une autre façon de faire à laquelle je n'ai pas pensé ?

Merci par avance pour vos réflexions !

Hors ligne

 

#2 Tue 11 December 2018 09:57

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3197
Site web

Re: 2 couches de parcelles différentes : trouver les changements ?

Bonjour,

La façon la plus propre et la plus sure est d'utiliser Postgis (et ou GRASS) et la topologie.
Attention c'est pas facile.

C'est quelque chose que nous faisons tous les jours et comparant la couche parcellaire napoléonienne et la couche parcellaire actuelle.

Plusieurs problèmes :
L'intégration en topologie d'un grand jeux de données est très long (pour nous en optimisant avec un logiciel tiers nous mettons 8 heures pour 1 million de parcelles).
Le raisonnement doit se faire sur les objet métier (les parcelles) et les faces (la couche topo) la liaison entre ces deux couches logiques étant n-n c'est pas évident.


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#3 Tue 11 December 2018 10:37

Groflo
Participant actif
Date d'inscription: 3 Jun 2013
Messages: 84

Re: 2 couches de parcelles différentes : trouver les changements ?

Bonjour et merci pour ce premier niveau de réponse.


Effectivement, le temps de traitement risque d'être impressionnant : j'ai 500 000 polygones dans mon jeu 2015, 2,3 millions dans mon jeu 2009 !
Du coup, je pense que je vais abandonner, tant pis.

D'autant que j'ai oublié de préciser : je ne suis pas géomaticien ni sigiste de métier, encore moins professionnel des bases de données, j'ai juste développé pas mal de compétences au fur et à mesure, aussi bien en SIG qu'en BDD et Python, mais rien de fou non plus. ET je n'ai pas non plus de machine à la puissance adaptée, donc le temps de traitement va dépasser l'acceptable.

Cela dit, j'aime bien mettre les mains dans le cambouis et monter en compétence, donc ça m'intéresse, si vous avez le temps, que vous puissiez détailler un peu plus la logique de l'exercice, ce qui pourrait éventuellement me servir pour d'autres occasions.

Merci en tout cas !

Hors ligne

 

#4 Tue 11 December 2018 10:42

Renaud
Membre
Lieu: Ploemeur (56)
Date d'inscription: 9 Mar 2006
Messages: 2315

Re: 2 couches de parcelles différentes : trouver les changements ?

Bonjour,

L'intersection des parcelles demande effectivement un gros travail sur la topologie pour être exploitable en l'état.
Si le SQL vous rebute, vous pouvez passer par FME (disponible en version d'essai sur demande).
Essayez à minima de faire un 'snap' du référentiel le moins précis vers le plus précis pour que les limites de parcelles coïncident au mieux.
Je pars du principe que chaque couche prise séparément est propre. Sinon, faut commencer par ça.

Autre solution, puisque vous n'avez pas de numéros de parcelle à respecter : rasterisez les deux couches sur une même grille, et travaillez au pixel.
C'est un peu triche, mais ce sera beaucoup plus simple.
Je suis un inconditionnel de SAGA, mais il y a de nombreuses options (Grass, Global Mapper, ESRI, etc)

Si la dimension de votre territoire multipliée par la résolution attendue produit un lot de données trop lourd, découpez le territoire en dalles avant rasterisation.
Ça sera toujours long à calculer, mais ça ne plantera pas.

Dernière modification par Renaud (Tue 11 December 2018 10:44)


Renaud Mouche

Hors ligne

 

#5 Wed 12 December 2018 08:20

Groflo
Participant actif
Date d'inscription: 3 Jun 2013
Messages: 84

Re: 2 couches de parcelles différentes : trouver les changements ?

Renaud a écrit:

Bonjour,

Autre solution, puisque vous n'avez pas de numéros de parcelle à respecter : rasterisez les deux couches sur une même grille, et travaillez au pixel.
C'est un peu triche, mais ce sera beaucoup plus simple.


Ah oui, voilà une idée, en effet ! D'autant que je ne cherche pas la précision et l'exactitude, juste l'ordre de grandeur !

Bon, je ne travaille presque jamais avec les raster, faudrait que je m'y penche du coup.

Hors ligne

 

Pied de page des forums

Powered by FluxBB