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


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


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!


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


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?


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.


Po odpowiedzi w tej dyskusji wydaje się, że SAGA nie zachowuje topologii. Przynajmniej już nie.
— Oystein
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.