#1 Fri 13 October 2017 16:53
- kug
- Participant occasionnel
- Date d'inscription: 1 Jul 2013
- Messages: 32
Identifier attributs modifiés
Bonjour,
Je dispose d'1 jeu de données à 2 dates différentes et je souhaiterais identifier les attributs ayant changé entre ces 2 dates.
J'arrive à identifier les objets modifiés, à savoir s'il s'agit d'une modification géométrique et/ou sémantique mais dans le cas d'une modification sémantique, j'aimerais savoir quels attributs ont été modifiés.
Quelqu'un aurait il une piste?
Merci d'avance
Hors ligne
#2 Fri 13 October 2017 18:24
- Charlotte EllipSIG
- Participant actif
- Date d'inscription: 13 Oct 2017
- Messages: 86
Re: Identifier attributs modifiés
Bonjour
Je vous conseille d'essayer le transformer "changedetector"
Hors ligne
#3 Mon 16 October 2017 10:40
- kug
- Participant occasionnel
- Date d'inscription: 1 Jul 2013
- Messages: 32
Re: Identifier attributs modifiés
Bonjour,
J'avais bien essayé changedetector mais pour lui un objet modifié apparait en détruit et en créé sans qu'on sache quelles modifications ont été apportées.
Hors ligne
#4 Mon 16 October 2017 16:01
- Cherubin
- Participant assidu
- Lieu: NGC 1300
- Date d'inscription: 10 Jun 2008
- Messages: 273
Re: Identifier attributs modifiés
AttributeValidator
Hors ligne
#5 Wed 18 October 2017 10:43
- Charlotte EllipSIG
- Participant actif
- Date d'inscription: 13 Oct 2017
- Messages: 86
Re: Identifier attributs modifiés
C'est vrai pour le change detector.
Je n'arrive pas à trouver une solution qui analyse tous les attributs d'un seul coup, mais une piste qui fonctionne attribut par attribut :
- créer une liste des objets identique (par ex, si la géométrie n'a pas changée, en utilisant un matcher, sans sélectionner d'attributs à comparer mais uniquement la géométrie) (ou si il existe un identifiant sur les objets, avec un list builder)
- la liste indiquée, sera lisible par le port "single matched"
- ensuite, il est possible d'utiliser un listduplicateremover (mais qui ne fonctionne que sur un attribut à la fois), puis un listelementcounter et enfin un tester : si _elementcount supérieur à 1, c'est qu'il y a un changement
Le défaut de cette méthode est qu'il faut l'appliquer en parallèle sur chaque attribut, donc ce n'est viable que si le nombre d'attribut est faible.
J'insiste bien sur le "en parallèle", il ne faut pas mettre un 2ème listduplicate remover après le tester car des éléments auront été supprimés par le premier. Il faut donc repartir de la création de la liste pour chaque attribut.
La méthode n'est pas idéale mais bon ça marcherait...
Hors ligne