Mehr

Zusammenführen von Shapefiles in Ordnern und Unterordnern mit arcpy

Zusammenführen von Shapefiles in Ordnern und Unterordnern mit arcpy


Ich versuche, 20 Shapefiles zusammenzuführen, um ein Shapefile zu erhalten, das alle Funktionen enthält. Alle Shapefiles werden "migrashim" genannt und verteilen sich in einem großen Ordner, der in viele Unterordner unterteilt ist. Mein Code ist:

import arcpy,os,sys,string,fnmatch import arcpy.mapping from arcpy import env rootPath = 'C:Projectlayers' pattern = 'migrashim.shp' counter = 0 für root, dirs, files in os.walk(rootPath ): für Dateinamen in fnmatch.filter(files, pattern): print(os.path.join(root, filename)) arcpy.Merge_management(["migrasham.shp"], r"C:Projectlayersmigrashim_total. shp") Zähler = Zähler + 1 Druckzähler

und ich bekomme einen Fehler:

FEHLER 000732: Eingabedatensätze: Datensatz migrashim.shp existiert nicht oder wird nicht unterstützt Ausführung fehlgeschlagen (Zusammenführen).


Derzeit verwenden Sie also die Eingabe Ihres Shape-Dateinamens, geben jedoch kein Verzeichnis an. Der vollständige Pfad wird benötigt, damit die Zusammenführung funktioniert. Oder Sie können den Arbeitsbereich Ihrer Umgebung jedes Mal festlegen, wenn Sie eine Datei finden. Sie führen auch nichts zusammen, da Sie nur einen einzigen Eingang haben.

Ich würde eine Liste aller gefundenen Übereinstimmungen auffüllen, damit Sie sie verwenden können, um am Ende Ihres Codes eine einzelne Zusammenführung durchzuführen.

Versuchen Sie so etwas:

match = [] für root, dirs, files in os.walk(rootPath): für filename in files: if filename == "migrashim.shp": match = ( os.path.join(root, filename)) match.append (match) counter = counter + 1 arcpy.Merge_management(matches, r"C:Projectlayersmigrashim_total.shp")

Schau das Video: Filling Attribute Table Automatically with Simple Steps in ArcMap Using Field Calculator