Zmniejsz rozdzielczość pliku kształtu w R (lub QGIS, jeśli to konieczne)

12

Korzystam z plików kształtów historii Granice stanów USA z NHGIS do tworzenia map w R. Te pliki kształtów mają znacznie wyższą rozdzielczość niż potrzebuję przy tworzeniu map w skali kraju: ponad 2 miliony obserwacji dla jednego pliku. Czy istnieje sposób na zmniejszenie rozdzielczości tych plików kształtów w R? W razie potrzeby mogę to zrobić w QGIS.

Lincoln Mullen
źródło
Czy możesz to bardziej wyjaśnić. Rozdzielczość jest związana ze zdjęciami. Czy masz na myśli, że w wielokącie jest za dużo węzłów, co zapewnia zbyt wiele szczegółów? A może jest tak, że w pliku kształtu jest zbyt wiele punktów?
Ryan Garnett,
2
@Ryan Chociaż rozdzielczość rzeczywiście jest związana ze zdjęciami, jest to koncepcja, która ma sens również w przypadku danych wektorowych. W przypadku elementów polilinii i wielokąta można oszacować pod względem liczby wierzchołków użytych na jednostkę długości łuku. Rozdzielczości nie zawsze można dokładnie określić, sprawdzając dane wektorowe (na przykład zestaw cech punktowych o wysokiej rozdzielczości, ale szeroko rozstawionych), skąd rozdzielczość zazwyczaj można znaleźć, sprawdzając odpowiednie metadane.
whuber
Mam na myśli, że w pliku kształtu jest o wiele więcej punktów, niż jest to konieczne do stworzenia mapy narodu. Chciałbym mieć taki poziom szczegółowości, na przykład, aby stworzyć mapę miasta. Jest to dla mnie ważne, ponieważ powoduje, że generowanie wykresów jest powolne, a tym samym czasochłonne.
Lincoln Mullen,

Odpowiedzi:

1

Standardową metodą „przerzedzania” kształtów liniowych (w tym granic wieloboków) jest algorytm Douglasa-Peuckera . RZaimplementuj to co najmniej dwa pakiety: dpw pakiecie shapefiles i thinnedSpatialPolyw pakiecie Guerry .

Zauważ, że przerzedzanie sąsiadujących wielokątów zwykle tworzy niewielkie przerwy i nakładają się na ich granice: nie uwzględnia to zależności topologicznych między nimi. Nie znam żadnego Rpakietu, który zachowuje topologię podczas przerzedzania. W przypadku mapowania na małą skalę, takich jak te, nie powinno to stanowić poważnego problemu.


Nawiasem mówiąc, ponieważ nikt nie wie, jak wymówić niemiecki :-), Tom Poiker zmienił pisownię swojego imienia jakiś czas temu.

Whuber
źródło
Chcesz być bardzo ostrożny, kiedy „przerzedzasz” geometrię. Jeśli masz wiele warstw o ​​wspólnych granicach, przerzedzanie może powodować powstawanie luk, powodując błędy wizualne i błędy dokładności. Przerzedzenie może sprawić, że granice będą poszarpane i nadmiernie uproszczone. Będziesz chciał grać i testować z tolerancjami w ramach uproszczenia.
Ryan Garnett