Usunąć małe wielokąty „sól i pieprz” z warstwy w QGIS?

11

Mam mapę składającą się z wielu wielokątów, a kilkaset tysięcy punktów bardzo małych wielokątów na jego obrębie.

Potrzebuję większych wielokątów, ale nie punktów małych wielokątów. Jak wybrać i usunąć wszystkie punkty małe wielokąty, zachowując większe wielokąty? (Oczywiście nie chcę tego robić ręcznie - jest na to kilka punktów za dużo!)

Jestem całkowicie nowy w QGIS i obszernie googlowałem bez powodzenia. Prawdopodobnie dlatego, że nie jestem pewien, jakiej poprawnej terminologii należy używać w wyszukiwarce Google!

Pliki, których używam to .dbf, .prj, .qpj, .shp i .shx. Po prostu przeciągam plik .shp do QGIS, a mapa pojawia się jako jedna warstwa. Zasadniczo mapa Wielkiej Brytanii podzielona na regiony (które chcę) i ujęta w punkty (które nie chcą).

widok mapy widok tabeli

Tak to wygląda z bliska. Rozpuściłem się, żeby zobaczyć, czy wejdą do otaczającej warstwy, bez powodzenia:

zbliżenie wielokątów

Oszołomiony i zmieszany
źródło
4
Wygląda na to, że używasz plików shapefiles (.shp). Każdy plik kształtu może zawierać tylko jeden punkt, linie lub wielokąty. Tak więc jeden (lub więcej) z twoich plików kształtów będzie zawierał regiony Wielkiej Brytanii jako wielokąty, a 1 (lub więcej) z twoich plików kształtów będzie zawierał tylko punkty. Jeśli włączysz / wyłączysz pliki kształtów w spisie treści (pole wyboru obok nich) zobaczysz, które dane są przechowywane w każdym pliku. Następnie możesz po prostu usunąć pliki zawierające punkty.
Dan_h_b
1
Kto stworzył dane lub skąd je wziąłeś? Wygląda na to, że (na podstawie obrazu) masz wielokąty z dziurami w nich.
HeikkiVesanto
1
Zgadzam się z Vesanto, że jeśli jest to tylko jedna warstwa, może to być warstwa wielokąta z dziurami lub bardzo małymi wielokątami. W takim przypadku możesz połączyć je z większymi wielokątami. Np. Wybierz wielokąty znajdujące się w dużym, a następnie połącz. Czy możesz przybliżyć i przedstawić zrzut ekranu „punktów” na mapie?
Chris P
1
Czy jest szansa, że ​​możesz załączyć plik SHP?
Dan_h_b
1
Ok, więc domyślam się, że masz wieloczęściowe wielokąty (na podstawie tego, że w twojej tabeli atrybutów jest tylko 17 wierszy). Jeśli rozbijesz dane na wielokąty jednoczęściowe, otrzymasz 100 wielokątów. (Wektor> Narzędzia geometrii> Wiele części do pojedynczych elementów). Następnie powinieneś być w stanie dokonać wyboru na podstawie obszaru (tj. Wybrać naprawdę małe obszary) i usunąć je, aby pozbyć się wszystkich tych małych wielokątów, lub w podobny sposób powinieneś być w stanie rozpuścić je na dowolny duży wielokąt, który spadnie w ciągu.
Dan_h_b

Odpowiedzi:

22

Wygląda na to, że pracujesz z danymi kodu pośredniczącego Ordnance Survey , który jest zestawem danych obszarów kodów pocztowych w Wielkiej Brytanii i Irlandii Północnej.

