Skip To Content

거리 계산 시 경계 고려

Image Server에서 이용 가능

장애물은 거리를 계산하는 두 위치 간에 존재합니다. 장애물은 호수, 중앙 분리대가 있는 고속도로, 산맥과 같은 피처일 수 있습니다. 장애물이 있는 경우 직선 거리가 변경됩니다. 장애물 주변으로 우회하는 데 필요한 추가 거리를 고려한 다음 해당 위치 간의 가능한 최단 거리를 알고 싶을 수 있습니다.

등산객과 산장 간 직선 경로

길에 장애물이 있는 경우 트래블러는 이를 피해서 이동해야 합니다.

등산객과 산장 간에 호수가 있으면 등산객의 경로가 변경됨

장애물을 포함하고 이동한 실제 표면 거리를 통합하여 직선 거리를 조정할 수 있습니다. 조정된 직선 거리가 결정되고 나면 비용 표면, 시작지점 특성, 수직 계수, 수평 계수를 통해 거리가 발생하는 비율을 제어할 수 있습니다. 이러한 비율 계수 중 하나가 장애물로 지정되면 장애물 주변을 우회하는 것이 위치 간의 최저 비용 거리가 됩니다.

장애물 사용 예시

장애물은 다음과 같은 다양한 시나리오를 해결하는 데 사용할 수 있습니다.

  • 야생 동물 연구에서 사이에 호수가 있는 두 서식지 패치 간의 거리를 결정합니다.
  • 사이에 반도가 있는 두 정박지를 오가는 보트의 최단 거리를 결정합니다.
  • 주변을 탐색해야 하는 가파른 내리막이 있는 영역의 하이킹 트레일 경로를 식별합니다.
  • 비행기와 목적지 사이에 폭풍이 있는 경우 비행기가 이동해야 할 비행 경로를 정의합니다.

장애물이 있는 직선 거리 분석 조정

Distance analysis can be divided conceptually into the following related functional areas:

첫 번째 기능 영역에서 직선 거리는 아래와 같이 장애물로 조정됩니다. 이 시나리오에는 삼림 관리소(보라색 점) 4곳과 일부 강(파란색 라인)이 포함됩니다.

직선 거리 결과는 각 비시작지점 셀로부터 가장 가까운 관리소까지의 거리를 식별합니다.

관리소 4곳으로부터의 직선 거리 맵
각 비시작지점 셀로부터 가장 가까운 관리소까지의 직선 거리가 나와 있습니다. 강이 표시되어 있습니다.

장애물은 직선 거리를 조정합니다. 트래블러가 장애물을 피해서 이동해야 하기 때문입니다.

장애물인 하천을 피해 이동하도록 조정되는 직선 거리 맵
관리인은 강을 횡단할 수 없으므로 강은 장애물 역할을 합니다. 장애물 반대편에서 거리가 증가하는 것을 확인할 수 있습니다.

장애물이 없는 경우 직선 시작지점 방향 및 역방향 래스터는 동일합니다.

관리소 4곳으로부터의 직선 방향 맵
시작지점 방향 래스터는 가장 가까운 관리소까지의 방향을 나타냅니다. 방향은 나침반 방향(0~360도)을 기반으로 합니다.

역방향 래스터는 각 셀에 대해 셀로부터 가장 가까운 시작지점으로 돌아가는 이동 방향을 식별합니다. 장애물을 만나는 경우 트래블러는 이를 피해서 이동해야 합니다.

장애물을 포함하여 변경된 역방향 래스터 맵
하천 장애물이 통합된 역방향 래스터가 나와 있습니다. 트래블러가 강 주변을 우회할 수 있도록 이전 래스터의 시작지점 방향 값을 변경해야 합니다.

장애물이 있는 거리 래스터 생성

장애물을 통합하는 거리 래스터를 생성하려면 다음 단계를 완료합니다.

  1. 거리 누적 도구를 엽니다.
  2. 입력 래스터 또는 피처 시작지점 데이터 매개변수에 시작지점을 제공합니다.
  3. 결과 거리 래스터의 이름을 지정합니다.
  4. 입력 장애물 래스터 또는 피처 데이터 매개변수에서 장애물을 식별합니다.
  5. 기타 필요한 매개변수를 지정합니다.
  6. 실행을 클릭합니다.

거리 계산에 영향을 미치는 장애물

