I was under the impression that creating a feature layer created a new independent temporary layer. I was hoping that using the feature layer route would enable specific selection from each feature layer to be passed to the update cursor leaving the original feature class, SubLayer_pp_trans_GUJoin_UniqueSubs, intact.
Any suggestions on how to work around this issue? I would like SubLayer_pp_trans_GUJoin_UniqueSubs to retain the record count of 16763 for the proper count updates from the update cursor.
Here is an updated printout showing the record count of the feature layer and SubLayer_pp_trans_GUJoin_UniqueSubs after each throughout processing:
The 'feature layer count:' print statement is always reflective of the SubLayer_pp_trans_GUJoin_UniqueSubs feature layer. I am really confused as to why it varies so much. Some count values are higher than the previous feature layer (maybe I'm missing something). I realize that the 'selected out' count is dependent on the specific selection applied to each specific feature layer, so it will vary among the print statements.
Here is the code beginning from where the SubLayer_pp_trans_GUJoin_UniqueSubs deviate from 16763 (...If it helps, sorry it is so long; the added print statements ballooned it even more).
arcpy.AddField_management(subLayer, "UNIQUE_SUB_COUNT_13_8", "SHORT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
Join_13_8_freq = defaultGdbPath + '\Join_13_8_freq'
arcpy.MakeFeatureLayer_management(SubLayer_pp_trans_GUJoin_UniqueSubs, "JoinUniqueSubs_13_8", where_13_8)
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_13_8")
count = int(RecordCount.getOutput(0))
print("feature layer count:", count)
arcpy.DeleteIdentical_management("JoinUniqueSubs_13_8", ['SUBID', 'SUB1SUB2', 'VOLTAGE'])
arcpy.Frequency_analysis("JoinUniqueSubs_13_8", Join_13_8_freq, ["SUBID"])
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_13_8")
count = int(RecordCount.getOutput(0))
print("feature layer selected out count:", count)
search_feats_Unique_Subs_13_8 = {f[0]:f[1] for f in arcpy.da.SearchCursor(Join_13_8_freq,["SUBID","Frequency"])}
with arcpy.da.UpdateCursor(subLayer,["SUBID","UNIQUE_SUB_COUNT_13_8"]) as upd_cur:
for upd_row in upd_cur:
upd_row[1] = search_feats_Unique_Subs_13_8.get(upd_row[0], 0)
upd_cur.updateRow(upd_row)
print("UNIQUE_SUB_COUNT_13_8 Updated")
del upd_cur
RecordCount = arcpy.GetCount_management(SubLayer_pp_trans_GUJoin_UniqueSubs)
count = int(RecordCount.getOutput(0))
print("SubLayer_pp_trans_GUJoin_UniqueSubs count:", count)
arcpy.AddField_management(subLayer, "UNIQUE_SUB_COUNT_46", "SHORT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
Join_46_freq = defaultGdbPath + '\Join_46_freq'
arcpy.MakeFeatureLayer_management(SubLayer_pp_trans_GUJoin_UniqueSubs, "JoinUniqueSubs_46", where_46)
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_46")
count = int(RecordCount.getOutput(0))
print("feature layer count:", count)
arcpy.DeleteIdentical_management("JoinUniqueSubs_46", ['SUBID', 'SUB1SUB2', 'VOLTAGE'])
arcpy.Frequency_analysis("JoinUniqueSubs_46", Join_46_freq, ["SUBID"])
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_46")
count = int(RecordCount.getOutput(0))
print("feature layer selected out count:", count)
search_feats_Unique_Subs_46 = {f[0]:f[1] for f in arcpy.da.SearchCursor(Join_46_freq,["SUBID","Frequency"])}
with arcpy.da.UpdateCursor(subLayer,["SUBID","UNIQUE_SUB_COUNT_46"]) as upd_cur:
for upd_row in upd_cur:
upd_row[1] = search_feats_Unique_Subs_46.get(upd_row[0], 0)
upd_cur.updateRow(upd_row)
print("UNIQUE_SUB_COUNT_46 Updated")
del upd_cur
RecordCount = arcpy.GetCount_management(SubLayer_pp_trans_GUJoin_UniqueSubs)
count = int(RecordCount.getOutput(0))
print("SubLayer_pp_trans_GUJoin_UniqueSubs count:", count)
arcpy.AddField_management(subLayer, "UNIQUE_SUB_COUNT_69", "SHORT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
Join_69_freq =defaultGdbPath + '\Join_69_freq'
arcpy.MakeFeatureLayer_management(SubLayer_pp_trans_GUJoin_UniqueSubs, "JoinUniqueSubs_69", where_69)
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_69")
count = int(RecordCount.getOutput(0))
print("feature layer count:", count)
arcpy.DeleteIdentical_management("JoinUniqueSubs_69", ['SUBID', 'SUB1SUB2', 'VOLTAGE'])
arcpy.Frequency_analysis("JoinUniqueSubs_69", Join_69_freq, ["SUBID"])
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_69")
count = int(RecordCount.getOutput(0))
print("feature layer selected out count:", count)
search_feats_Unique_Subs_69 = {f[0]:f[1] for f in arcpy.da.SearchCursor(Join_69_freq,["SUBID","Frequency"])}
with arcpy.da.UpdateCursor(subLayer,["SUBID","UNIQUE_SUB_COUNT_69"]) as upd_cur:
for upd_row in upd_cur:
upd_row[1] = search_feats_Unique_Subs_69.get(upd_row[0], 0)
upd_cur.updateRow(upd_row)
print("UNIQUE_SUB_COUNT_69 Updated")
del upd_cur
RecordCount = arcpy.GetCount_management(SubLayer_pp_trans_GUJoin_UniqueSubs)
count = int(RecordCount.getOutput(0))
print("SubLayer_pp_trans_GUJoin_UniqueSubs count:", count)
arcpy.AddField_management(subLayer, "UNIQUE_SUB_COUNT_115", "SHORT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
Join_115_freq =defaultGdbPath + '\Join_115_freq'
arcpy.MakeFeatureLayer_management(SubLayer_pp_trans_GUJoin_UniqueSubs, "JoinUniqueSubs_115", where_115)
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_115")
count = int(RecordCount.getOutput(0))
print("feature layer count:", count)
arcpy.DeleteIdentical_management("JoinUniqueSubs_115", ['SUBID', 'SUB1SUB2', 'VOLTAGE'])
arcpy.Frequency_analysis("JoinUniqueSubs_115", Join_115_freq, ["SUBID"])
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_115")
count = int(RecordCount.getOutput(0))
print("feature layer selected out count:", count)
search_feats_Unique_Subs_115 = {f[0]:f[1] for f in arcpy.da.SearchCursor(Join_115_freq,["SUBID","Frequency"])}
with arcpy.da.UpdateCursor(subLayer,["SUBID","UNIQUE_SUB_COUNT_115"]) as upd_cur:
for upd_row in upd_cur:
upd_row[1] = search_feats_Unique_Subs_115.get(upd_row[0], 0)
upd_cur.updateRow(upd_row)
print("UNIQUE_SUB_COUNT_115 Updated")
del upd_cur
RecordCount = arcpy.GetCount_management(SubLayer_pp_trans_GUJoin_UniqueSubs)
count = int(RecordCount.getOutput(0))
print("SubLayer_pp_trans_GUJoin_UniqueSubs count:", count)
arcpy.AddField_management(subLayer, "UNIQUE_SUB_COUNT_138", "SHORT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
Join_138_freq =defaultGdbPath + '\Join_138_freq'
arcpy.MakeFeatureLayer_management(SubLayer_pp_trans_GUJoin_UniqueSubs, "JoinUniqueSubs_138", where_138)
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_138")
count = int(RecordCount.getOutput(0))
print("feature layer count:", count)
arcpy.DeleteIdentical_management("JoinUniqueSubs_138", ['SUBID', 'SUB1SUB2', 'VOLTAGE'])
arcpy.Frequency_analysis("JoinUniqueSubs_138", Join_138_freq, ["SUBID"])
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_138")
count = int(RecordCount.getOutput(0))
print("feature layer selected out count:", count)
search_feats_Unique_Subs_138 = {f[0]:f[1] for f in arcpy.da.SearchCursor(Join_138_freq,["SUBID","Frequency"])}
with arcpy.da.UpdateCursor(subLayer,["SUBID","UNIQUE_SUB_COUNT_138"]) as upd_cur:
for upd_row in upd_cur:
upd_row[1] = search_feats_Unique_Subs_138.get(upd_row[0], 0)
upd_cur.updateRow(upd_row)
print("UNIQUE_SUB_COUNT_138 Updated")
del upd_cur
RecordCount = arcpy.GetCount_management(SubLayer_pp_trans_GUJoin_UniqueSubs)
count = int(RecordCount.getOutput(0))
print("SubLayer_pp_trans_GUJoin_UniqueSubs count:", count)
arcpy.AddField_management(subLayer, "UNIQUE_SUB_COUNT_161", "SHORT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
Join_161_freq =defaultGdbPath + '\Join_161_freq'
arcpy.MakeFeatureLayer_management(SubLayer_pp_trans_GUJoin_UniqueSubs, "JoinUniqueSubs_161", where_161)
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_161")
count = int(RecordCount.getOutput(0))
print("feature layer count:", count)
arcpy.DeleteIdentical_management("JoinUniqueSubs_161", ['SUBID', 'SUB1SUB2', 'VOLTAGE'])
arcpy.Frequency_analysis("JoinUniqueSubs_161", Join_161_freq, ["SUBID"])
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_161")
count = int(RecordCount.getOutput(0))
print("feature layer selected out count:", count)
search_feats_Unique_Subs_161 = {f[0]:f[1] for f in arcpy.da.SearchCursor(Join_161_freq,["SUBID","Frequency"])}
with arcpy.da.UpdateCursor(subLayer,["SUBID","UNIQUE_SUB_COUNT_161"]) as upd_cur:
for upd_row in upd_cur:
upd_row[1] = search_feats_Unique_Subs_161.get(upd_row[0], 0)
upd_cur.updateRow(upd_row)
print("UNIQUE_SUB_COUNT_161 Updated")
del upd_cur
RecordCount = arcpy.GetCount_management(SubLayer_pp_trans_GUJoin_UniqueSubs)
count = int(RecordCount.getOutput(0))
print("SubLayer_pp_trans_GUJoin_UniqueSubs count:", count)
arcpy.AddField_management(subLayer, "UNIQUE_SUB_COUNT_230", "SHORT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
Join_230_freq =defaultGdbPath + '\Join_230_freq'
arcpy.MakeFeatureLayer_management(SubLayer_pp_trans_GUJoin_UniqueSubs, "JoinUniqueSubs_230", where_230)
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_230")
count = int(RecordCount.getOutput(0))
print("feature layer count:", count)
arcpy.DeleteIdentical_management("JoinUniqueSubs_230", ['SUBID', 'SUB1SUB2', 'VOLTAGE'])
arcpy.Frequency_analysis("JoinUniqueSubs_230", Join_230_freq, ["SUBID"])
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_230")
count = int(RecordCount.getOutput(0))
print("feature layer selected out count:", count)
search_feats_Unique_Subs_230 = {f[0]:f[1] for f in arcpy.da.SearchCursor(Join_230_freq,["SUBID","Frequency"])}
with arcpy.da.UpdateCursor(subLayer,["SUBID","UNIQUE_SUB_COUNT_230"]) as upd_cur:
for upd_row in upd_cur:
upd_row[1] = search_feats_Unique_Subs_230.get(upd_row[0], 0)
upd_cur.updateRow(upd_row)
print("UNIQUE_SUB_COUNT_230 Updated")
del upd_cur
RecordCount = arcpy.GetCount_management(SubLayer_pp_trans_GUJoin_UniqueSubs)
count = int(RecordCount.getOutput(0))
print("SubLayer_pp_trans_GUJoin_UniqueSubs count:", count)
arcpy.AddField_management(subLayer, "UNIQUE_SUB_COUNT_345", "SHORT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
Join_345_freq =defaultGdbPath + '\Join_345_freq'
arcpy.MakeFeatureLayer_management(SubLayer_pp_trans_GUJoin_UniqueSubs, "JoinUniqueSubs_345", where_345)
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_345")
count = int(RecordCount.getOutput(0))
print("feature layer count:", count)
arcpy.DeleteIdentical_management("JoinUniqueSubs_345", ['SUBID', 'SUB1SUB2', 'VOLTAGE'])
arcpy.Frequency_analysis("JoinUniqueSubs_345", Join_345_freq, ["SUBID"])
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_345")
count = int(RecordCount.getOutput(0))
print("feature layer selected out count:", count)
search_feats_Unique_Subs_345 = {f[0]:f[1] for f in arcpy.da.SearchCursor(Join_345_freq,["SUBID","Frequency"])}
with arcpy.da.UpdateCursor(subLayer,["SUBID","UNIQUE_SUB_COUNT_345"]) as upd_cur:
for upd_row in upd_cur:
upd_row[1] = search_feats_Unique_Subs_345.get(upd_row[0], 0)
upd_cur.updateRow(upd_row)
print("UNIQUE_SUB_COUNT_345 Updated")
del upd_cur
RecordCount = arcpy.GetCount_management(SubLayer_pp_trans_GUJoin_UniqueSubs)
count = int(RecordCount.getOutput(0))
print("SubLayer_pp_trans_GUJoin_UniqueSubs count:", count)
arcpy.AddField_management(subLayer, "UNIQUE_SUB_COUNT_500", "SHORT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
Join_500_freq =defaultGdbPath + '\Join_500_freq'
arcpy.MakeFeatureLayer_management(SubLayer_pp_trans_GUJoin_UniqueSubs, "JoinUniqueSubs_500", where_500)
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_500")
count = int(RecordCount.getOutput(0))
print("feature layer count:", count)
arcpy.DeleteIdentical_management("JoinUniqueSubs_500", ['SUBID', 'SUB1SUB2', 'VOLTAGE'])
arcpy.Frequency_analysis("JoinUniqueSubs_500", Join_500_freq, ["SUBID"])
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_500")
count = int(RecordCount.getOutput(0))
print("feature layer selected out count:", count)
search_feats_Unique_Subs_500 = {f[0]:f[1] for f in arcpy.da.SearchCursor(Join_500_freq,["SUBID","Frequency"])}
with arcpy.da.UpdateCursor(subLayer,["SUBID","UNIQUE_SUB_COUNT_500"]) as upd_cur:
for upd_row in upd_cur:
upd_row[1] = search_feats_Unique_Subs_500.get(upd_row[0], 0)
upd_cur.updateRow(upd_row)
print("UNIQUE_SUB_COUNT_500 Updated")
del upd_cur
RecordCount = arcpy.GetCount_management(SubLayer_pp_trans_GUJoin_UniqueSubs)
count = int(RecordCount.getOutput(0))
print("SubLayer_pp_trans_GUJoin_UniqueSubs count:", count)
arcpy.AddField_management(subLayer, "UNIQUE_SUB_COUNT_1000", "SHORT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
Join_1000_freq =defaultGdbPath + '\Join_1000_freq'
arcpy.MakeFeatureLayer_management(SubLayer_pp_trans_GUJoin_UniqueSubs, "JoinUniqueSubs_1000", where_1000)
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_1000")
count = int(RecordCount.getOutput(0))
print("feature layer count:", count)
arcpy.DeleteIdentical_management("JoinUniqueSubs_1000", ['SUBID', 'SUB1SUB2', 'VOLTAGE'])
arcpy.Frequency_analysis("JoinUniqueSubs_1000", Join_1000_freq, ["SUBID"])
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_1000")
count = int(RecordCount.getOutput(0))
print("feature layer selected out count:", count)
search_feats_Unique_Subs_1000 = {f[0]:f[1] for f in arcpy.da.SearchCursor(Join_1000_freq,["SUBID","Frequency"])}
with arcpy.da.UpdateCursor(subLayer,["SUBID","UNIQUE_SUB_COUNT_1000"]) as upd_cur:
for upd_row in upd_cur:
upd_row[1] = search_feats_Unique_Subs_1000.get(upd_row[0], 0)
upd_cur.updateRow(upd_row)
print("UNIQUE_SUB_COUNT_1000 Updated")
del upd_cur
RecordCount = arcpy.GetCount_management(SubLayer_pp_trans_GUJoin_UniqueSubs)
count = int(RecordCount.getOutput(0))
print("SubLayer_pp_trans_GUJoin_UniqueSubs count:", count)
arcpy.AddField_management(subLayer, "UNIQUE_SUBS_COUNT", "SHORT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
Join_all_freq =defaultGdbPath + '\Join_all_freq'
arcpy.MakeFeatureLayer_management(SubLayer_pp_trans_GUJoin_UniqueSubs, "JoinUniqueSubs_all",)
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_all")
count = int(RecordCount.getOutput(0))
print("feature layer count:", count)
arcpy.DeleteIdentical_management("JoinUniqueSubs_all", ['LATITUDE', 'LONGITUDE', 'SUB1SUB2'])
arcpy.Frequency_analysis("JoinUniqueSubs_all", Join_all_freq, ["SUBID"])
RecordCount = arcpy.GetCount_management("JoinUniqueSubs_all")
count = int(RecordCount.getOutput(0))
print("feature layer selected out count:", count)
search_feats_Unique_Subs_all = {f[0]:f[1] for f in arcpy.da.SearchCursor(Join_all_freq,["SUBID","Frequency"])}
with arcpy.da.UpdateCursor(subLayer,["SUBID","UNIQUE_SUBS_COUNT"]) as upd_cur:
for upd_row in upd_cur:
upd_row[1] = search_feats_Unique_Subs_all.get(upd_row[0], 0)
upd_cur.updateRow(upd_row)
print("UNIQUE_SUBS_COUNT Updated")
del upd_cur
RecordCount = arcpy.GetCount_management(SubLayer_pp_trans_GUJoin_UniqueSubs)
count = int(RecordCount.getOutput(0))
print("SubLayer_pp_trans_GUJoin_UniqueSubs count:", count)
arcpy.AddField_management(subLayer, "UNIQUE_VOLTAGE_COUNT", "SHORT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
Join_voltage_freq = defaultGdbPath + '\Join_voltage_freq'
arcpy.MakeFeatureLayer_management(SubLayer_pp_trans_GUJoin_UniqueSubs, "JoinUniqueVoltage",)
RecordCount = arcpy.GetCount_management("JoinUniqueVoltage")
count = int(RecordCount.getOutput(0))
print("feature layer count:", count)
arcpy.DeleteIdentical_management("JoinUniqueVoltage", ['VOLTAGE','SUBID'])
arcpy.Frequency_analysis("JoinUniqueVoltage", Join_voltage_freq, ["SUBID"])
RecordCount = arcpy.GetCount_management("JoinUniqueVoltage")
count = int(RecordCount.getOutput(0))
print("feature layer selected out count:", count)
search_feats_Unique_Voltage = {f[0]:f[1] for f in arcpy.da.SearchCursor(Join_voltage_freq,["SUBID","Frequency"])}
with arcpy.da.UpdateCursor(subLayer,["SUBID","UNIQUE_VOLTAGE_COUNT"]) as upd_cur:
for upd_row in upd_cur:
upd_row[1] = search_feats_Unique_Voltage.get(upd_row[0], 0)
upd_cur.updateRow(upd_row)
print("UNIQUE_VOLTAGE_COUNT Updated")
del upd_cur
RecordCount = arcpy.GetCount_management(SubLayer_pp_trans_GUJoin_UniqueSubs)
count = int(RecordCount.getOutput(0))
print("SubLayer_pp_trans_GUJoin_UniqueSubs count:", count)
end = time.time()
print((end - start)/60)