Recorte percorrendo a lista usando ArcPy
Estou tendo problemas para criar uma função de loop que examina um geodatabase, recorta cada classe de recurso em um polígono "study_area" e coloca os arquivos recortados em um geodatabase separado. Continuo recebendo a mensagem "Não foi possível cortar as classes de recursos". Os recursos podem ser cortados individualmente, mas tentar executar esse loop não funciona.
O que estou perdendo aqui?
Tentei pesquisar perguntas semelhantes, mas só encontrei respostas sobre clipes raster. Código abaixo.
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()
Respostas
Eu vejo dois problemas:
você está definindo
TargetWorkspaceembora esteja chamandotargetWorkspace. Python diferencia maiúsculas de minúsculas.Você precisa unir corretamente as strings para criar caminhos. Eu recomendo altamente se familiarizar com os.path.join(). Por exemplo
Ao invés de:
outClipFeatureClass = targetWorkspace + "//Studyarea_" + fc
Usar:
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)