1

注意:工作限制我必须使用 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
4

0 回答 0