#gis #qgis #grass
#gis #qgis #grass
Вопрос:
После переключения с GRASS 7.2.2 на 7.6.1 v.Наложение (оператор = или) выдает ошибку ‘Пересечение с точками еще не поддерживается’. Из этого предыдущего вопроса я понял, что это вызвано полигонами с площадью 0. В 7.2.2 операция v.overlay упоминает, что она встречает полигоны с area = 0 и пропускает их.
В списке изменений для GRASS 7.6.1 указано, что наложение v. улучшило производительность для сложных наложений (именно поэтому я хотел бы его использовать), но это, вероятно, также изменило обработку полигонов с area = 0.
Операция v.clean с помощью инструментов rmsa, break, snap, rmdangle, rmline, rmdupl, rmdac, rmarea не удаляет полигоны с area = 0. Удаление объектов с area = 0 (после вычисления площади с помощью v.to.db) также не работает.
Пример кода ниже. overlay2 является результатом предыдущей функции наложения, которая не выдает ошибку. overlay2 уже содержит полигоны с area = 0, поэтому они не создаются во время операции v.clean
v.clean input=overlay2 output=overlay2_clean type=area error=overlay2_error_clean tool=rmsa,break,snap,rmdangle,rmline,rmdupl,rmdac,rmarea threshold=0.001 --overwrite
v.overlay.exe ainput=overlay2_clean alayer=1 atype=area binput=newinput blayer=1 btype=area output=overlay3 operator=or snap=0.001 --overwrite
У кого-нибудь есть идея о том, как удалить полигоны с area = 0 перед выполнением функции v.overlay?