근접성의 척도로 포인트 세트 간의 평균 거리를 계산하는 방법

비교하고 싶은 PostGIS에 세 개의 시리즈 (또는 테이블) 포인트가 있습니다. 다른 두 시리즈와 비교할 때 각 시리즈가 얼마나 “가까운”지 알고 싶습니다. 즉, 각 지점의 평균 거리와 다른 모든 지점의 평균 거리 (즉, 거리 행렬의 평균)와 같은 측정 값이 필요합니다 … 복잡하게 들리지만 비교할 수있는 몇 가지 일반적인 통계가 존재한다고 확신합니다. 일련의 포인트.

검색어는 어떻게 표시됩니까?

댓글

  • 측정 값으로 선택한 경우 RMSE 거리가 sqrt (2N / (N-1)) 곱하기 N 포인트와 그 중심 사이의 RMSE 거리와 같기 때문에 계산의 복잡성이 O (N ^ 2)에서 O (N)으로 줄어 듭니다.
  • 당신이 원하는대로하면 ' 세트를 자신과 비교하는 것이 0이 아닌 거리가되는 상황에 처하게됩니다. 즉, 세트의 포인트가 두 세트 사이에 얼마나 가까운 지 비교할 수 있습니다.
  • @Jakub " 클러스터 "는 모든 포인트 세트 내에서 평균 거리 측정 값을 사용하는 것입니다. 전체 집합에 대한 측도를 군집 측도의 합계 (또는 다른 적절한 조합)와 비교하면 군집 양을 평가합니다. 따라서 일부 사람들이 Francesco ' 절차에 대한 이의로 읽을 수있는 귀하의 의견은 실제로 그것이 흥미롭고 유용한 절차 인 이유를 지적합니다.
  • 나는 이 계산의 포인트가 무엇인지 모르지만 세트 A의 포인트가 서로 더 가까운 지 여부 만 알고 싶다면 세트 B의 포인트가 선체의 면적을 계산하는 것이 해결책 일 수 있습니다 (ST_Area + ST_ConcaveHull )
  • 점 사이의 모든 거리의 평균을 원하는 이유가 있습니까? 각 평균 계산은 모든 지형지 물 집합이 다소 가까울 수있는 지형지 물 간의 최대 거리에 의해 왜곡됩니다.

답변

댓글에서 언급했듯이 평균 거리는 포인트 사이의 가장 큰 거리에 의해 왜곡됩니다. 예를 들어, 100km 길이의 점 구름이있을 수 있으며 그런 다음 측면으로 1m 이동하여 새 테이블을 만들 수 있습니다. 테이블 A에서 테이블 B까지의 모든 지점에 대한 평균 거리 는 1m보다 100km에 가깝습니다. 테이블 A에서 테이블 B까지의 모든 지점에 대한 가장 가까운 거리 는 1m이고 평균 가장 가까운 거리 는 1m입니다.

그 외에 가장 가까운 거리의 평균을 계산하는 방법을 보여 드리겠습니다. 그런 다음 원하는대로 확장 할 수 있습니다.

SELECT DISTINCT ON(a.id) a.id AS a_id, b.id AS b_id, ST_DISTANCE(a.geom, b.geom) as distance INTO a_b_distances FROM a, b ORDER BY a.id, a.geom <-> b.geom 

그런 다음 평균 가장 가까운 거리를 계산하려면 :

SELECT avg(distance) FROM a_b_distances 

댓글

  • 대단합니다. 최대 가장 가까운 거리를 찾기 위해 어떻게 확장 할 수 있습니까?
  • for max

  • 굉장합니다! 최대 값을 직접 반환하도록 반환 하시겠습니까? ' 내 모든 라인에서이 작업을 수행하고 있습니다.
  • 이 시점에서 자신의 질문을 할 수 있습니다. div id = “85890be293″>

기꺼이 답변 해 드리겠습니다. ' l l 댓글 섹션에서 이보다 더 자세한 정보를 제공합니다.

  • 여기에 추가 (수정 됨) gis.stackexchange.com/questions/190237/ …
  • 답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다