기존 포인트 세트에서 가장 먼 포인트를 어떻게 찾을 수 있습니까?


17

셰이프 파일로 포인트 세트가 있고 기존 포인트 각각에서 가능한 가장 긴 거리를 갖는 새 포인트의 좌표를 찾고 싶습니다. 가능합니까? 그렇다면 샘플 VB 코드가 있습니까? 감사합니다 Demetris


당신은 당신이 이미 존재하는 각 지점에 대해 새로운 지점을 원한다는 것을 의미합니까? 그리고 가장 먼 말은, "지구의 다른 쪽"을 의미합니까? 그렇다면 위도에 -1을 곱한 다음 경도에 180을 더하고 (결과 값이> 180 인 경우 360을 뺀) 10 진수로 표시 할 수 있습니다.
nmpeterson

흥미로운 질문은 지구에 흩어져있는 기존 지점을 고려할 때 지구상의 모든 기존 지점에서 가장 먼 지점을 찾는 것입니다.
Kirk Kuykendall

이등변 삼각형의 끝점 인 점이 유효합니다.이 거리는 원하는 거리만큼만 거리가 제한됩니다. 질문을 제대로 읽었다면 둘 다에서 가장 먼 점을 원하십니까? 같이?
털이

1
아! 내 게시물은 환상적인 토론과 자료를 만들었습니다! NMpeterson : 첫째, 내 요점이 작은 평평한 지역 내에 있다고 말해야합니다. 지구 계산이 필요하지 않습니다. 제기 된 두 번째 문제를 찾고 있습니다. 즉, 기존의 모든 지점에서 "가장 먼"지점입니다. 그래서 이것에 집중하십시오.
Demetris

원래 질문에서 요청한대로 샘플 VB 코드를 사용할 수 있는지 궁금합니다. 전문가의 반응을 고려할 때 이러한 코드가 이미 명백한 것일 수 있습니다. 그러나 초보자로서 whuber가 친절하게 제공하는 솔루션을 다시 작성하여 시작하고 싶습니다. 미리 의견 대신 답변으로 포즈를 취한 것에 대해 사과드립니다.

답변:


12

구형 보로 노이 다이어그램 (Thiessen polygons)을 구성하는 Kirk Kuykendall의 권장 사항은 좋은 것이지만 해결해야 할 기술적 문제가있을 수 있습니다. 한편, 대안으로, 위에 설명 된대로 표준 래스터 솔루션을 적용 할 수 있습니다. 다른 스레드에 . 유클리드 거리 대신 구면 거리를 사용하십시오.

다음은 (lat, lon)과 같이 5 개의 점을 사용한 예입니다.

 82.7051   -145.256
 60.3321     81.2881
-17.076     105.125
-38.792    -122.686
  0.000     180.000

거리지도

이 구형 거리 맵은 수평으로 -180에서 180도, 수직으로 -90에서 90도까지 지구에 걸쳐 있습니다. 점은 큰 빨간 점으로 표시됩니다. 거리는 밝기에 따라 증가합니다. 명백한 융기 부분은 큰 원의 일부 여야합니다. (-15.3268, -2.04352) 근처의 작은 검은 점은 11,227km의 최대 거리를 나타냅니다. (거리는 ITRF00 타원체 데이텀에서 계산되었습니다.)

이 격자의 해상도는 1 도입니다. 보다 정확한 솔루션을 얻으려면 이러한 점을 확대하고 (글로벌 최대 값에 충분히 가까운 값으로 다른 로컬 최대 값으로 확대) 작지만 고해상도 그리드에서 계산을 반복하십시오.


벡터보다 훨씬 예쁘다. 왜 래스터가 평평한 지구 모델이 필요하다고 생각했는지 모르겠습니다.
Kirk Kuykendall

예,하지만 비효율적입니다. 벡터 기반 구형 Voronoi 솔루션이 잘 작동하는 것을 보는 것이 좋습니다.
whuber

@Whuber : 어떻게 검은 점의 좌표를 자동으로 얻을 수 있습니까? "
Demetris

@Demetris 한 가지 방법은 그리드에서 최대 값을 계산하고 해당 값과 같은 모든 셀을 선택한 다음 해당 셀 중심의 좌표를 사용하는 것입니다.
whuber

@ 우버 : 많은 감사합니다. 이것은 좋은 생각입니다. 그러나 피쳐 클래스 (고유 다각형)를 기준으로 출력 래스터를 클립해야합니다. 내가 할 수 있습니까?
Demetris

8

여기에 이미지 설명을 입력하십시오

나는 이것을 시도한 적이 없지만 이것이 효과가있는 것처럼 보입니다.

구의 3D 보로 노이 다이어그램 을 만듭니다 . 이 결과 다각형은 기존의 기존 (종자) 점을 중심으로합니다.

각각의 결과 정점을 반복하여 가장 가까운 기존 지점에서 가장 먼 정점을 찾습니다. 이 지점은 지구상에서 가장 먼 지점이어야합니다.


이것은 좋은 생각입니다 (+1). 그러나 모든 점이 공통 반구 내에있을 때 구형 보로 노이 다이어그램은 어떻게 생깁니 까? 참조하는 코드는 볼록 껍질로 얻지 만 작동하지 않는 것 같습니다.
whuber

