Generalizujesz plik wielokąta, zachowując topologię w QGIS?

35

Mam wielokąt Shapefile, który muszę uogólnić. Jak mogę uogólnić wielokąty i upewnić się, że nie ma błędów topologicznych, takich jak „taśmy”.

Próbowałem już:

  1. Zdjęcie Seryjne -> Narzędzia geometrii -> wielokąty do linii
  2. Zdjęcie Seryjne -> Narzędzia geometryczne -> upraszczają geometrie ... tutaj już widzę na ekranie, że produkuję nakładki i luki, ale teraz próbuję
  3. Zdjęcie Seryjne -> Narzędzia geometryczne -> linie do polgonów

a tutaj program wyświetla błąd i ulega awarii

wprowadź opis zdjęcia tutaj

Kurt
źródło
Czy są jakieś wiadomości na ten temat?
Oystein
niestety: nie
Kurt

Odpowiedzi:

16

GRASS obsługuje topologię. Możesz użyć v.generali z przybornika Przetwarzanie, aby uprościć wielokąty, a jeśli dane wejściowe są topologicznie poprawne, to również wynik.

wprowadź opis zdjęcia tutaj

podmrok
źródło
za pomocą instalatora systemu Windows pojawia się błąd (brak zależności), gdy próbuję uruchomić v.generalize. Potrzebujesz specjalnej konfiguracji?
Kurt
@Kurt: Autonomiczny instalator? Nie jestem pewien, którą wersję GRASS zawiera. W ustawieniach Przetwarzania możesz określić, czy GRASS 6.x lub 7.x i gdzie jest zainstalowany. Spróbuj dostosować te konfiguracje do swojego ustawienia.
podmroku
tak, używam samodzielnego instalatora. Zgodnie z twoją radą wyłączyłem trawę 7 za pomocą opcji przetwarzania i poprawnie skonfigurowałem ścieżkę do qrass 6. ta ścieżka nie była poprawna, pozostałość po starszych qgis. Teraz mogę uruchomić v.generalizuj, ale w końcu pojawia się nowy błąd: nie można otworzyć warstwy wyjściowej, a na koniec komunikat mówi, że trawa wydaje się być poprawnie zainstalowana i skonfigurowana. czy mógłbyś mi podać jakieś sugestie lub wskazówki?
Kurt
Zwykle ten błąd oznacza, że ​​geoprzetwarzanie zakończyło się niepowodzeniem na pewnym etapie. Musisz sprawdzić dziennik, który jest generowany podczas działania narzędzi, aby zobaczyć, gdzie wystąpił błąd.
podmroku
7

Można to uznać za wstęp do odpowiedzi @ Underdarka, w której można wyczyścić topologię warstwy wektorowej przed uogólnieniem. GRASS ma funkcję v.clean, która zawiera szereg narzędzi do naprawy warstwy, takich jak:

  • przyciągaj, które „przyciągają” linie do najbliższego wierzchołka
  • rmdangle, który usuwa wszelkie denerwujące zwisy
  • rmdupl, który usuwa zduplikowane elementy geometrii

i różne inne pokazane na obrazku poniżej:

v.clean

Możesz także ustawić próg w zależności od tego, jak czułe mają być narzędzia. Osobiście używam funkcji Sprawdź poprawność geometrii w QGIS ( Wektor > Narzędzia geometrii > Sprawdź poprawność geometrii ), aby sprawdzić, czy nie ma błędów, a jeśli istnieją, użyj odpowiedniego narzędzia w v.clean . Po usunięciu błędów powinieneś być w lepszej pozycji do uogólnienia.

Mam nadzieję że to pomoże!

Joseph
źródło
3
A jeśli wystarczy proste zmniejszenie wierzchołków, v. Generalizacja nie jest konieczna, ponieważ narzędzie przycinania może to zrobić.
Gabor Farkas
dziękuję za wstępną odpowiedź na @ Underdark, która zawiera cenne informacje. chociaż nie powiedziałem tego wprost, oczywiście plik wielokąta, który chciałem uogólnić, jest topologicznie czysty [ponieważ; śmieci - śmieci: :-)]
Kurt
@Kurt, to ma sens :)
Joseph
2

Czy próbowałeś już używać MapShaper ? Uważam, że jest to dobry sposób na uogólnienie wielokątów; istnieje również wersja offline, jeśli chcesz pobrać kod.

Alternatywą może być konwersja do GeoJson, a następnie TopoJson, który obsługuje „uproszczenie kształtu zachowujące topologię” https://github.com/mbostock/topojson

djq
źródło
Próbowałem Mapshaper, to naprawdę świetne narzędzie
Kurt
1
jeszcze jeden komentarz: Jak mówi tytuł: Szukam rozwiązania z qgis. Mapshaper imho nie zachowuje topologii (udowodnij, wykonując bardzo silne uogólnienie!). Topojson: jest to kod javascript-sourcecode, który jest imho przydatny tylko dla programistów
Kurt
Ups, brakowało tylko aspektu QGIS. QGIS obsługuje geojson; Zastanawiam się, czy miałoby sens pracować z funkcją uproszczenia topojson w wtyczce QGIS, aby była ona dostępna dla osób niebędących programistami
djq
Kontynuuję linię nie na temat: OpenJUMP ma w tym celu narzędzie „Uprość pokrycie wielokąta”.
user30184,
0

Właśnie wykonałem szybki test, a narzędzie „Uprość geometrię” w menu Wektor wydaje się respektować topologię. Próbowałem z włączoną opcją przyciągania i bez zaznaczonej opcji „Włącz edycję topologii”. Próbowałeś?

EDYCJA: Dokonano tego bezpośrednio w pliku wielokąta - dlaczego najpierw miałbyś konwertować na linie?

Darren Cope
źródło
Cześć Darren, dziękuję za podpowiedź Spróbuję go z włączoną edycją topologiczną
Kurt
1
Cześć Darren, imho nie szanuje topologii. nie ma różnicy w przypadku „włączania edycji topologicznej”. Przypuszczam, że dzieje się tak, ponieważ generowanie generuje nową warstwę, podczas gdy „włącz edycję topologiczną” wydaje się działać tylko z istniejącymi warstwami -selected. Czy możesz zrobić bardzo, bardzo silną gerneralizację i sprawdzić ponownie, czy masz teraz poprawną topologię? dzięki
Kurt
1
Kurt; Ciekawy. Wygląda na to, że masz rację, gdy wykonujesz silne uogólnienie! Przepraszam!
Darren Cope
1
To pole wyboru zniknęło w QGIS 2.2 (być może wcześniej) na wypadek, gdyby ktokolwiek przeszukał.
lynxlynxlynx
0

Jest taka sama dyskusja tutaj , moja ostateczna odpowiedź jest, że SAGA robi dla ciebie zadanie.

Niculita Mihai
źródło
Po odpowiedzi w tej dyskusji wydaje się, że SAGA nie zachowuje topologii. Przynajmniej już nie.
Oystein