Я сталкиваюсь с дилеммой, пытаясь использовать v.generalize для упрощения полигонов, которые по размеру и структуре похожи на округа или штаты США. Часто я теряю полигоны из набора данных после запуска на них метода упрощения или сглаживания. Что меня беспокоит, так это то, что в этом поведении нет никаких закономерностей. В некоторых случаях один и тот же набор команд, применяемый к разным наборам данных, приводит к совершенно разным результатам. В результате я не могу разработать воспроизводимый рабочий процесс и неохотно начинаю искать другие инструменты упрощения, которые сохраняют топологию. Вот пример:
# LOAD AND CLEAN
v.in.ogr dsn=counties.shp output=county
v.build.polylines input=county output=county_polylines
v.clean input=county_polylines output=county_clean tool=bpol,rmdupl type=boundary
# SMOOTH AND GENERALIZE
v.generalize input=county_clean output=county_smooth method=sliding_averaging look_ahead=7 slide=1
v.generalize input=county_smooth output=county_general method=douglas threshold=.005
Каждый из шагов v.generalize приводит к исчезновению некоторых полигонов. Я хотел бы понять, почему это происходит. Это связано с тем, что функции загружаются в недостаточно памяти? Достаточно ли мои параметры "жесткие", чтобы исключить объекты, потому что они удовлетворяют каким-то критериям геометрии? (Обратите внимание, что я теряю некоторые очень большие функции.) Есть ли проблема с топологией удаленных функций, которая приводит к их удалению? В связи с этим последним вопросом я предполагаю, что build.polylines и чистые операции, которые я делаю изначально, должны позаботиться об этом, но я не совсем уверен, и я не могу найти хорошие инструкции, которые решают эту проблему. Есть ли такие?
Цените любые идеи, которые могут дать люди, особенно те, которые основаны на личном опыте использования инструмента v.generalize.
Роджер