해안선을 일반화하는 방법?


12

나는 본질적으로 세계의 해안선을 나타내는 많은 데이터 포인트를 가지고 있습니다. 나는 정확한 해상도를 모르지만 5-10m 부근에 있다고 말할 것입니다.

들쭉날쭉 한 해안선을 나타내는 점 세트를 상상해보십시오. 1m 해상도에서 모든 세부 사항을보고 해안을 올바르게 표현하기 위해 50 개의 데이터 포인트가 필요하지만 10km 해상도에서는 해안이 직선처럼 보이고 2 포인트 만 필요합니다.

데이터를 "전체 평면"해상도에서 "거리"해상도로 확장해야하는 매핑 응용 프로그램을 작성 중입니다. 데이터 포인트의 해상도를 낮추고 더 넓은 해상도를위한 데이터 양을 줄이는 데 도움이 필요합니다.

Vector-Tiling에 대해 읽었으며 이것이 최선의 해결책이라고 생각합니다 (이미 이와 같은 일을하고 있습니다). 그러나 낮은 해상도에서 데이터 세트는 여전히 상대적으로 오래 걸리는 것을 의미합니다. '효과적인'데이터 세트가 작기 때문에 전체 해상도의 데이터 세트가 작기 때문에 고해상도가 빠른 시간.

내 '전체 평면'보기의 타일 데이터가 관리 가능한 크기가되도록 큰 데이터 세트를 가져 와서 스케일을 줄이는 방법을 결정하려고합니다. 더 큰 전체 데이터 세트에서 타일 하위 데이터 세트를 작성하는 방법

도구를 사용하게되어 기쁩니다. 도구 사용 방법을 배우기 위해 직접 도구를 사용하고 싶습니다.


1
gis.stackexchange.com/questions/6585/…에 대한 답변을 확인 하셨습니까 ? 질문이 다르다고 생각되면 자세히 설명하십시오.
underdark

1
문제는 "포인트"대신 해안선에 관한 것 같습니다. 해상도가 낮아지면 작은 섬이 사라져야합니까? 마른 뱀 섬 주변의 해안선이 교차해도 괜찮습니까?
Kirk Kuykendall

당신이 통과 할 수있는 일을하고 계속하고 싶다면 @R Thiede의 대답 이 시작하기 가장 좋은 곳 일 것입니다. 실제 문제를 해결하고 모양의 의미를 잃지 않고 선 작업을 단순화하려면 관련 질문 gis.stackexchange.com/questions/38/…gis.stackexchange.com/questions/440/…을 참조하십시오 .
매트 윌키

답변:


7

이 문제를 해결하는 방법은 실제로 사례와 실제 토폴로지가 사용자에게 얼마나 중요한지에 달려 있습니다 (시각적 / 렌더링 시간과 비교). 최종 목표는 해안선을 일반화하는 것이므로 일반화에 대한 몇 가지 아이디어가 유용 할 수 있습니다.

한 가지 접근 방식은 여기에서 볼 수 있듯이 버퍼링을 사용 합니다 . 나는 또한 전에 비슷한 문제가 있었고 여기에 내 솔루션을 자세히 설명 했습니다 .

요컨대, 다른 레벨로 일반화 된 별도의 벡터 데이터 세트 (또는 최소한 별도의 형상)를 사용할 수 있습니다. 타일을 사용하지는 않지만 기본 문제를 해결하지만 원하는 경우 여전히 사용할 수 있습니다. 물론 그리드를 기준으로 데이터 세트를 타일로 분할하려는 경우 먼저 일반화해야합니다. 그렇지 않으면 타일 사이에 간격이 생깁니다.


신중한 답변을 위해 +1 Rüdiger 사이트에 오신 것을 환영합니다!
whuber

5

"전체 행성"확대 / 축소 수준에서 확대 / 축소까지 데이터 세트의 서로 다른 일반화 된 버전을 준비해야합니다.

일반적인 일반화 알고리즘은 Douglas-Peucker 알고리즘 입니다. 아직 해안선을 연결하지 않은 경우 먼저 점을 해안선에 연결해야합니다.


2
GEOS 라이브러리에는 직접 코딩하려는 경우 사용할 수있는 Douglas-Peucker 알고리즘이 내장되어 있습니다. 그래도 토폴로지를 고려할 수도 있습니다.이 경우 GRASS v.generalize 도구가 도움이 될 수 있습니다.
lagerratrobe

@lagerratrobe 님 안녕하세요. 나는이 답변을 커뮤니티 위키로 만들었으므로 직접 편집하고 GEOS 및 GRASS 솔루션을 모두 추가 할 수 있어야합니다.
underdark


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.