Занепокоєння, висловлене @Adam Cara, є дуже справедливим. Однак, коли я подивився на самоперетин, виявилося, що більшість з них є або худими бітами на межі між двома масивними багатокутниками, або роз'єднаними бітами / островами великого багатокутника, що сидить усередині іншого. У цьому випадку стирання накладок та призначення розпущених перекриттів атрибут найближчого сусіда (що станеться першим) може працювати.
Процес:
arcpy.Intersect_analysis("Landuse2b #","D:/Scratch/mpart.shp","ALL","#","INPUT")
arcpy.MultipartToSinglepart_management("mpart","D:/Scratch/spart.shp")
arcpy.Dissolve_management("spart","D:/Scratch/dissolved_1.shp","#","#","SINGLE_PART","DISSOLVE_LINES")
arcpy.Erase_analysis("Landuse2b","dissolved_1","D:/Scratch/erased.shp","#")
arcpy.DeleteField_management("spart","FID_Landus;OBJECTID;Lnduse2013;Shape_Leng;Shape_Area")
arcpy.SpatialJoin_analysis("spart","erased","D:/Scratch/sj_1.shp","JOIN_ONE_TO_ONE","KEEP_ALL"…..)
arcpy.Merge_management("sj;erased","D:/Scratch/merge_1.shp"….)
arcpy.Dissolve_management("merge_1","D:/Scratch/dissolved.shp","Lnduse2013","#","SINGLE_PART","DISSOLVE_LINES")
Тест:
arcpy.Intersect_analysis("dissolved #","D:/Scratch/test.shp","ALL","#","INPUT")
Повідомлення:
- Виконання: Перетинайте "розчинено #" D: \ Scratch \ test.shp ВСЕ # ВХОД
- Час початку: Пт 22 квітня 10:16:07 2016
- Особливості читання ...
- Особливості тріщин ...
- Складання особливостей ...
- ПОПЕРЕДЖЕННЯ 000117: Попередження генерує порожній вихід.
- Успіх у пт. 22 квітня 10:16:09 2016 (минулий час: 2,34 секунди)
Зверніть увагу, що це повідомлення означає, що у висновку від остаточного Dissolve немає самопересічень
Результат:
https://drive.google.com/file/d/0B6B33FrGNitPT0FvbVdHQm0xMDg/view?usp=sharing