Ausschneiden durch Durchlaufen der Liste mit ArcPy
Ich habe Probleme beim Erstellen einer Schleifenfunktion, die eine Geodatabase durchsucht, jede Feature-Class in ein "study_area" -Polygon schneidet und die abgeschnittenen Dateien in einer separaten Geodatabase ablegt. Ich erhalte immer wieder "Feature-Klassen konnten nicht abgeschnitten werden". Die Funktionen können alle einzeln abgeschnitten werden, aber der Versuch, diese Schleife auszuführen, funktioniert nicht.
Was fehlt mir hier?
Ich habe versucht, nach ähnlichen Fragen zu suchen, aber nur Antworten zu Rasterclips gefunden. Code unten.
from arcpy import env
# setting my source and target geodatabase
SourceWorkspace = r"E:\UFD Commercial Corridor\Roosevelt.gdb"
TargetWorkspace = r"E:\UFD Commercial Corridor\Clipped.gdb"
#setting my clip feature (which is a polygon)
clipfeature = r"E:\UFD Commercial Corridor\Clip area.gdb\study_area"
env.workspace = SourceWorkspace
try:
fclist = arcpy.ListFeatureClasses()
for fc in fcList:
outClipFeatureClass = targetWorkspace + "//Studyarea_" + fc
arcpy.Clip_analysis(fc,clipfeature,outClipFeatureClass)
except:
arcpy.AddError("Could not clip feature classes")
print ("could not clip feature classes")
print arcpy.GetMessages()
Antworten
Ich sehe zwei Probleme:
Sie definieren,
TargetWorkspaceobwohl Sie anrufentargetWorkspace. Python unterscheidet zwischen Groß- und Kleinschreibung.Sie müssen Zeichenfolgen ordnungsgemäß zusammenfügen, um Pfade zu erstellen. Ich empfehle dringend, sich mit vertraut zu machen os.path.join(). Zum Beispiel
Anstatt von:
outClipFeatureClass = targetWorkspace + "//Studyarea_" + fc
Verwenden:
outClipFeatureClass = os.path.join(TargetWorkspace, "Studyarea_" + fc)
import arcpy
import os
# setting my source and target geodatabase
SourceWorkspace = r"E:\UFD Commercial Corridor\Roosevelt.gdb"
TargetWorkspace = r"E:\UFD Commercial Corridor\Clipped.gdb"
#setting my clip feature (which is a polygon)
clipfeature = r"E:\UFD Commercial Corridor\Clip area.gdb\study_area"
env.workspace = SourceWorkspace
fclist = arcpy.ListFeatureClasses()
for fc in fcList:
outClipFeatureClass = os.path.join(TargetWorkspace, "Studyarea_" + fc)
arcpy.Clip_analysis(fc,clipfeature,outClipFeatureClass)