После переключения с GRASS 7.2.2 на 7.6.1 v.overlay (operator = или) выдает ошибку «Пересечение с точками еще не поддерживается». Из этого ранее вопроса я понял, что это вызвано полигонами с площадью 0. В 7.2.2 операция v.overlay упоминает, что встречает полигоны с площадью = 0 и пропускает их.
В журнале изменений для GRASS 7.6.1 говорится, что v.overlay улучшил производительность для сложных оверлеев (именно поэтому я хотел бы использовать его), но это, вероятно, также изменило обработку полигонов с площадью = 0.
Операция v.clean с инструментом rmsa, break, snap, rmdangle, rmline, rmdupl, rmdac, rmarea не удаляет полигоны с площадью = 0. Удаление объектов с площадью = 0 (после вычисления области с использованием v.to .db) тоже не работает.
Пример кода ниже. overlay2 - это продукт предыдущей оверлейной функции, которая не выдает ошибку. overlay2 уже содержит полигоны с площадью = 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
Кто-нибудь имеет представление о том, как удалить полигоны с площадью = 0 перед выполнением функции v.overlay?