为什么这个for循环返回空的形状文件?

106
2
07-06-2022 02:00
标签(1)
rescobar
通过
新贡献者II

你好,

我正在编写脚本,通过三个县循环,并通过where子句创建每个包含的城市的层。如果我不使用for循环,只在where子句中放入一个county,下面的脚本就可以工作。然而,当我在pro中执行这个时,它返回三个空白的县层。在where子句中,我的格式化字符串是否有问题?

城市= r"E:\用户\文档\ArcGIS\项目\实践\实践。gdb\ incorcity " counties = r"E:\Users\Documents\ArcGIS\Projects\Practice\Practice。gdb\Countygdb" outpath = r"E:\用户\文档\ArcGIS\项目\实践\实践。gdb" arcpy.env.overwriteOutput = True counties_of_interest = ['Contra Costa County', 'Alameda County', 'Solano County']MakeFeatureLayer(cities, 'cities_temp')用于counties_of_interest中的县:arcpy.management。MakeFeatureLayer(县,'counties_temp', """ COUNTY_NAME = '{}' """.format(县))arcpy.management。SelectLayerByLocation('cities_temp', 'WITHIN', 'counties_temp') county_1 = county。替换(" ","_")arcpy.conversion。FeatureClassToFeatureClass('cities_temp', outpath, f'cities_{county_1}')

标签(2)
0荣誉
2回答
DavidSolari
通过
临时贡献者II

从我所处的位置很难诊断出这一点,你的代码总体上看起来很可靠。你可以做的一件事是修改循环来打印生成的SQL子句,看看如果你试图用它们设置定义查询,然后按位置选择它们,会发生什么。这样,您就可以看到流程在哪些地方交互式地中断了。如果这样一切都很好,那么我不知道下一步会是什么。也许可以尝试替换arcpy.conversion.FeatureClassToFeatureClassarcpy.analysis.Select?

0荣誉
HannesZiegler
通过 Esri贡献者
Esri贡献者

@rescobar我试了一下,得到了预期的结果。您使用的是哪个版本的ArcGIS Pro ?

0荣誉