Я использую pyShp для добавления трех полигонов в новый шейп-файл. Я добавил геометрию и записи (атрибуты). Пока нет проблем.
Позже я хотел использовать класс Editor() для удаления одного из трех полигонов. Если я попытаюсь удалить последний «P3», он будет работать нормально.
Проблема возникает, когда я пытаюсь удалить любой другой полигон. Например, если я удалю первый, форма исчезнет, но ее атрибуты останутся, поэтому многоугольник «P2» наследует их. Запись, которая удаляется, является последней (первоначально связанной с «P3»).
import shapefile
w = shapefile.Writer(shapefile.POLYGONZ)
print(w.shapeType)
w.poly(parts=[[[0,0],[5,0],[5,5],[0,5]]])
w.poly(parts=[[[10,0],[15,0],[15,10],[10,5]]])
w.poly(parts=[[[5,10],[10,10],[10,15],[5,15]]])
w.field('NAME', 'C',40)
w.record('P1')
w.record('P2')
w.record('P3')
w.save("polygons")
edit = shapefile.Editor("polygons")
edit.delete(0)
edit.save("polygonDeleted")
Я знаю, что могу выбрать две фигуры, которые хочу сохранить, и записать их в новый шейп-файл, но мне хотелось бы понять, почему класс Editor() не работает должным образом.