[GIS] arcpy search cursor not working

arcgis-10.2arcpycursor

Im running my script in ArcGIS 10.2 and the dialog window says completed, but the empty fields in the 'SoilsType' row of the 'mSoils' Feature Class aren't getting populated with the values from the 'SoilsType' field from the 'mLanduse' Feature Class.

cur = arcpy.da.SearchCursor(mLanduse, lField)
for row in cur:
 cur2 = arcpy.da.UpdateCursor(mSoils, sField)
 for row2 in cur2:
     if row2[0] == '' or row2[0] is None:
         row2[0] = lField
         cur2.updateRow(row2)   

Best Answer

Instead of going the python route, I would recommend using this sequence of geoprocessing tools:

  1. Create new field in soil table called layer, and field calculate it with the value "soil"
  2. Perform union on soil layer and land use (soil first input and land use second input)

The union process will help you deal with soil features that span multiple land use features. This will bring over the other soil type value/field from the land use table into one table (soil_landuse_union)

  1. Finally, select records in soil_landuse_union that have a value of "soil" in the layer field that do not have a soil type and populate the soil type field with the unioned land use soil type field/value

If you have to perform this operation frequently, you could create a model or python script using the geoprocessing tools/steps above.

Related Question