arcpy를 사용 중이고 내 작업 공간 내의 여러 geodatabase에 중첩 된 "building"이라는 특정 피쳐 클래스를 추출하려고합니다.Arcgis python (Arcpy)에서 지정된 이름의 피쳐 클래스 선택
import arcpy
import os
workspace = "C:/Wiley/P1/gis"
search = "Building"
outdir = "C:/Wiley/P1/gis/HK80.gdb"
fc = []
walk = arcpy.da.Walk(workspace, datatype="FeatureClass", type="Polygon")
for dirpath, dirnames, filenames in walk:
for filename in filenames:
if search == filename:
fc.append(os.path.join(dirpath, filename))
if fc:
output = os.path.join(outdir, os.path.basename(search) + "_merge")
arcpy.Merge_management(fc, output)
이 코드가 성공적으로 완료 : 여기
는 코드입니다.하지만 코드를 조금 확장하고 모든 기능 클래스를 통해 루프 병합 명령을 시도 그래서 다른 많은 featureclass는 "건물"에서 떨어져 지오 데이터베이스에있다 : 나는 명중 곳
import arcpy
import os
#--------------------------
#example list workspace
arcpy.env.workspace = "C:/Wiley/P1/gis/HKU_Job69.gdb"
#Generate exmaple list dataset
datasets = arcpy.ListDatasets(feature_type='All')
datasets = [''] + datasets if datasets is not None else []
fc_list = []
#--------------------------
#where all the gdb is nested
workspace = "C:/Wiley/P1/gis"
#define output
outdir = "C:/Wiley/P1/gis/HK80.gdb"
#List of Feature classes
fc = []
#define walk for looping
walk = arcpy.da.Walk(workspace, datatype="FeatureClass", type="Any")
for ds in datasets:
for fc_example in arcpy.ListFeatureClasses(feature_dataset=ds):
fc_list.append(fc_example)
for f in fc_list: #Loop through the list
for dirpath, dirnames, filenames in walk:
for filename in filenames:
if f == filename:
fc.append(os.path.join(dirpath, filename))
if fc:
output = os.path.join(outdir, os.path.basename(search) + "_merge")
arcpy.Merge_management(fc, output)
입니다 벽. 이 코드에 문제가 있습니까? 나는 파이썬에 익숙하지 않으므로 숙련 된 전문가라면 로직에서 오류를 즉시 발견 할 수 있습니다. f 변수는 전혀 루프하지 않는 것 같습니다.
https://gis.stackexchange.com/q/254711으로 크로스 제기/115 – PolyGeo