TransWikia.com

Process 100 of feature classes through script and fc name to end of each output

Geographic Information Systems Asked by Cödingers Cat on April 28, 2021

I have about 100 tiled ‘area of interest’ polygons in a geodatabase that need to be processed through my script. My script has been tested on individual tiles & works great. I need advice how to iterate this process so I don’t have to run one at a time. (I don’t want to iterate ALL 100 at once in case something fails – I just want to make a list or something to run about 10-15 at a time). I also need to add the tile name that I am processing to each feature class that I output.

So far I have tried using fnmatch.fnmatch which errors because it does not like a list. I changed syntax to parenthesis which did NOT error but did NOT print anything.

I figure once that naming piece is done, running the process in the for loop should work. What I am doing wrong or is there is a better way?

This is just a snippet of the full process:

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

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP