Mam wieloboczną warstwę wektorową reprezentującą obszar zalany powodzią. Warstwa została wykonana w taki sposób, że niektóre obszary składają się z wielu mniejszych dotykających się wielokątów (patrz zrzut ekranu poniżej, z etykietą „oryginalne dane”).
Chciałbym rozpuścić wielokąty tam, gdzie się dotykają. Jeśli użyję narzędzia geoprzetwarzania rozpuszczania w narzędziu fGools QGIS, które korzysta z biblioteki GEOS, otrzymam nieoczekiwane wyniki (patrz „rozpuszczanie z QGIS fTools”). Wygląda na to, że GEOS nie używa progu do określania, czy wielokąty się dotykają, jak wspomniano w tych kwestiach:
http://trac.osgeo.org/qgis/ticket/3126
http://trac.osgeo.org/qgis/ticket/3184
http://hub.qgis.org/issues/2806
To samo podejście w ArcGIS daje oczekiwany wynik (patrz „rozpuszczenie z ArcGIS 10.1”).
Najwyraźniej jest to „funkcja” GEOS, a nie błąd. Czy jest jakiś sposób, aby naprawić dane, które muszę wygenerować oczekiwany wynik? Drobna utrata precyzji (kilka cm?) Może być dla mnie do zaakceptowania. Idealnie rozwiązaniem byłoby coś, co mógłbym napisać we wtyczce QGIS, jako etap wstępnego przetwarzania.
Powiązane pytanie (bez odpowiedzi): Jak ustawić wartość tolerancji narzędzia Geoprocessing w QGIS?
Link do przykładowych danych jako plik kształtu: https://www.dropbox.com/s/c8ns7wwfv289ad0/sample.zip