가중치 티센 다각형을 만드시겠습니까?


17

점 모양 파일이 있고이 스크립팅 구문을 사용하여 프로그래밍 방식으로 Thiessen (Voronoi) 다각형을 만듭니다.

CreateThiessenPolygons_analysis (in_features, out_feature_class, fields_to_copy) 

그러나 각 점은 영역과 관련이 있으며 (예 : 각 다각형의 기본 크기)이 필드를 기준으로 Thiessen 다각형에 가중치를 부여하려고합니다.

그게 가능하고 어떻게?

VBA에 관련 코드가 있습니까?

답변:


15

Thiessen 다각형을 만들기 위해 거리를 가중시키는 방법 에는 여러 가지 가 있습니다 . 그것들을 구성하는 기본 아이디어는 임의의 점 x 와 두 개의 고정 점 pq 사이의 거리를 비교하는 것입니다 . xq 보다 p에 "가까운" 지 여부를 결정해야합니다 . 이를 위해 최소한 개념적으로 거리 dp = d ( x , p ) 및 dq = d ( x , q )를 고려합니다. 가중치는 일반적으로 두 가지 방식으로 발생합니다. 점에 wp 및 wq에 양의 가중치를 부여 할 수 있으며 거리 자체를 변환 할 수 있습니다.

