2016-10-05 2 views
0

J'ai créé un fichier CSV assez volumineux (63000 lignes et environ 40 colonnes) et je veux le joindre avec un fichier Shapefile ESRI. J'ai utilisé ArcPy mais l'ensemble du processus prend 30! minutes. Si je fais la jointure avec le fichier original (petit) CSV, joignez-le avec le fichier Shapefile puis effectuez mes calculs avec ArcPy et ajoutez continuellement de nouveaux champs et calculez le contenu en 20 minutes. Je suis à la recherche d'une solution plus rapide et j'ai trouvé qu'il existe d'autres modules Python tels que PySHP ou DBFPy mais je n'ai trouvé aucun moyen de rejoindre les tables, espérant que cela pourrait aller plus vite.Table DBF Rejoindre sans utiliser Arcpy?

Mon but est déjà de m'éloigner autant que possible de ArcPy et de n'utiliser que Python, donc pas de PostgreSQL et de préférence.

Quelqu'un at-il une solution pour cela? Merci beaucoup!

+0

exporter le fichier shape à un tableau numpy en utilisant FeatureClassToNumPyArray dans arcpy. Lire votre table dans un tableau numpy (beaucoup d'options) Importer les recfonctions de numpy ... il y a la possibilité de joindre des données tabulaires intégrées ici. (importer numpy.lib.recfunctions comme rfn .... puis faire un dir (rfn) pour trouver les fonctions) – NaN

+0

@NaN: S'il vous plaît faire une réponse avec plus de détails nécessaires. –

+0

Pouvez-vous nous donner quelques détails sur la jointure et le type d'opérations que vous faites? –

Répondre

0

Pas exactement une solution pour mon problème programmatique mais pratique:

Mon shapefile est toujours statique, seuls les attributs des éléments changeront. Donc, je copie mon shapefile original (seulement les fichiers de base avec des fins .shp, .shx, .prj) dans mon dossier de sortie et le renommer en le nom que je veux. Ensuite, je crée mon fichier CSV avec tous les calculs et le convertis en DBF et l'enregistre aussi avec le nom de mon nouveau fichier de formes dans le dossier de sortie. ArcGIS chargera maintenant le fichier de formes avec mon propre fichier DBF et je n'aurai même pas besoin de faire de tablejoin du tout!

Maintenant, mon programme fonctionne en seulement 50 secondes!

Je suis toujours intéressé par plus de solutions pour le problème de jointure de table, peut-être que je rencontrerai ce problème encore dans le futur où le shapefile n'est pas toujours statique. Je ne comprenais pas vraiment la solution de Nan, je suis toujours au niveau « débutant avancé » en Python :)

Cheers