위의 주석에서 언급 한 워크 플로의 그림이 있으며이 작업을 수행하는 간단한 미리 준비된 루틴을 모르지만 원점-목적지 좌표 세트를 가져올 수있는 Excel 스프레드 시트를 첨부했습니다. 그런 다음 시트는 세트 또는 원형 좌표를 만듭니다 (스프레드 시트 여기 ). 수식이 설정되어있어 새로운 OD 좌표를 가져오고 수식을 확장하여 결과를 채울 수는 있지만 프로세스의 논리를보다 명확하게 살펴보고 다른 사람들은 스크립트를 완전히 작성하는 방법에 대한 조언을 줄 수 있습니다 ArcMap (또는 무엇이든).
간단히 말해서, 이것은 큰 원선이 인기있는 것과 같은 이유로 주로 OD 데이터를 시각화하는 데 합리적이라고 생각합니다. 내가 제안하는 접근법은 흐름 방향이 반원으로 인코딩된다는 점에서 큰 원선에 비해 하나의 이점이 있습니다. 이 사이트의 다른 답변 에서는 흐름 매핑을위한 시각화 기술에 대한 일반적인 개요를 제공하며 이와 같은 호를 만드는 것 외에도 동일한 기술을 많이 적용 할 수 있습니다.
따라서 제안과 같이 선을 그리는 방법을 자세히 설명하려면 본질적으로 프로세스의 3 단계 만 있습니다 .1) 흐름의 방향을 찾고 2) 흐름의 중간 점과 거리를 찾습니다 .3) 중간 점을 원의 중심으로 설정 한 다음 호 (원점에서 대상까지 반원)를 그립니다. 명확히하기 위해, 나는 투영 된 원점 좌표 (x1,y1)
와 목적지 좌표의 쌍으로 시작 합니다 (x2,y2)
.
따라서 1) 흐름의 방향을 찾으십시오. 먼저 수식 ATAN((y2 - y1)/(x2 - x1))
을 사용한 다음 방향에 따라 방향이 동쪽인지 서쪽인지에 따라 방향을 지정합니다. 아래의 의사 코드 예 (동일한 좌표에있는 OD 포인트를 0의 방향으로 지정합니다). 여기서 변수 or_rad
는 "라디안 방향"의 축약 형 pi
이며 pi의 값을 나타냅니다.
#tan_or = ATAN((y2 - y1)/(x2 - x1)).
Do If x2 = x1 and y1 <= y2.
compute or_rad = 0.
Else if x2 = x1 and y1 > y2.
compute or_rad = pi.
Else if x1 > x2.
compute or_rad = 270/180*pi - #tan_or.
Else if x1 < x2.
compute or_rad = 90/180*pi - #tan_or.
End If.
2) 흐름의 중간 점과 거리를 찾으십시오. 이것은 (x, y) 좌표의 중간 지점이 될 한 쌍의 좌표 집합에 대해서만 매우 간단합니다 (x1+x2/2,y1+y2/2)
. 다음 부분을 정의 mid_x = (x1 + x2)/2
하고 정의 mid_y = (y1 + y2)/2
하겠습니다. 피 타고 륨 정리를 사용한 거리는 간단 distance = SQRT((x1 - x2)^2 + (y1 - y2)^2)
합니다.
3) 그런 다음 해당 정보가 주어지면 미리 지정된 각도와 반경 (두 점 사이의 거리의 절반) 위에 주어진 원을 그립니다. 예를 들어에서 OD 좌표 쌍으로 시작한다고 가정 해 보겠습니다 (1,3):(3,2)
. 도 단위의 방향은 ~ 116 (및 라디안 ~ 2)이되고, x, y 중간 점이 (2,2.5)
되고 두 점 사이의 거리는 약 2.2입니다.
반원을 180도 정도 그리려면 pseduo-code에서 (이미 정의한 변수 사용) 반복은 다음과 같습니다.
for i in (0 to 180 degrees)
rad_i = i/180*pi. /*converts i from degrees to radians
step_or = pi - rad_i /*for clarity, this makes the circle go from origin to destination
radius = distance/2
Arc_X = mid_x + sin(or_rad - step_or)*radius.
Arc_Y = mid_y + cos(or_rad - step_or)*radius.
아래에는 위에서 지정한 원래 좌표의 다이어그램이 삽입되어 있습니다. 0에서 시작하여 180으로 끝나면 존재 지점과 끝 점이 동일한 위치에있게됩니다. 더 많은 단계 (더 자세한 아크) 또는 더 적은 (더 자세한 아크)를 갖도록 루프를 조정하는 것은 분명해야합니다.
참고로, 사이트의 다른 스레드는 점 데이터에서 선을 만드는 것에 대해 설명합니다 ( polyline-creation 태그 참조). 첨부 된 xls 스프레드 시트에 예제가 있으며 ET Geo-wizards 아크 맵 도구를 사용하여 스프레드 시트 좌표를 shapefile 라인으로 변환했습니다. 첨부 된 스프레드 시트에있는 예제 데이터의 호는 다음과 같습니다.
이 현재 설정에 대한 간단하지만 잠재적으로 유용한 업데이트 중 하나는 미리 지정된 양의 편심을 허용하도록 공식을 업데이트하는 것입니다. 나는 내 조언에 대한 커뮤니티의 제안과 피드백을 기대합니다.