R에서 shapefile의 해상도를 줄입니다 (또는 필요한 경우 QGIS).


12

NHGIS 의 역사 미국 주 경계의 shapefile을 사용하여 R로 맵을 작성하고 있습니다.이 shapefile은 국가 규모로 맵을 작성할 때 필요한 것보다 훨씬 높은 해상도입니다. 하나의 파일에 대해 2 백만 개가 넘는 관측치가 있습니다. R에서 이러한 shapefile의 해상도를 줄일 수있는 방법이 있습니까? 필요한 경우 QGIS에서 대신 할 수 있습니다.


더 설명해 주시겠습니까? 해상도는 이미지와 관련이 있습니다. 다각형에 너무 많은 노드가있어 너무 자세한 정보를 제공한다는 의미입니까? 또는 점 shapefile에 너무 많은 점이 있습니까?
Ryan Garnett

2
@Ryan 해상도는 실제로 이미지와 관련이 있지만 벡터 데이터에도 적용되는 개념입니다. 폴리 라인 및 폴리곤 피처의 경우 단위 호 길이 당 사용 된 정점 수로 추정 할 수 있습니다. 일반적으로 적절한 메타 데이터를 참조하여 해상도를 찾을 수있는 경우 벡터 데이터를 검사하여 해상도를 항상 정확하게 결정할 수있는 것은 아닙니다 (예 : 고해상도이지만 넓은 간격의 포인트 피처를 고려하십시오).
whuber

셰이프 파일에는 국가의지도를 만드는 데 필요한 것보다 더 많은 포인트가 있음을 의미합니다. 예를 들어 도시지도를 만드는 데 필요한 세부 수준을 원합니다. 이것이 나에게 중요한 이유는 플롯 생성을 느리게하고 반복하는 데 시간이 많이 걸리기 때문입니다.
Lincoln Mullen

답변:


9

패키지 gSimplify에서 사용할 수 있으며 플래그 rgeos를 추가 topologyPreserve=TRUE하면 토폴로지가 유지됩니다.

여전히 겹치는 선으로 끝날 수 있습니다. R에서이 강력한 DP 알고리즘을 구현해야합니다.

http://www.sciencedirect.com/science/article/pii/S0098300413002380

[페이 월드 뒤에 연결되는 링크]


+1 반갑습니다. rgeos워드 프로세서에 있습니다 cran.r-project.org/web/packages/rgeos/rgeos.pdf .
whuber

1

선형 경계 (다각형 경계 포함)를 "얇게"하는 표준 방법은 Douglas-Peucker 알고리즘 입니다. 최소 두 개의 R패키지 dpshapefiles 패키지Guerry 패키지thinnedSpatialPoly 에서이를 구현합니다 .

인접한 다각형을 얇게 만들면 일반적으로 경계에 약간의 틈과 겹침이 생깁니다. 이들 사이의 토폴로지 관계는 존중하지 않습니다. R얇게하는 동안 토폴로지를 유지 하는 패키지를 알지 못합니다 . 이와 같은 소규모 매핑의 경우 심각한 문제가되지 않아야합니다.


덧붙여서, 아무도 더 이상 독일어를 발음하는 법을 모르기 때문에, Tom Poiker 는 얼마 전에 그의 이름의 철자를 바꿨 습니다.


형상을 "얇게"할 때 매우주의해야합니다. 경계를 공유하는 여러 레이어가있는 경우 얇게하면 간격이 생겨 시각적 오류와 정확도 오류가 발생할 수 있습니다. 너무 얇게하면 경계가 들쭉날쭉 해지고 지나치게 단순화 될 수 있습니다. 단순화 내에서 공차로 재생하고 테스트하고 싶을 것입니다.
Ryan Garnett
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.