AnsweredAssumed Answered

How to Write Value from nested tables to Parent Table

Question asked by aarcichowski@invenergy.com_invenergyllc on Jun 3, 2020
Latest reply on Jun 3, 2020 by aarcichowski@invenergy.com_invenergyllc

I'm having issues with writing some values from 2 tables deep (nested). I'm trying to get the X,Y values of a line that is nested twice from the parent. If that makes sense. 

So I have a point. That point looks in another dataset then once it finds that it looks into another dataset for the values. I'm trying to get those values from the 3 table be written in the first table. 

 

Here is my code. I almost got it, but I get an undefined variable error   on line 58. 

 

Thanks 

 

global lat 
global long

#Search each record in Queue table
with arcpy.da.UpdateCursor (tbl, inputtable_fields) as Scur2:
     for row1 in Scur2:
          Sub1 = row1[0]
          Sub2 = row1[1]
          FIPS_var = row1[2]
          state_var = row1[3]
          queid = row1[4]
          arcpy.AddMessage(queid + ",")



          with arcpy.da.SearchCursor(tline_lyr, tline_lyr_fields) as Scur:
               #arcpy.AddMessage(Sub1 + "," + Sub2+ ",")
               for row in Scur:
                    if (row[0] == Sub1 and row[1] == Sub2) or (row[0] == Sub2 and row[1] == Sub1):
                         Rec_ID_var = str(row[3])
                         #arcpy.AddMessage ("the power line is "+ Rec_ID_var)
                         
                         #Select Power line
                         selectline_var = arcpy.SelectLayerByAttribute_management(tline_lyr, 'NEW_SELECTION', "Rec_ID = " + Rec_ID_var)

                         #Create in memory feature to get centroid of slected line.
                         arcpy.CopyFeatures_management(selectline_var, r'in_memory\SelectedLine')

                         #Select County by Attribute 
                         #arcpy.SelectLayerByLocation_management(county_lyr, 'INTERSECT', r'in_memory\SelectedLine', '#', 'NEW_SELECTION', 'NOT_INVERT')

                         #Select County to use as a clip
                         arcpy.SelectLayerByAttribute_management(county_lyr, 'NEW_SELECTION', "FIPS = '"+FIPS_var+"'" )

                         #Clip line with the County
                         arcpy.Clip_analysis(r'in_memory\SelectedLine', county_lyr, r'in_memory\SelectedLineClipped', '#')

                         #Create the mid point
                         arcpy.FeatureToPoint_management(r'in_memory\SelectedLineClipped', r'in_memory\LineMidPT', 'INSIDE')

                         #Calculates Lat + Long
                         arcpy.AddGeometryAttributes_management(r'in_memory\LineMidPT', 'POINT_X_Y_Z_M', '#', '#', WGS_1984_CS)
                         
                         #Print out lat long

                         with arcpy.da.SearchCursor(r'in_memory\LineMidPT', ["POINT_X","POINT_Y"]) as Scur:

                              for row in Scur:
                                   arcpy.AddMessage(str(row[0]))
                                   arcpy.AddMessage(str(row[1]))
                                   long = row[0]
                                   lat = row[1]
                                   arcpy.management.SelectLayerByAttribute(tline_lyr, 'CLEAR_SELECTION')
                                   arcpy.management.SelectLayerByAttribute(county_lyr, 'CLEAR_SELECTION')
          
                                   

               row1[5] = long
               row1[6] = lat
               cursor.updateRow(row)

 

I've also tried this with a try statement on line 58. But then it doesn't write anything. 

 

Thanks! 

Outcomes