#1 Tue 13 March 2018 19:48
- Jean-Bernard Boschung
- Juste Inscrit !
- Date d'inscription: 12 Mar 2018
- Messages: 2
Comparaison de valeurs d'attributs variables
Bonsoir,
Cela fait peu de temps que j'ai découvert votre forum, et en profite pour remercier les divers utilisateurs pour leur contributions.
Utilisateur de FME, j'essayerai de contribuer également dans la mesure de mes connaissances.
Mais là j'aurais deux petites questions, car je coince un peu.
Nous avons deux bases de données, une file GDB ESRI qui a été mise à jour régulièrement par une entité, et une personnal GDB, qui nous avais été transmise par cette entité pour un plan directeur, et dans laquelle nous avons saisi plusieurs informations et mis à jour d'autres attributs.
Bref au bout de plusieurs mois, ces deux bases ont de belles différences, tant géométriques qu'attributaires.
J'ai donc tenté de faire un script qui comparer tout ça, et ça fonctionne, mais pas à 100% d'où ma demande d'aide.
Problème 1 : - contrôle géométrique
En fait nous avons passablement de différence minime, de l'ordre du nano-millimètre et encore
- Exemple : Réservoir de la Broutire…
o Coordonnées XY BD1 : 528359.5574961491, 187380.5230327472
o Coordonnées XY BD2 : 528359.5574961492, 187380.52303274628
Pour comparer l'aspect géométrique, j'utilise un Feature Merger. Cela fonctionne très bien, et tellement bien qu'il me sort tous les objets qui ont une différence, mêmes la plus minime comme ci-dessus.
Je n'ai pas trouvé de solution pour intégrer une tolérance au Feature Merger, et j'ai regardé le Matcher, et bien qu'il y est une possibilité de saisir une tolérance, je n'ai pas réussi à le faire fonctionner correctement.
Problème 2 : - contrôle attributaire
Passer le problème de la géométrie, reste le soucis des attributs, qui naturellement ont été renseignés aussi de part et autre dans les deux bases.
Les attributs à contrôler sont multiples, et certains sont :
- communs à chaque objet : Annee_construction, Etat_exploitation, Remarque, ...
- ou spécifique à chaque objet : Volume de cuve (réservoir), altitude (hydrant), ...
Dans ces bases, nous avons une douzaine d'objets différents (mais commun à chaque base) et entre 10 et 25 attributs pour chaque objet.
Pour comparer ces attributs (j'en teste 5-6 principaux pour l'instant) :
- J'ai copié les attributs d'une base en renommant les attributs comparés (ajout d'un suffixe aux attributs : Etat_exploitation2 pour la BD 2
- Je compare 'manuellement' chaque couple : Etat_exploitation (BD1) avec Etat_exploitation2 (BD2) avec un 'Tester'
- si il y a différence, j'ajoute une info (Attribut : Etat_exploitation ne corresponds pas) à un nouvel attribut ('_errorMessage' créé spécifiquement pour cela) et je passe ainsi de suite chaque attribut contrôlé.
Mais faire ceci pour chaque attribut de chaque classe d'objet est un peu long et va assez vite encombrer le script.
Du coup, pourriez-vous m'aider et m'aiguiller sur la bonne méthode pour :
- contrôler la géométrique avec tolérance
- générer une comparaison et information 'dynamique' de multiple attributs variant d'une classe d'objets à l'autre
- et éventuellement m'indiquer, une fois la comparaison des attributs terminée, s'il serait possible de procéder par script à la correction ? Car il y a environ 3000 objets concernés.
Merci d'avance pour vos pistes et solutions.
Jean-Bernard Boschung
Hors ligne
#2 Wed 14 March 2018 08:21
Re: Comparaison de valeurs d'attributs variables
Bonjour M. Boschung,
Pour la première question peut-être qu'un CoordinateRounder vous permettrait de supprimer les problèmes.
Pour la seconde et peut-être la première finalement, regardez le Transformer ChangeDetector
Cordialement, Loïc
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#3 Thu 15 March 2018 19:58
- Jean-Bernard Boschung
- Juste Inscrit !
- Date d'inscription: 12 Mar 2018
- Messages: 2
Re: Comparaison de valeurs d'attributs variables
Bonsoir,
Merci pour ces pistes, je vais voir ces deux transformers
Hors ligne