#1 Thu 22 December 2011 17:45
- philomelos40
- Participant occasionnel
- Date d'inscription: 15 Apr 2006
- Messages: 16
[Arcgis 9.3] Table de lien
Bonjour à tous,
Je travaille actuellement avec des entités et des tables de liens sous ArcGIS 9.3. Je souhaiterai récupérer dans un champ de mon entité, l'ensemble des attributs d'un champ de la table de lien correspondante. Quelqu'un aurait-il une petite idée de la manière dont je devrais procéder?
Merci pour votre aide.
Bonne soirée
Dernière modification par philomelos40 (Thu 22 December 2011 17:49)
Hors ligne
#2 Thu 22 December 2011 18:28
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [Arcgis 9.3] Table de lien
Salut,
Peux tu nous donner un peu plus de précisions?
A+
Joël
Hors ligne
#3 Fri 23 December 2011 09:17
- philomelos40
- Participant occasionnel
- Date d'inscription: 15 Apr 2006
- Messages: 16
Re: [Arcgis 9.3] Table de lien
Les tables de liens me permettent de réaliser une relation 1,n dans ArcGis. Si pour la consultation le système est pertinent, il l'est beaucoup moins lorsque l'on veut exploiter les informations présentes dans la table de liens.
Je prends un exemple : je dispose d'une parcelle agricole (je travaille à l'échelle parcellaire) qui constitue mon entité géographique. Ce polygone parcelle est composé de différentes cultures; les caractéristiques de chacune d'elles sont stockées dans la table de lien. Je souhaiterai faire apparaître une seule étiquette par parcelle, avec mes types de cultures associées (par exemple: blé, betterave, orge...). Pour cela, j'ai d'ores et déjà créé un champ dans mon entité parcelle, voué à accueillir ces informations. Ma question est donc de savoir comment récupérer les info de la table de lien et les intégrer dans mon champ créé à cet effet?
Merci encore pour votre aide.
Hors ligne
#4 Mon 02 January 2012 14:53
- Meums
- Participant actif
- Lieu: Bordeaux
- Date d'inscription: 26 Mar 2009
- Messages: 98
Re: [Arcgis 9.3] Table de lien
Bonjour Turdus, bonjour à toutes et tous, et bonne année.
Puisque que tu es en géodatabase, je ne connais pas d'autre solution que de passer par access.
J'ai aussi retrouvé ce post (http://georezo.net/forum/viewtopic.php?id=73410&hl=relation - Cf #10) qui donne une solution en passant par Spatialite GUI.
Je n'ai encore rien testé mais si tu trouves, je suis preneur...
Je crois qu'en fait ma propre question serait : qui a déjà réussit à créer un outil ou un code DIRECTEMENT sous Arcview permettant de concaténer, dans un champ de la donnée cartographiée, la liste des données liées dans une table dbf.
Par exemple sur la parcelle A1, on trouve : scorpion, fennec, dromadaire...
Merci à vous
Hors ligne
#5 Mon 02 January 2012 16:56
Re: [Arcgis 9.3] Table de lien
Bonjour,
Ce script python "Concatenate Row Values" publié sur le blog "Geoprocessing" ne permettrait-il pas de résoudre ton problème ?
A+
Franck
Hors ligne
#6 Tue 03 January 2012 11:19
- philomelos40
- Participant occasionnel
- Date d'inscription: 15 Apr 2006
- Messages: 16
Re: [Arcgis 9.3] Table de lien
Bonjour,
Tout d'abord, je souhaite une bonne année à toute l'équipe de Georezo.
Ensuite, pour en revenir au sujet, je n'arrive pas à installer correctement le script python télécharger sur le site de ressource Arcgis.
J'ai procédé de la manière suivante :
- création d'une boîte à outils dans Arctoolbox;
- ajouter le script; j'ai conservé les paramètres par défaut.
Au moment de lancer le script, un message m'indique que l'outil n'a pas de paramètres.
Quelle est la procédure à suivre pour l'installation de ce script?
Hors ligne
#7 Tue 03 January 2012 18:17
Re: [Arcgis 9.3] Table de lien
Bonjour,
Pour utiliser le script, après avoir décompresser l'outil dans un répertoire de ton choix, il suffit d'ajouter la ToolBox en faisant clic droit sur l'ArcToolbox" et "Ajouter une boîte à outils" et naviguer jusqu'au fichier "\ConcatenateRowValues10\ConcatenateRowValues10.tbx".
Malheureusement, l'outil a été fait pour la version 10 d'ArcGIS.
A+
Franck
Hors ligne
#8 Wed 04 January 2012 08:28
Re: [Arcgis 9.3] Table de lien
Bonjour,
Le script était facile à porter en version 9.3.1, vous trouverez ci-joint une version pour ArcGIS 9.3.1 de l'outil "Concatenate Row Values".
Bonne journée
Franck
Hors ligne
#9 Wed 04 January 2012 14:36
- Meums
- Participant actif
- Lieu: Bordeaux
- Date d'inscription: 26 Mar 2009
- Messages: 98
Re: [Arcgis 9.3] Table de lien
Bonjour Franck
et grand merci d'avoir mis le nez dans cet outil, j'en étais incapable.
L'outil fonctionne sur du dbf, avec ou sans géodatabase, en format numérique ou texte. Mais, et c'est n'est pas étonnant, il n'aime pas les accents.
En tout cas c'est vraiment pratique en phase de mise en page (étiquetage).
C'est ce qu'il manquait à un SIG utilisant les tables de liens sur Arcview 9.3...
M
Hors ligne
#10 Wed 04 January 2012 16:14
- Meums
- Participant actif
- Lieu: Bordeaux
- Date d'inscription: 26 Mar 2009
- Messages: 98
Re: [Arcgis 9.3] Table de lien
Re
J'ai essayé noter "VbNewline" comme séparateur, et, je n'obtiens pas ce que je voudrais, à savoir: la présentation quasi-directe d'une étiquette avec retrour à la ligne
Par exemple pour un parcelle A1 : Fennec
Dromadaire
Scorpion
Je n'ai plus qu'à passer par des Annotations...
PS - lorsque l'on faite une mise à jour colonne en insérant VbNewline, les étiquettes produites respectent un saut de ligne...
Abientôt
M
Hors ligne
#11 Tue 17 January 2012 15:16
- philomelos40
- Participant occasionnel
- Date d'inscription: 15 Apr 2006
- Messages: 16
Re: [Arcgis 9.3] Table de lien
Merci à tous pour vos réponses
Hors ligne
#12 Thu 13 June 2013 09:25
- Kevin Jousseaume
- Participant assidu
- Lieu: Nanterre, région parisienne
- Date d'inscription: 20 Mar 2006
- Messages: 217
Re: [Arcgis 9.3] Table de lien
Bonjour,
Suite à une discussion sur les limitations de l'outil "Concatenate" en termes de gestion des accents (http://georezo.net/forum/viewtopic.php?id=85557), je me suis permis d'apporter une toute petite modification au script porté par Franck en 9.3.
Vous trouverez le script modifié en pièce jointe.
Pour ceux que cela intéresserait, le problème se situait au niveau de l'utilisation de la fonction "str()" qui est particulièrement capricieuse lorsque l'encodage ne lui convient pas. J'ai essayé des .decode('utf-8').encode('cpcp1252') dans tous les sens, mais sans succès. Alors j'ai tout simplement fini par remplacer la fonction "str()" par un ".join()" et le miracle a eu lieu :
Code:
while row: id = row.getValue(CaseField) value = row.getValue(ReadFromField) dictionary[id] = value if id == lastid: #value = str(lastvalue) + Delimiter + str(value) value = Delimiter.join((lastvalue,value)) dictionary[id] = value lastid = id lastvalue = value row = cur1.next()
Pour ceux qui utilisent la version 10, il vous suffit d'apporter la même modification au script pour que les accents soient correctement traités.
A+,
Kevin
Hors ligne