흠, 예, 공통 반구에 모두 없더라도 시드 포인트가없는 다각형이 하나있을 것입니다. 볼록 껍질 중심의 대 지점을 사용하여 점을 만들면 어떻게됩니까? 그런 다음 각 정점을 반복하는 것 외에도이 볼록한 반점은 최대 정점 거리보다 이웃에서 더 멀리 있는지 확인합니다.
커크 Kuykendall

그것은 나의 초기 생각 이었지만, 대 지점은 인공적인 다각형을 만들 것입니다. 예를 들어 모든 지점에 대한 대변인이 포함 된 경우 삽화에서 어떤 일이 일어날 지 생각해보십시오! 아마도이 성격의 해결책이있을 수는 있지만 간단하지 않은 것 같습니다.
whuber

1

Cost-Weighted Distance 기능을 사용하여 래스터의 모든 셀이 다른 모든 지점과 얼마나 떨어져 있는지 식별 할 수 있습니다.


어떤 비용을 사용 하시겠습니까?
whuber

비용을 하나의 단위로 설정 한 경우 가장 먼 지점이 거리를 기반으로하는 것을 식별 할 수 있습니다.
djq

@whuber 아마도 이것은 앞에서 언급 한 유클리드 거리 접근 방식을 계산하는 것과 다르지 않습니다.
djq

유클리드 거리입니다. 실제로, 그것은 짝수도 아닙니다 : 그것은 이상한 종류의 팔각형 거리입니다 (원은 실제로 팔각형입니다). 이 상황 (장벽이없는 점에서만 거리)에서는이를 위해 CostDistance를 활용하지 않고 유클리드 거리 또는 구면 거리 그리드를 직접 계산하는 것이 훨씬 정확하고 훨씬 빠릅니다.
whuber

단 한 점의 좌표가 필요하기 때문에 원가 가중 거리 함수가 도움이 될지 확신하지 못하며 기존의 벡터 점이 있지만 시도해 볼 것입니다. 감사.
Demetris

1

내가 아는 한,이 " 접근 불가능한 극 "분석은 반복적으로 수행되어야합니다.

투영에서 왜곡이 최소화 된 작은 영역을 보는 한 반복적 인 래스터 방식이 적합합니다. 각 셀에 대해 모든 점까지의 거리를 계산 한 다음 최소 거리를 사용하십시오. 가장 높은 값을 가진 셀이 극입니다. 유클리드 거리를 사용할 수도 있습니다Spatial Analyst에서 를 하여이를 수행 .

반복 벡터 접근 방식이 더 복잡합니다. Garcia-Castellanos 등 (2007) 은 구형 지구에 기반한 반복 방법을 설명합니다. C 코드를 온라인에서 사용할 수 있는 것으로 보입니다 . 버퍼로 Arc 에서이 작업을 수행하는 방법을 상상할 수 있지만 여전히 반복적이고 느려질 것입니다.


0

포인트 거리 (분석)를 사용할 수 있습니다. 도구는 두 포인트 세트 사이의 거리가있는 테이블을 만듭니다. 기본 검색 반경을 사용하는 경우 모든 입력 지점에서 모든 가까운 지점까지의 거리가 계산됩니다. 출력 테이블은 상당히 클 수 있습니다. 예를 들어, 입력 및 근거리 형상 모두에 각각 1,000 점이 있으면 출력 테이블에 백만 개의 레코드가 포함될 수 있습니다.


입력에 나타나지 않는 새로운 점 의 좌표를 찾는 데 어떻게 이것을 적용 할 수 있습니까? 아마도 당신은 질문을 잘못 읽었습니까?
whuber

0

포인트 세트에서 가장 먼 포인트는 세트에서 가장 내부 포인트에 대한 역수입니다. 예를 들어, 세트의 가장 안쪽 점이 북쪽으로 49도, 동쪽으로 -144 도의 좌표를 가졌다면 역과 가장 먼 점의 좌표는 남쪽으로 49도, 서쪽으로 36 도입니다. 지구가 완전히 구형이 아니라 지오이드이기 때문에 이것은 사실이 아닙니다. 따라서 결과 포인트의 정확성은 사용하는 투영 및 지리 시스템 (직교, 직교 교정 ...)에 따라 다릅니다. 전체 세트에 대한 역수를 찾은 다음 (세트에 대한 안티 포드 전송) 지형이 매우 많을 수 있기 때문에 포인트에 의해 커버 된 지형 내에서 표면 분석을 실행하는 것이 도움이 될 수 있습니다. 나는 당신의 질문이 다른 행성이나 달과 같은 외계 몸의 어떤 점에 관한 것이 아니라고 가정합니다. 죄송합니다, VB 코드가 없습니다. 🙄


세트의 다른 모든 점에서 가장 먼 점은 가장 안쪽에있는 점 (가장자리를 따라 가장 바깥 쪽 점에서 가장 먼 점)이며 바로 옆에있는 모든 점에 가장 가까운 점입니다. 이것은 재미없는 클러스터 분석입니다. 그것은 Physics.😐에서 동일한 요금 원자에 아마 더 나은 보는 것입니다
YURIY Shevchuk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.