Pages: 1
- Sujet précédent - shp2shp - regroupement d'attributs de plusieurs entités dans une seule - Sujet suivant
#1 Mon 19 April 2010 15:11
- Kyk
- Participant actif
- Date d'inscription: 20 Jan 2009
- Messages: 88
shp2shp - regroupement d'attributs de plusieurs entités dans une seule
Bonjour,
J'ai un shape points contenant des infos sur des espèces animales. A certains endroits, j'ai jusqu'à 22 points superposés au même endroit. Je dois faire une carte avec les noms de ces espèces notés à côté. Afin de simplifier et de rendre surtout plus esthétique ces étiquettes dans ArcMap (création d'une seule étiquette avec des sauts de ligne), je pensais simplifier le shape en supprimant tous les points doublons mais en regroupant l'information contenu dans les champs ESPECE de chaque point en doublons dans le champs du point restant.
Autrement dit : je ne veux pas faire une étiquette à partir de plusieurs champs mais une étiquette à partir du même champs de plusieurs entités situées au même endroit.
Un tel traitement du shape est-il possible avec FME ?
J'ai déjà essayé plusieurs scénarios mais rien ne fonctionne comme je voudrai.
Est-ce que quelqu'un pourrait m'orienter svp ?
Merci d'avance pour vos réponses.
Hors ligne
#2 Mon 19 April 2010 15:50
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: shp2shp - regroupement d'attributs de plusieurs entités dans une seule
Bonjour,
Avez-vous essayé "Matcher" ? Vous pouvez lui indiquer un préfixe de liste. Sera ainsi créée une liste des attributs :
Code:
Number of Coordinates: 1 ATTRIBUTE_NAME ATTRIBUTE_VALUE -------------------------------------------- _lst{0}._match_id 0 _lst{0}.ESPECE test _lst{0}.csv_type csv_none _lst{0}.fme_basename doublons1 _lst{0}.fme_dataset E:\FME\fichiers_donnees\test_doublons\doublons1.txt _lst{0}.fme_feature_type doublons1 _lst{0}.fme_geometry fme_point _lst{0}.fme_type fme_point _lst{0}.ID 1 _lst{0}.X 1 _lst{0}.Y 1 _lst{1}._match_id 0 _lst{1}.ESPECE test1 _lst{1}.csv_type csv_none _lst{1}.fme_basename doublons1 _lst{1}.fme_dataset E:\FME\fichiers_donnees\test_doublons\doublons1.txt _lst{1}.fme_feature_type doublons1 _lst{1}.fme_geometry fme_point _lst{1}.fme_type fme_point _lst{1}.ID 2 _lst{1}.X 1 _lst{1}.Y 1 _lst{2}._match_id 0 _lst{2}.ESPECE test3 _lst{2}.csv_type csv_none _lst{2}.fme_basename doublons1 _lst{2}.fme_dataset E:\FME\fichiers_donnees\test_doublons\doublons1.txt _lst{2}.fme_feature_type doublons1 _lst{2}.fme_geometry fme_point _lst{2}.fme_type fme_point _lst{2}.ID 4 _lst{2}.X 1 _lst{2}.Y 1 _match_id 0 ESPECE test csv_type csv_none fme_basename doublons1 fme_dataset E:\FME\fichiers_donnees\test_doublons\doublons1.txt fme_feature_type doublons1 fme_geometry fme_point fme_type fme_point ID 1 X 1 Y 1 Bounding Box: --------------- min x: 1.000000000000000, max x: 1.000000000000000 min y: 1.000000000000000, max y: 1.000000000000000 Coordinate Listing: ------------------- 1: (1.000000000000000, 1.000000000000000) +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Par contre cela ne crée pas X attributs, mais X valeurs de listes.
Ensuite, je ne suis pas sûr d'avoir saisi votre modèle de sortie.
Cordialement,
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#3 Mon 19 April 2010 16:28
- Kyk
- Participant actif
- Date d'inscription: 20 Jan 2009
- Messages: 88
Re: shp2shp - regroupement d'attributs de plusieurs entités dans une seule
Oui, j'ai essayé avec Matcher.
Mon fichier de sortie doit être un shape sans doublons dont le champs ESPECE correspond à la concaténation des champs ESPECE des autres points doubles qui ont été supprimés, séparé par des sauts de ligne. De cette façon, je pourrai créer une étiquette esthétique dans ArcMap.
Pour le Matcher, je ne comprends pas comment utiliser le préfixe de liste.
J'avais aussi pensé au PointOnPointOverlayer mais j'arrive pas à trouver comment récupérer mes différentes valeurs ESPECES des points situés au même endroit et à les mettre dans mon shape de sortie ne contenant plus que des points simples.
Hors ligne
#4 Mon 19 April 2010 16:36
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: shp2shp - regroupement d'attributs de plusieurs entités dans une seule
Utilisez Matcher,
Indiquez un préfixe de liste (dans l'exemple "_lst"),
Ne prenez que les données sortant par Single Matched ou Not Matched (comme indiqué dans la documentation de FME),
Utilisez un listconcatenator en lui indiquant l'attribut de liste (ici "_lst.ESPECE"), le caractère de concaténation (\n pour le saut de ligne si je me souviens bien) et enfin le nom de l'attribut.
Un petit tour sur le site du fabricant pour ce qui est des listes ou du matcher est toujours utile.
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#5 Mon 19 April 2010 17:22
Re: shp2shp - regroupement d'attributs de plusieurs entités dans une seule
essayez ceci :
coordinateRounder (0) au cas ou les points ne soient pas parfaitement superposés
CoordinateFetcher (on récupère x et y)
StringConcatenator ( x + y), création de l'attribut xy
ListBuilder (attribut de regroupement = xy)
Listconcatenator(nom d'espèce)
2dPointReplacer (pour récupérer la géométrie perdu avec Listbuilder)
résultat : 1 seul point par x,y avec un attribut de type "espèce 1, espèce 2, espèce 3..."
Hors ligne
#6 Mon 19 April 2010 18:03
- Kyk
- Participant actif
- Date d'inscription: 20 Jan 2009
- Messages: 88
Re: shp2shp - regroupement d'attributs de plusieurs entités dans une seule
Merci. J'ai essayé avec un Matcher où je récupère Les MATCHED et les SINGLE_MATCHED dans un PointOnPointOverlayer (Group by : x et y), puis un ListConcatenator sur ESPECE, puis un Matcher. Et ça fonctionne.
J'ai quand même essayé avec ta méthode Olivier et je bloque au 2DPointReplacer où je n'ai plus que 2 choix d'attribut pour le x et le y (les 2 attributs créés avec ListConcatenator et StringConcatenator). Est-ce que j'ai oublié quelque chose ?
Hors ligne
#7 Mon 19 April 2010 18:14
Re: shp2shp - regroupement d'attributs de plusieurs entités dans une seule
Tu as raison.
En fait le stringConcatenator est inutile,
Il est préférable de faire un listBuilder en utilisant deux attributs de regroupement x et y, ce qui permet de les récupérer à la fin.
Hors ligne
#8 Tue 20 April 2010 09:36
- Kyk
- Participant actif
- Date d'inscription: 20 Jan 2009
- Messages: 88
Re: shp2shp - regroupement d'attributs de plusieurs entités dans une seule
Merci pour votre aide. J'ai réussi à obtenir ce que je voulais.
Le hic c'est que les colonnes shp sont limités à 254 caractères et que parfois la concaténation de mes noms d'espèces dépassent cette limite. Du coup, mes étiquettes sont tronquées dans ArcMap. Je ne crois qu'il existe vraiment de solution à ce problème à part un travail manuel pour ces étiquettes trop longues. Heureusement, elles ne sont pas trop nombreuses.
Merci encore et bonne journée à tous
Hors ligne
#9 Tue 20 April 2010 10:03
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: shp2shp - regroupement d'attributs de plusieurs entités dans une seule
Avec un peu d'huile de calculs vous devriez pouvoir faire le tri sur les objets posant problèmes dès leur création dans FME.
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#10 Tue 20 April 2010 10:23
- Kyk
- Participant actif
- Date d'inscription: 20 Jan 2009
- Messages: 88
Re: shp2shp - regroupement d'attributs de plusieurs entités dans une seule
en fait, après un peu de réflexion, j'ai résolu le problème en passant tout simplement par une geodatabase en sortie et non shape, puisque la gdb n'est pas limité. Sinon j'avais aussi pensé par un fichier access avec un champs MEMO et ensuite faire un join dessus mais je n'ai pas testé.
Hors ligne
Pages: 1
- Sujet précédent - shp2shp - regroupement d'attributs de plusieurs entités dans une seule - Sujet suivant