태그 보관물: vba

vba

가중치 티센 다각형을 만드시겠습니까? 관련이 있으며 (예 : 각 다각형의 기본

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

CreateThiessenPolygons_analysis (in_features, out_feature_class, fields_to_copy) 

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

그게 가능하고 어떻게?

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



답변

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/에 나와 있습니다.


답변

: 당신이 원하는 것은 가중 보로 노이 다이어그램이다
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 # 코드가 포함되어 있다고 말합니다.


답변