다음 섹션에는 거리 누적 도구를 사용하여 장애물이 있는 직선 거리를 조정하는 방법에 대한 정보가 나와 있습니다.

장애물 지정

장애물은 해당 장애물 주변으로 우회해야 하는 경우 거리 계산을 변경할 수 있습니다. 장애물 예시로는 호수, 중앙 분리대가 있는 고속도로, 산맥, 강, 절벽이 있습니다. 피처 또는 래스터 데이터와 같이, 장애물이 존재하는 위치를 지정하는 데 사용할 수 있는 입력 매개변수가 있습니다. 이 매개변수에 대한 입력이 피처 클래스인 경우 도구가 실행될 때 래스터로 변환됩니다.

장애물은 다른 방법으로도 정의할 수 있습니다. 표면 래스터, 비용 표면, 수직 계수 래스터, 수평 계수 래스터가 제공되는 경우 이러한 래스터의 NoData 셀은 장애물로 간주됩니다. 마스크 환경이 설정된 경우 마스크로 덮인 영역 외부에 있는 위치(NoData 셀)도 장애물로 간주됩니다. 모든 경우, 장애물은 이동을 금지합니다. 필요한 경우, 균열이 발생해 해당 장애물을 통과하여 이동하지 못하도록 모든 장애물이 약간 두껍게 처리됩니다. 자세한 내용은 균열 방지를 위해 장애물을 두껍게 처리 섹션을 참고하세요.

요약하자면 이동은 입력 표면 래스터, 비용 표면 래스터, 수직 계수 래스터, 수평 계수 래스터에 대한 유효한 값이 있는 위치 간에, 그리고 분석 환경(지정된 경우)에서 정의된 마스크 영역 내에 있는 위치 간에 허용됩니다. 장애물 입력에 의해 정의된 위치, 마스크 영역 외부에 있는 위치(NoData 셀) 또는 표면 래스터, 비용 표면 래스터, 수직 계수 래스터, 수평 계수 래스터의 값이 NoData인 위치 간에는 이동이 허용되지 않습니다.

결과 출력 거리 래스터에 영향을 미치는 장애물

거리 분석을 수행할 때 생성되는 다음과 같은 결과 래스터는 장애물의 영향을 받습니다.

  • 거리 누적 래스터
  • 역방향 래스터
  • 시작지점 방향 래스터

거리 누적 래스터

결과 거리 누적 래스터는 각 시작지점 셀에 대해 가장 가깝거나 비용이 낮은 시작지점까지의 누적 거리를 계산합니다. 장애물 입력이 지정된 경우 거리 값은 장애물 셀 주변으로 우회하는 것을 고려합니다.

예를 들어 기존 송전선에 인접한 것을 선호하는 새로운 건물 단지의 위치를 찾는 경우를 들 수 있습니다. 다음 이미지에는 각 비시작지점 셀로부터 가장 가까운 송전선(파란색 라인)까지의 거리가 표시됩니다. 장애물 입력은 지정되지 않았습니다. 그 결과로 나온 거리 래스터가 표시되어 있으며, 초록색은 보다 가까운 위치를 나타냅니다.

송전선으로부터의 직선 거리 맵
송전선으로부터의 직선 거리입니다. 직선 거리는 각 셀에 대해 가장 가까운 송전선 세그먼트로 계산됩니다.

지역적 제한으로 인해 새로운 송전선은 능선을 넘을 수 없습니다. 다음 이미지는 능선(보라색 라인)을 장애물로 추가할 경우의 영향을 보여줍니다. 능선을 피해 이동하는 데 필요한 거리가 추가되었기 때문에, 이제 능선 반대쪽의 위치가 송전선에서 더 멉니다(연한 갈색).

장애물을 피해 이동하도록 조정되는 직선 거리 맵
직선 거리는 장애물을 피해 이동하는 데 필요한 추가 거리를 고려하여 조정됩니다.

비고:

장애물로 인해 위치가 시작지점에서 분리되는 경우, 분리된 셀까지의 거리는 계산되지 않습니다.

역방향 및 시작지점 방향 래스터

거리 누적을 사용하여 역방향 래스터 및 시작지점 방향 래스터를 생성할 수도 있습니다. 역방향 래스터는 각 비시작지점 셀에 대해 비시작지점 셀을 떠나 가장 가깝거나 비용이 낮은 셀로 돌아갈 때 이동하는 방향을 식별합니다.