이해하기 위해서는 거리가 증가함에 따라 변환 ( f로 작성 )이 증가해야합니다. 즉, d '> d> = 0 일 때마다 f (d')> f (d)입니다. 이러한 변환의 예는 f (d) = d + 1, f (d) = d ^ 2 (Reilly 's Retail Gravitation의 법칙)입니다. ), f (d) = 1-1 / d (모든 거리가 1보다 작다고 가정), f (d) = log (d), f (d) = exp (d) -1.

그러면 우리는 x 가 정확히 언제 q 보다 p에 더 가깝다고 말할 것입니다.

f (d ( x , p )) / wp <f (d ( x , q )) / wq.

곱하기가 아니라 가중치로 나눈 것을 주목하십시오. 이는 큰 가중치가 더 먼 거리에서 포인트를 "당길"경향이 있음을 의미합니다. 아래 예제를 보면 알 수 있습니다.

여기에 아름다운 점 과이 다소 추상적 인 설명의 요점이 있습니다. 결과 Thiessen 영역은 복잡하고 계산하기가 매우 어려울 수 있지만 그리드 기반 표현을 사용하여 비교적 쉽게 계산할 수 있습니다. 레시피는 다음과 같습니다.

  1. 각 입력 포인트 p 에 대해 유클리드 거리 그리드 [d (p)]를 계산합니다.

  2. Map Algebra를 사용하여 f 와 가중치 를 적용 하여 각 거리 그리드를 다음과 같이 다시 표현합니다.

    [fp] = f ([d (p)]) / wp.

    다음은 f (d) = 100 + d ^ (3/2)를 사용하는 예입니다. 스케일은 400 x 600입니다.

    그림 1

    f (d)가 증가하면 값이 어두워집니다. 이 예에서 거리는 중앙 적색 점과 관련이 있습니다. 다른 네 점은 별도의 거리 계산을 얻습니다 (표시되지 않음). 점의 면적은 가중치에 비례하며 2, 10, 3, 4 및 5입니다.

  3. 이러한 모든 그리드의 로컬 최소값을 계산하십시오 [fp]. 이것을 [f]라고 부릅니다. 다음은 예입니다.

    그림 2

  4. [f]를 각 [fp]와 비교함으로써, 각 그리드 셀에 [f]> = [fp] 인 첫 번째 p 의 식별자를 할당하십시오 . ( 예를 들어, 가장 낮은 위치 조작 으로 한 단계로 수행 할 수 있습니다 .)

    그림 3

    (이 가중치 함수 f에 대한 벡터 형식 솔루션을 계산하는 알고리즘이 어디에 있는지 의심합니다.)

분명히 당신이 p 이상의 포인트를 가지고 있다면 이것을 스크립팅 할 것이고, 그 수가 수천에 달하면 계산 불가능한 것으로 시도를 버릴 것입니다 (계산하여 계산을 신속하게하는 방법이 있지만).

타원체에 Thiessen 다각형을 표시하는 다른 예는 /gis//a/17377/에 나와 있습니다.


3
+1 래스터 접근 방식으로이 문제가 얼마나 쉬워 지는지 결코 알지 못했습니다.
Kirk Kuykendall

Whuber : 매우 정교한 프로세스! 그러나 내 적용에 초점을 맞추기 위해 입력 파일의 각 지점은 대지의 대략적인 중심을 나타냅니다. 벡터 Thiessen 다각형 파일 위에 표시된 스크립트 줄을 사용하여 만듭니다. 각 다각형에는 같은 거리의 티센 다각형 원리를 기반으로 한 공간, 즉 크기가 할당됩니다. 반면에, 각 토지 구획은 미리 정의 된 크기를 가지며 영역 필드에 제공됩니다. 이것이 폴리곤이이 인자에 비례 할 수 있도록 고려하고 싶은 요소입니다. 어떤 아이디어라도주세요?
Demetris

나는 당신의 말을 이해하지 못합니다, 데 메트리스. 그들은 Thiessen 다각형 모음이 아닌 영역지도를 실제로 원하는 것처럼 들립니다. 이러한 다각형을 계산 하는지 설명하는 데 도움이됩니다 . 그들은 어떤 문제를 해결하려고합니까? 그것들은 어떻게 해석됩니까?
whuber

Whuber : Thiessen 다각형 프로세스에서 입력 한 각 점은 새로운 토지 구획 세트의 대략적인 중심을 나타냅니다. 따라서, 나는 토지 소포의 모양을 나타내는이 점들 (1 점 1 대지 소포)을 기반으로 티센 다각형을 만듭니다. 유전 알고리즘을 공급하기 위해이 점들을 움직여서 임의의 토지 구획 모양을 만들 수 있습니다. 문제는 이러한 생성 된 소포 모양 (예 : 티센 다각형)이 미리 정의 된 영역을 가져야하며 Thiessen 다각형 작업을 사용할 때이를 고려할 수 있는지 궁금합니다. 나는 이것이 의미가 있기를 바랍니다.
Demetris

유전자 알고리즘이 무엇을하려고합니까? 가중치가 지정된 Thiessen 다각형이 필요하지 않은 것처럼 들립니다 . 다각형이 미리 지정된 영역 또는 미리 지정된 상대 영역을 확보 할 수있는 가능한 가중치는 없다고 생각 합니다.
whuber

10

: 당신이 원하는 것은 가중 보로 노이 다이어그램이다 http://en.wikipedia.org/wiki/Weighted_Voronoi_diagram는 2 차원 평면에서 곱셈 가중치를 수행 할 때 또한 원형 디리클레 테셀레이션으로 알고있다. : 누군가가 이러한 구축 할 수는 ArcGIS 9 확장 내장 것 같습니다 http://arcscripts.esri.com/details.asp?dbid=15481를 여기에 사용할 수있는 사용자 가이드와 함께 http://geography.unt.edu/~pdong/software을 .htm 및 2008 년 Dong, P.에 발표 된 논문. GIS의 점, 선 및 다각형 피처에 대한 가중 가중치 Voronoi 다이어그램 생성 및 업데이트. 컴퓨터 & 지구과학, 제 34 권, 제 4 호, 페이지 411-421.

이에 대한 벡터 기반 알고리즘 (P Dong의 알고리즘이 래스터 기반이라고 가정)에 대한 최근 기사가 있습니다. http://www.sciencedirect.com/science/article/pii/S0098300411003037 초록은 C # 코드가 포함되어 있다고 말합니다.


1
Blord-castillo :이 모든 정보에 감사드립니다. 매우 유용하며이를 포괄적 인 답변으로 받아들입니다. 그러나 내 새로운 문제는 위의 스크립트 줄에 egas와 같은 입력을 제공하여 코드 내에서 여러 번 해당 도구를 실행하고 싶다는 것입니다. 가능합니까?
Demetris
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.