Проблемы с удалением записей из Shapefile с использованием класса Editor() в pyShp

Я использую 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() не работает должным образом.

0 ответов

В последней версии pyshp удален класс Editor(), поэтому он больше недоступен.

Другие вопросы по тегам