시작지점 방향 래스터는 각 비시작지점 셀에 대해 가장 가깝거나 비용이 낮은 시작지점으로의 방향을 식별합니다. 직선 거리를 계산할 때 장애물이 없는 경우 이러한 두 결과는 동일하고, 장애물이 있는 경우 동일하지 않습니다.

역방향 및 시작지점 방향 래스터는 나침반과 동일한 규칙을 사용합니다. 값 범위는 0도에서 360도까지이며 시작지점 셀에 0이 예약되어 있습니다. 동쪽(우측)이 90도이며 값은 시계방향으로 증가합니다(180도 남쪽, 270도 서쪽, 360도 북쪽). 두 래스터는 실제 방향을 보고하며, 역방향 래스터는 각도를 부동 소수점 값으로 보고하고 시작지점 방향 래스터는 정수(Integer)로 보고합니다.

역방향과 시작지점 방향 결과의 차이가 그림으로 나와 있습니다. 예를 들어 카약과 목적지 사이에 육지 반도가 있는 경우 카약이 목적지에 접근하기까지의 이동 거리(Jim의 카약 대여소)를 계산한다고 가정해 봅시다. 반도는 카약 이용자(트래블러)에게 장애물이 됩니다. 아래 이미지의 역방향 래스터에서, 각 셀은 카약이 Jim의 카약 대여소로 돌아가기 위해 셀 밖으로 이동해야 하는 방향을 저장합니다. 이는 카약이 육지를 피해 이동해야 하기 때문입니다. 이러한 방향 이동은 이를 나타내는 셀에 진한 파란색 화살표로 표시됩니다. 시작지점 방향 래스터에서 각 셀은 Jim의 카약 대여소로 돌아가는 직선 방향을 저장합니다. 이 방향은 연한 파란색 화살표로 표시됩니다. 두 방향은 서로 다릅니다. 카약 이용자가 진한 파란색 화살표를 따라가면 반도를 피해 이동하게 됩니다. 반면 연한 파란색 화살표는 반도와 관계없이 모든 위치에서 Jim의 카약 대여소로 돌아가는 직선 방향을 나타냅니다.

카약 이용자와 목적지 사이에 반도가 있는 경우 시작지점과 역방향이 어떻게 달라지는지 나타내는 맵
Jim의 카약 대여소는 이미지의 왼쪽 하단(주황색 점)에 있습니다. 해안과 노란색 폴리곤은 장애물입니다. 샘플 셀 집합에 역방향 값(진한 파란색)과 시작지점 방향 값(연한 파란색)이 표시되어 있습니다. 노란색 폴리곤은 카약 이용자가 피해야 하는 보트 계류 위치를 나타냅니다.

역방향 래스터의 중요한 용도는 목적지에서 가장 가까운 시작지점까지 돌아가는 최단 경로를 생성하는 것입니다. 아래 이미지에서, 결과 역방향 래스터는 카약 이용자(보라색 점)가 보트 계류(노란색 폴리곤)를 피해 반도(장애물) 주변으로 이동하여 카약 대여소로 돌아가야 하는 최단 경로를 정의하기 위한 라인 형식 최적 경로 도구에 대한 입력이었습니다.

카약이 카약 대여소로 돌아가기 위해 반도를 피해 이동해야 하는 경로
라인 형식 최적 경로 도구는 직선 거리 결과 및 역방향 결과를 사용하여 장애물을 피하면서 시작지점까지의 최단 폴리라인 경로를 생성합니다.

장애물은 가장 가깝거나 비용이 낮은 시작지점을 변경할 수 있음

장애물이 추가되면 접근하기에 가장 가깝거나 비용이 낮은 시작지점 셀이 변경될 수 있습니다. 예를 들어 아래의 첫 번째 이미지에는 두 개의 시작지점 S1과 S2가 있습니다. 비시작지점 셀 x에 가장 가까운 시작지점은 시작지점 S1입니다.

셀 x는 가장 가까운 시작지점 S1에서 180도 떨어져 있음
비시작지점 셀 x에서 가장 가까운 시작지점 셀은 S1이며, 값 180은 결과 방향 맵의 x의 위치에 저장됩니다.

다음 이미지에서는 수평 장애물이 추가되었습니다. 이제 x에 가장 가까운 시작지점은 시작지점 S2입니다(장애물의 우측 끝부분 주변에 연한 회색 경로로 표시됨).

