注意:工作限制我必须使用 python 2.7(我知道 - eyeroll)和标准模块。我还在学习python。
我在地理数据库中有大约 100 个平铺的“感兴趣区域”多边形,需要通过我的脚本进行处理。我的脚本已经在单个图块上进行了测试,效果很好。我需要建议如何迭代这个过程,这样我就不必一次运行一个。(我不想一次迭代 ALL 100 以防万一失败 - 我只想制作一个列表或一次运行大约 10-15 个的东西)。我还需要将我正在处理的切片名称添加到我输出的每个要素类中。
到目前为止,我已经尝试使用 fnmatch.fnmatch 哪些错误,因为它不喜欢列表。我将语法更改为没有错误但没有打印任何内容的括号。
我想一旦命名部分完成,在 for 循环中运行该过程应该可以工作。请帮助建议我做错了什么或者是否有更好的方法 - 谢谢!
这只是整个过程的一个片段:
tilename = 'T0104'
HIFLD_fc = os.path.join(work_dir, 'fc_clipped_lo' + tilename)
HIFLD_fc1 = os.path.join(work_dir, 'fc1_hifldstr_lo' + tilename)
HIFLD_fc2 = os.path.join(work_dir, 'fc2_non_ex_lo' + tilename)
HIFLD_fc3 = os.path.join(work_dir, 'fc3_no_wilder_lo' + tilename)
arcpy.env.workspace = (env_dir)
fcs = arcpy.ListFeatureClasses()
tile_list = ('AK1004', 'AK1005')
for tile in fcs:
filename, ext = os.path.splitext(tile)
if fnmatch.fnmatch(tile, tile_list):
print(tile)
arcpy.Clip_analysis(HIFLD_fc, bufferOut2, HIFLD_fc1, "")
print('HIFLD clipped for analysis')
arcpy.Clip_analysis(HIFLD_fc, env_mask, HIFLD_masked_rds, "")
print('HIFLD clipped by envelopes and excluded from analysis')
arcpy.Clip_analysis(HIFLD_masked_rds, wild_mask, HIFLD_excluded, "")
print('HIFLD clipped by wilderness mask and excluded from analysis')
arcpy.MakeFeatureLayer_management(HIFLD_fc1, 'hifld_lyr')
arcpy.SelectLayerByLocation_management('hifld_lyr', "COMPLETELY_WITHIN", bufferOut1, "", "NEW_SELECTION", "INVERT")
if arcpy.GetCount_management('hifld_lyr') > 0:
arcpy.CopyFeatures_management('hifld_lyr', HIFLD_fc2)
print('HIFLD split features deleted fc2')
else:
pass