다음은 모든 레벨의 다각형을 사용할 수있는 등고선 맵입니다.
모든 정점을 정확한 위치에 유지하면서 다각형을 부드럽게 만드는 방법을 물어 보십시오.
실제로 형상이 그리드 데이터 위에 만들어지면 그리드 데이터를 부드럽게하도록 제안 할 수 있으므로 결과 형상이 더 부드러워집니다. 가우시안 필터와 같은 스무딩 기능은 작은 데이터 팩을 제거하고 세 번째 변수의 범위, 예를 들어 내 응용 프로그램에서 허용되지 않는 높이를 변경하기 때문에 이것은 내가 원하는 것으로 작동하지 않습니다.
실제로 나는 2D 다각형 (볼록, 오목, 자기 교차 등의 모든 유형)을 합리적으로 고통스럽지 않고 (코드 페이지를 잊어 버림) 부드럽게 할 수있는 코드 조각 ( Python 에서 선호 )을 찾고 있습니다.
참고 로 ArcGIS 에는 완벽하게 작동하는 기능 이 있지만 타사 상용 응용 프로그램을 사용하는 것은이 질문에 대한 나의 선택이 아닙니다.
1)
Scipy. 보간 :
보시다시피 결과 스플라인 (빨간색)은 만족스럽지 않습니다!
2)
여기에 주어진 코드를 사용한 결과가 있습니다 . 제대로 작동하지 않습니다!
삼)
나에게 가장 좋은 해결책은 하나의 값만 변경하여 사각형이 점차적으로 부드럽게되는 다음 그림과 같은 것이어야합니다. 모든 형태의 다각형을 다듬는 비슷한 개념을 원합니다.
스플라인이 점을 통과하는 조건을 충족시키는 경우 :
4)
다음은 파이썬 에서 자신의 데이터에 대해 "whuber 's idea"를 한 줄씩 구현 한 것입니다 . 결과가 좋지 않기 때문에 약간의 버그가있을 수 있습니다.
K = 2는 재앙이므로 k> = 4입니다.
5)
문제가있는 위치에서 한 지점을 제거했으며 결과 스플라인은 이제 whuber와 동일합니다. 그러나 왜이 방법이 모든 경우에 작동하지 않는지 의문입니다.
6)
whuber의 데이터에 대한 원활한 스무딩은 다음과 같이 될 수 있습니다 (벡터 그래픽 소프트웨어로 그린). 추가 포인트가 부드럽게 추가되었습니다 (업데이트와 비교).
4) :
7)
일부 상징적 인 모양에 대해서는 Python 버전의 whuber 코드 결과를 참조하십시오.
참고 이 방법은 폴리 라인이 작동하지 않습니다 보인다. 모서리 폴리 라인 (윤곽선) 녹색은 내가 원하지만 빨간색이됩니다. 닫힌 폴리 라인이 예제에서와 같이 다각형으로 취급 될 수 있지만 등고선 맵은 항상 폴리 라인이므로이 문제를 해결해야합니다. 또한 업데이트 4에서 발생한 문제가 아직 해결되지 않았습니다.
8) [나의 마지막]
최종 솔루션은 다음과 같습니다 (완벽하지는 않습니다).
별이 가리키는 부분에 대해 무언가를해야한다는 것을 기억하십시오. 내 코드에 버그가 있거나 제안 된 방법은 모든 상황을 고려하고 원하는 출력을 제공하기 위해 추가 개발이 필요합니다.