수평 장애물은 가장 가까운 시작지점을 S1에서 S2로 변경
장애물(진한 회색 수평 라인)을 사용하면 이제 x에 가장 가까운 시작지점 셀은 S2가 됩니다. S2로 직접 이동하는 방향은 최단 경로를 따를 때 이동하는 역방향과는 다릅니다.

따라서 장애물이 있으면 역방향 래스터의 셀에 대한 결과 값이 변경될 수 있습니다. 이 예시의 경우, 장애물이 없는 역방향 래스터에서 x에 할당되는 값은 180.0이 됩니다. 장애물을 사용하면 x의 역방향은 121.5가 됩니다.

시작지점 방향 래스터의 경우 장애물이 없는 셀 x에 가장 가까운 시작지점은 180도 남쪽의 S1입니다. 수평 장애물이 추가되면 x에 할당되는 시작지점 방향은 약 135도(연한 파란색 화살표)가 되며, 이는 경로 내 방향이 아니라 x로부터 시작지점 S2까지의 직선 방향입니다. 장애물로 인해 x로부터 S2까지의 역방향 및 시작지점 방향이 달라진 것입니다.

결과 거리 할당 래스터의 x 값은 장애물이 없는 경우 S1이었지만 장애물이 있는 경우 S2로 변경됩니다.

비용 표면 및 장애물이 제공되는 경우 비시작지점 셀 x에 할당된 값에 대해 다음 세 가지 시나리오가 가능합니다.

  1. S1이 장애물 없는 최저 비용 시작지점이었다면 장애물이 있는 경우 S2는 S1에 할당된 값보다 누적 비용이 더 큰 최저 비용 시작지점이 됩니다.
  2. S2가 장애물 없는 최저 비용 시작지점이었다면 시작지점 S2는 본래 S1보다 접근 비용이 더 낮았습니다. 장애물이 있는 경우에도 S2는 여전히 접근하기에 비용이 가장 낮은 시작지점이지만 총 누적 비용은 증가하게 됩니다.
  3. 장애물이 없는 경우 S2가 최저 비용 시작지점이었지만, S2에 접근하는 경로가 장애물 근처를 통과하지 않습니다. 장애물이 있는 경우 S2의 누적 비용은 동일하게 유지됩니다. 장애물은 효과가 없었습니다.

비용 표면을 사용하면 x에 대한 최저 비용 시작지점이 S1에서 S2로 변경되는 경우 시작지점 방향 래스터가 변경됩니다. 그러나 본래 S2가 최저 비용 시작지점이었다면 x에 대한 시작지점 방향은 동일하게 유지됩니다.

균열 방지를 위해 경계를 두껍게 처리

장애물은 도로 또는 강과 같은 선형 피처로 나타낼 수 있습니다. 이 경우 거리 연산을 수행하기 전에 먼저 선형 피처를 래스터화해야 합니다. 래스터로서 선형 피처의 두께는 셀 하나의 두께입니다. 경계의 특성은 경계가 완벽하게 수평 또는 수직인 경우 보존되지만, 경계가 대각선인 경우도 있습니다. 이 경우 트래블러가 장애물의 균열에 해당하는 부분을 통과해 미끄러지는 것이 기하학적으로 가능합니다.

이를 방지하기 위해 거리 누적거리 할당 도구는 대각선 부분을 자동으로 셀 하나 두께만큼 두껍게 처리합니다. 이렇게 하면 트래블러가 대각선을 통과하지 못하므로 장애물 입력이 계속해서 실제 장애물 역할을 합니다.

장애물의 대각선 부분을 약간 두껍게 하여 트래블러가 균열을 통과해 미끄러지는 것을 방지
트래블러가 장애물의 균열을 통과해 대각선으로 미끄러질 수 있습니다(좌측). 이를 방지하기 위해 경계의 대각선 부분이 약간 두껍게 처리됩니다(우측).

입력 장애물이 래스터인 경우 이러한 두껍게 처리하는 과정은 너비가 셀 하나 너비인 대각선 셀에도 발생합니다.

도구 매개변수에서 데이터셋으로 지정된 장애물은 비용 표면에 병합되며, 필요한 경우 비용 표면의 NoData 셀이 두껍게 처리됩니다. 따라서 장애물은 데이터셋에 의해 지정되었는지 아니면 비용 표면에서 해당 위치가 NoData로 할당되었는지와 관계없이 두껍게 처리되어 잠재적인 균열을 방지합니다.