Suite

Join/Relate in ArcGIS 9.3.1 ArcEditor via un script python - est-ce possible ?

Join/Relate in ArcGIS 9.3.1 ArcEditor via un script python - est-ce possible ?


Je travaille sur un ArcEditor ArcGIS 9.3.1 et je souhaite écrire un script python qui effectuera une jointure ou une relation. Le problème est que le champ join tablejoin est limité à ARCINFO (licence supérieure) et la relation n'est pas faisable par code (du moins semble-t-il d'après l'aide d'ARCGIS). Comme la mise à niveau de la licence n'est pas une option, quelqu'un a-t-il un moyen de faire une jointure entre deux fichiers de formes dans les outils ArcGIS ou Opensource ?


Si vous importez les fichiers de formes dans une géodatabase, vous pouvez les joindre à l'aide de SQL avec la bibliothèque ODBC Python. Consultez cette page pour obtenir de l'aide sur l'utilisation de pyodbc.

Voici un exemple de code :

import pyodc cnxn = conn = pyodbc.connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=;") #access 2007 cursor = cnxn.cursor() query = """ SELECT * FROM table1 JOIN table2 ON table1.field1 = table2.field1 """ cursor.execute(query) rows = cursor.execute(query). chercher ()

Vous avez raison, dans l'Arc 9.3, le Joindre le champ et Ajouter une jointure Les outils gp nécessitent une licence ArcInfo. Cependant, dans Arc 10, les licences des outils Join Field et Add Join ont été modifiées et sont désormais disponibles pour tous les niveaux de licence (ArcView et ArcEditor).

Pour l'open source, jetez un œil à ogr2ogr. Je recommande de télécharger FWTools (voir l'aide-mémoire ici), qui inclut ogr2ogr dans l'installation et le rend très facile à démarrer rapidement. Depuis l'aide en ligne de ogr2ogr dans la section JOIN :

OGR SQL prend en charge une forme limitée de one to one JOIN. Cela permet de rechercher les enregistrements d'une table secondaire en fonction d'une clé partagée entre celle-ci et la table principale interrogée. Par exemple, une table d'emplacements de villes peut inclure une colonne nation_id qui peut être utilisée comme référence dans une table de nation secondaire pour récupérer un nom de nation.


Voir la vidéo: ArcGIS Lecture 1 Introduction