Suite

Etiquette unique pour plusieurs entités avec des valeurs différentes dans ArcGIS Desktop ?

Etiquette unique pour plusieurs entités avec des valeurs différentes dans ArcGIS Desktop ?


J'ai plusieurs emplacements d'échantillons, qui ont été échantillonnés plusieurs fois au même endroit. Je veux étiqueter chaque emplacement avec des données empilées de chaque emplacement. Donc j'espère que ça ressemblera à ça

« Emplacement de l'échantillon 1 :

Profondeur 0-6 : .314

Profondeur 6-12 : .315

Profondeur 12-48 : .398"

Etc. Le problème en ce moment, c'est que si j'essaie de les étiqueter avec des expressions d'étiquette, je peux empiler les champs mais pas les lignes. Je reçois donc 5 étiquettes pour chaque emplacement. C'est parce que les mesures de profondeur ont leurs propres points. J'ai besoin des valeurs uniques, donc je ne peux pas dissoudre/agréger les points en valeurs moyennes, ce qui élimine beaucoup d'outils.

Je ne peux pas non plus simplement afficher les différentes lectures dans des étiquettes situées autour du point. Parce qu'il y a tellement de points et que je dois tous les étiqueter, la seule façon dont je puisse penser à tous les étiqueter à la fois est de les combiner en étiquettes uniques pour chaque point et ENSUITE de faire des opérations Maplex pour obtenir toutes les étiquettes affiché correctement.

J'ai exploré les expressions python et j'ai du mal à trouver quelque chose de proche de ce que je fais. Cette question StackOverFlow m'a été suggérée, mais cela n'a pas fonctionné pour moi : les étiquettes pour les points qui se chevauchent peuvent-elles être combinées/fusionnées en une seule étiquette ?

Lorsque j'essaie le code "Mise à jour n°2" dans cette solution, il indique simplement "Aucune fonctionnalité trouvée : impossible de vérifier l'expression". Je ne suis pas sûr non plus que ce soit ce que je recherche car je ne veux pas que les données de l'échantillon soient moyennées ou agrégées ; Je veux que les données d'échantillon uniques soient affichées pour chaque point.

En termes d'expression d'étiquette, je pense à un pseudo-code comme ceci :

def FindLabel ( [SAMPLE], [DEPTH], [READING]) : imprimez [SAMPLEID] pour [DEPTH] dans [SAMPLEID] : retournez [DEPTH], [GLNPO_TOTA], [FIELDS_TOT]

Là où, espérons-le, il serait possible qu'ArcGIS affiche un exemple d'emplacement, puis les profondeurs et les valeurs en dessous, le tout sous la forme d'une seule étiquette. C'est du moins l'idée.


Regardez mon code dans cet article de blog pour savoir comment connecter un seul point à une table ou une classe d'entités distincte pour répertorier toutes les données associées stockées dans plusieurs enregistrements/points. Vous souhaitez dissoudre vos points en fonction d'un ID d'emplacement pour créer une classe d'entités ponctuelles distincte qui ne contient qu'un seul point pour chaque emplacement physique (vous n'utiliserez aucun champ agrégé créé par la fusion, uniquement l'ID d'emplacement). Cela évite d'avoir à gérer la duplication d'étiquettes et améliore considérablement la vitesse d'étiquetage. La classe d'entités à point unique doit avoir un champ avec un ID unique pour chaque point qui est également contenu dans tous les points qui se chevauchent à cet emplacement. Ensuite, le code peut répertorier toutes les données de point qui se chevauchent dans une seule étiquette à l'aide d'un curseur et d'un dictionnaire.

La clé du code que j'ai conçu est l'utilisation d'une variable de dictionnaire globale dans l'expression d'étiquette qui est renseignée pour tous les points une fois par un curseur lors de la création de la première étiquette. Les étiquettes réelles ne lisent pas les données directement à partir du curseur, elles utilisent simplement le dictionnaire, qui est au moins 10 fois plus rapide que d'exécuter des requêtes distinctes pour chaque point. La clé de dictionnaire est l'ID unique pour chaque emplacement de point physique unique et la valeur associée à chaque clé de dictionnaire contient une liste de toutes les données connexes dont vous avez besoin à partir des points séparés pour chaque emplacement donné. Une fois que vous êtes configuré pour lire les données de champ à partir des listes du dictionnaire, le reste du code d'étiquette concerne le formatage de la sortie.


Voir la vidéo: les étiquettes sur arcgis