„Punkty”, o których mówisz, to małe kwadratowe wielokąty reprezentujące tak zwane „pionowe ulice”: stosy więcej niż jednego kodu pocztowego, których nie można przedstawić za pomocą „konwencjonalnych” wielokątów (więcej szczegółów w komentarzu Andy'ego Harfoota ). Możesz zastanowić się dwa razy nad usunięciem tych wielokątów, jeśli potrzebujesz analizowanych kodów pocztowych, których dotyczy problem.

To powiedziawszy, oto jak możesz usunąć te wielokąty:

  1. Zaznacz wszystkie pionowe wielokąty uliczne, klikając „Wybierz obiekty za pomocą wyrażenia” i wprowadzając "POSTCODE" LIKE 'V%'. Spowoduje to wybranie wszystkich obiektów, które zaczynają się od kodu pocztowego V, czyli pionowych ulic.

  2. Samo usunięcie funkcji nie pomoże, ponieważ wielokąty pozostawiają dziury w tyle, jak już zauważyłeś. Zamiast tego możesz połączyć pionowe ulice z sąsiednim dużym wielokątem, używając „Wektor / Narzędzia geoprzetwarzania / Wyeliminuj wielokąty taśmy”, zapisując wynik w nowym pliku.

  3. Może zostać wyświetlony komunikat ostrzegawczy, że niektórych funkcji nie można rozwiązać, wraz z listą identyfikatorów funkcji. Jeśli chcesz również pozbyć się tych funkcji, wybierz pionowe ulice w nowej warstwie, używając wyrażenia z wcześniej, a następnie wykonaj jedną z następujących czynności:

    1. Jeśli chcesz automatycznego rozwiązania, możesz rozpuścić pionowe ulice razem ze wszystkimi sąsiadującymi wielokątami. Zapisz zaznaczenie na nowej warstwie za pomocą „Warstwy / Zapisz zaznaczenie jako plik wektorowy”, a następnie użyj „Wektor / Narzędzia badawcze / Wybierz według lokalizacji”, aby wybrać elementy na scalonej warstwie, które przecinają się z obrażającymi pionowymi ulicami, tworząc nowy wybór . Następnie rozpuść ten wybór za pomocą „Vector / Geoprocessing Tools / Dissolve”, wybierając --- Dissolve all ---w „Dissolve field”. Zauważ, że takie podejście może prowadzić do niepożądanego rozpuszczenia „właściwych” wielokątów, jeśli obrażająca się pionowa ulica znajduje się na granicy dwóch innych wielokątów, lub jeśli występują obrażające pionowe ulice w obrębie dwóch sąsiadujących wielokątów.

    2. Jeśli chcesz uniknąć rozpuszczania innych wielokątów, możesz ręcznie wybrać pionowe ulice i jeden sąsiadujący wielokąt, uważając, aby nie zaznaczyć dwóch sąsiednich wielokątów, a następnie rozpuścić je jak wyżej.

Jake
źródło
3
Doskonałe omówienie źródła, ryzyka, opcji i procesu, o który pierwotnie poprosił PO!
RyanKDalton
1
Drobny punkt - pionowe ulice istnieją tam, gdzie jest pionowy stos więcej niż jednego kodu pocztowego, co uniemożliwia ich reprezentację jako „konwencjonalnego” wielokąta w zbiorze danych. Zdarza się to zwykle w wieżowcach mieszkalnych lub biurowcach. Lista jest dołączona do głównego zestawu danych wielokąta głównego kodu, który rozwija pionowy kod ulicy (zaczynający się na V) na wiele kodów pocztowych, które go zawierają.
Andy Harfoot
@AndyHarfoot: Ach tak, dziękuję za wyjaśnienie! Zredagowałem swoją odpowiedź
Jake
To jest wspaniałe - dziękuję. Tylko jedna rzecz - nie mogę znaleźć Wybierz funkcji za pomocą wyrażenia lub Wektor / Narzędzia geoprzetwarzania / Wyeliminuj wielokąty taśmy. Jestem na Lisboa 1.8.0. Czy muszę zaktualizować?
Oszołomiony i zdezorientowany
2

Spróbuj odwrócić swoją metodologię. Zamiast próbować wybierać i usuwać tysiące punktów, czy próbowałeś wybrać wielokąty i utworzyć nową warstwę z tego wyboru? Nie byłoby to zbyt żmudne, gdybyś miał metodę ręcznego usuwania wszystkich punktów, po prostu wybierz obiekty wielokąta i albo utwórz warstwę, albo wyeksportuj je. Jeśli te punkty są małymi wielokątami, jak skomentowali inni, nadal możesz wybrać tylko wielokąty, które chcesz zachować i wyeksportować.

LMHall
źródło