Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. def update_parcel_geometry(SWU_Parcels, Update_Parcels):
  2.  
  3. #create parcel geometry dictionaries d1, d2
  4. cursor_fields = ['PID','SHAPE@','OID@']
  5. #dicts have index 0 as key and tuple of remainder as value
  6. arcpy.AddMessage('Reading SWU parcel geometries ...')
  7. with arcpy.da.SearchCursor(SWU_Parcels,cursor_fields) as cursor:
  8. d1 = {tup[0]:tup[1:] for tup in cursor}
  9. arcpy.AddMessage('Reading Update parcel geometries ...')
  10. with arcpy.da.SearchCursor(Update_Parcels,cursor_fields) as cursor:
  11. d2 = {tup[0]:tup[1:] for tup in cursor}
  12.  
  13. #create dict of updated geoemetries
  14. # format { PID : SHAPE }
  15. update_dict = {t[0]: t[1][0] for t in d2.items() if t[0] in d1 and t[1][0] != d1[t[0]][0]}
  16.  
  17. #create update cursor
  18. upd_fields = ['PID','SHAPE@','LAST_MODIFIED_BY','LAST_MODIFIED_DATE']
  19. with arcpy.da.UpdateCursor(SWU_Parcels,upd_fields) as upd_cursor:
  20. #commit updates
  21. for row in upd_cursor:
  22. if row[0] in update_dict:
  23. last_modified_by = 'ParcelScript'
  24. last_modified_date = datetime.datetime.now()
  25. PID = row[0]
  26. SHAPE = update_dict[row[0]]
  27. try:
  28. update = (PID,SHAPE,last_modified_by,last_modified_date)
  29. upd_cursor.updateRow(update)
  30. arcpy.AddMessage('Updating geometry for PID {}'.format(row[0]))
  31. except Exception as e:
  32. arcpy.AddMessage(e.args[0])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement