7. 위상(位相)

gentleLogo

목적

벡터 데이터에서 위상(topology)을 이해하기

키워드

벡터, 위상, 위상 규칙, 위상 오류, 검색 반경, 스냅 거리, 단순 객체

7.1. 개요

위상(topology) 은 GIS에서 서로 연결된 또는 인접한 벡터 객체들(포인트, 폴리라인, 폴리곤) 사이의 공간적 관계를 나타냅니다. 위상적인 또는 위상 기반의 데이터는 디지타이즈 작업의 (예를 들어 도로 벡터 레이어의 라인 2개가 교차점에서 완벽하게 접하지 않는다든지 하는) 오류를 탐지하고 수정하는 데 유용합니다. 망분석(network analysis) 같은 몇몇 유형의 공간 분석을 수행하는 데 위상이 필요합니다.

런던으로 여행을 간다고 상상해보세요. 관광 도중에 세인트 폴 대성당을 먼저 들른 다음 오후에는 기념품을 사러 코번트 가든 시장에 갈 계획을 짭니다. 런던 지하철 지도를 (그림 7.11 참조) 보면서 코번트 가든에서 세인트 폴 대성당으로 가는 환승 열차를 찾아야 합니다. 이 과정에서 여러분은 어디에서 열차를 환승할 수 있는지에 대한 위상적 정보(데이터)가 필요할 것입니다. 지하철 지도를 보면, 환승이 가능하다는 것을 나타내는 원으로 위상적 관계를 표현하고 있습니다.

../../_images/london_underground.png

그림 7.11 런던 지하철망의 위상

7.2. 위상 오류

위상적 오류는 여러 유형이 있으며, 벡터 객체 유형이 폴리곤인지 또는 폴리라인인지에 따라 서로 다른 그룹으로 묶을 수 있습니다. 폴리곤 객체의 위상적 오류는 닫히지 않은 폴리곤, 폴리곤 경계선(border) 사이의 틈(gap), 또는 폴리곤 경계선의 중첩 등을 포함합니다. 폴리라인 객체의 공통적인 위상 오류 가운데 하나는 폴리라인 2개가 (또는 그 이상이) 어떤 포인트(노드)에서 완벽하게 접하지 않는 오류입니다. 라인 사이에 틈이 존재하는 경우 이런 유형의 오류를 언더슛(undershoot) 이라고 하며, 라인이 접해야 할 다른 라인 너머에서 끝나는 경우 오버슛(overshoot) 이라고 합니다. (그림 7.12 을 참조하세요.)

../../_images/topology_errors.png

그림 7.12 연결되어야 할 디지타이즈된 벡터 라인들이 제대로 접하지 않는 경우 언더슛(1)이 생겨납니다. 어떤 라인이 연결되어야 하는 라인 너머에서 끝나는 경우 오버슛(2)이 생겨납니다. 두 폴리곤의 꼭짓점들이 폴리곤 경계선 상에서 일치하지 않는 경우 조각(sliver)(3)이 생겨납니다.

오버슛 및 언더슛 오류의 결과는 라인 종단점 위치에 있는 소위 ‘매달린 노드들(dangling nodes)’ 입니다. 특별한 경우 이 매달린 노드들을 받아들일 수도 있습니다. 예를 들면 해당 노드들이 막다른 길에 해당하는 경우 말입니다.

위상 오류는 객체들 사이의 관계를 무너뜨립니다. 벡터 데이터를 망분석(예: 도로망에 걸쳐 최적 경로 찾아내기) 또는 측정(예: 하천의 길이 계산하기) 같은 작업으로 분석할 수 있기 위해서는 이런 오류를 수정해야 합니다. 위상이 망분석 및 측정에 유용할 뿐만 아니라, 정확한 위상을 가진 벡터 데이터를 생성 또는 보유하는 일이 중요하고 유용한 다른 이유들도 있습니다. 여러분이 살고 있는 지역의 행정구역도(municipal boundaries map)를 디지타이즈하고 있는데 폴리곤들이 중첩하거나 조각이 보인다고 상상해보십시오. 그런 오류들이 존재한다면, 측정 도구를 사용할 수는 있겠지만 그 결과는 정확하지 않을 것입니다. 어떤 행정구역의 면적도 정확히 알 수 없을 것이고, 행정구역들 사이의 경계가 정확히 어디인지도 알 수 없을 겁니다.

위상적으로 정확한 데이터를 생성하고 보유하는 것은 여러분의 분석에만 중요한 것이 아니라, 여러분이 데이터를 전달하게 될 사람들에게도 중요합니다. 여러분의 데이터와 분석 결과가 정확할 것이라고 기대할 테니까요!

7.3. 위상 규칙

다행하게도, 여러 GIS 응용 프로그램에 내재되어 있는 위상 규칙으로 벡터 객체를 디지타이즈하는 도중에 발생할 수 있는 공통된 많은 오류들을 방지할 수 있습니다.

몇몇 특수한 GIS 데이터 포맷을 제외하면, 보통 기본적으로 위상을 강제하지는 않습니다. QGIS 같은 여러 평범한 GIS는 위상을 관계 규칙으로 정의하고, 사용자가 벡터 레이어 내에서 시행할 규칙이 있다면 스스로 선택하도록 하고 있습니다.

다음 목록은 벡터 맵에 있는 실세계 객체에 대해 정의할 수 있는 위상 규칙들의 몇몇 예시입니다:

  • 행정구역도의 지역 경계들은 중첩해서는 안 된다.

  • 행정구역도의 지역 경계들 사이에 틈(조각)이 있어서는 안 된다.

  • 토지 경계를 나타내는 폴리곤은 닫혀 있어야만 한다. 경계선의 언더슛 또는 오버슛은 허용되지 않는다.

  • 벡터 라인 레이어의 등고선은 (서로를 넘어) 교차해서는 안 된다.

7.4. 위상 도구

여러 GIS 응용 프로그램이 위상적 편집 작업을 위한 도구를 제공하고 있습니다. 예를 들어 QGIS에서는 폴리곤 레이어에 있는 공통 경계의 편집 및 유지보수를 향상시키기 위해 위상 편집 작업을 활성화 시킬 수 있습니다. QGIS와 같은 GIS는 폴리곤 맵에 있는 공유 경계를 ‘탐지(detect)’ 할 수 있기 때문에, 한 폴리곤 경계의 가장자리 꼭짓점(edge vertex)을 움직이기만 해도 QGIS가 알아서 다른 폴리곤 경계들을 업데이트할 것입니다. 그림 7.13 의 (1)을 참조하세요.

또다른 위상 옵션 가운데 하나는 디지타이즈 작업 도중에 폴리곤 중첩(overlap) 을 방지할 수 있게 해줍니다. (그림 7.13 의 (2) 참조) 기존 폴리곤이 있는 경우, 이 옵션을 활성화하고 두 번째 인접 폴리곤을 디지타이즈하면 두 폴리곤이 중첩하더라도 QGIS가 두 번째 폴리곤을 공통 경계로 자를 것입니다.

../../_images/topological_tools.png

그림 7.13 (1) Topological editing to detect shared boundaries, when moving vertices. When moving a vertex, all features that share that vertex are updated. (2) To avoid polygon overlaps, when a new polygon is digitised (shown in red) it is clipped to avoid overlapping neighbouring areas.

7.5. 스냅 거리

스냅 거리란 여러분이 디지타이즈 작업 도중 연결하려 하는 가장 가까운 꼭짓점 그리고/또는 선분을 검색하기 위해 GIS가 사용하는 거리를 말합니다. 선분(segment) 은 폴리곤 또는 폴리라인 도형에서 두 꼭짓점 사이에 형성된 직선입니다. 스냅 거리에 들어오지 않는 경우, QGIS 같은 GIS는 기존 꼭짓점 그리고/또는 선분에 스냅시키는 대신 여러분이 마우스 버튼을 놓은 위치에 꼭짓점을 생성할 것입니다. (그림 7.14 을 참조하세요.)

../../_images/snapping_distance.png

그림 7.14 꼭짓점 또는 선분 가운데 하나에 스냅시키기 위한 스냅 거리(검은 원)는 (십진수도(decimal degree) 같은) 맵 단위로 정의됩니다.

7.6. 검색 반경

검색 반경(search radius)이란 여러분이 맵 위를 클릭할 때 GIS가 여러분이 옮기려 하는 가장 가까운 꼭짓점을 검색하기 위해 사용하는 거리를 말합니다. 검색 반경에 들어오지 않는 경우, GIS는 편집 작업을 위해 어떤 객체의 꼭짓점도 찾아 선택하지 않을 것입니다. 원칙적으로, 검색 반경은 스냅 거리 기능과 아주 유사합니다.

스냅 거리와 검색 반경 둘 다 맵 단위(map unit)로 설정되기 때문에, 알맞은 설정값을 찾기 위해 시행착오를 거쳐야 할 수도 있습니다. 값을 너무 길게 설정하면, GIS가 틀린 꼭짓점에 스냅할 수도 있습니다. 특히 대량의 인접 꼭짓점들을 다루고 있을 경우엔 말입니다. 검색 반경을 너무 짧게 지정한다면, GIS가 이동시키거나 편집할 객체 또는 꼭짓점을 하나도 찾지 못 할 것입니다.

7.7. 공통적으로 조심해야 할 문제들/사항들

위상을 필요로 하는 (어떤 망에 걸쳐 경로를 찾아내는 등의) 데이터 분석이 아니라 주로 단순성 및 빠른 렌더링을 위해 설계되었지만, 여러 GIS 응용 프로그램들은 위상 및 단순 객체(simple feature) 데이터를 함께 보여줄 수 있으며, 몇몇 GIS는 둘 다를 생성, 편집 및 분석할 수도 있습니다.

7.8. 무엇을 배웠나요?

이제 이번 단원에서 배운 내용을 정리해볼까요:

  • 위상 은 서로 인접해 있는 벡터 객체들의 공간적 관계를 나타냅니다.

  • GIS에서 위상은 위상 도구 가 제공합니다.

  • 디지타이즈 오류를 탐지하고 수정 하는 데 위상을 사용할 수 있습니다.

  • 망분석 과 같은 몇몇 도구는 위상 데이터가 필수입니다.

  • 스냅 거리검색 반경 은 위상적으로 정확한 벡터 데이터를 디지타이즈할 수 있도록 도와줍니다.

  • 단순 객체 데이터는 진정한 위상 데이터 포맷은 아니지만 GIS 응용 프로그램들이 공통적으로 사용하고 있습니다.

7.9. 도전해봅시다!

강사와 학생들이 함께 시도해볼 만한 몇 가지 아이디어가 있습니다:

  • 지형도 위에 여러분 지역의 버스 정류소를 표시한 다음 학생들에게 두 정류소 사이의 최단 경로를 찾아보라고 하십시오.

  • GIS에 여러분이 사는 마을의 위상적 도로망을 표현할 수 있는 벡터 객체들을 어떻게 생성할지 생각해보십시오. 새 도로 레이어가 위상적으로 정확하도록 만들려면 어떤 위상 규칙이 중요할까요? 또 학생들이 QGIS에서 어떤 도구를 사용하면 될까요?

7.10. 생각해볼 점

사용할 수 있는 컴퓨터가 없다면, 버스 노선 또는 철도망 지도를 활용해서 학생들과 공간적 관계와 위상에 대해 토론할 수 있습니다.

7.11. 더 읽어볼 거리

서적:

  • Chang, Kang-Tsung (2006). Introduction to Geographic Information Systems. 3rd Edition. McGraw Hill. ISBN: 0070658986

  • DeMers, Michael N. (2005). Fundamentals of Geographic Information Systems. 3rd Edition. Wiley. ISBN: 9814126195

웹사이트:

QGIS 사용자 지침서도 QGIS에서 어떻게 위상적 편집 작업을 하는지에 대한 보다 상세한 정보를 수록하고 있습니다.

7.12. 다음 단원은?

다음 단원에서는 공 모양인 지구의 데이터를 어떻게 평면 지도 위로 합치시킬 수 있는지를 이해하기 위해 좌표계(Coordinate Reference System) 에 대해 자세히 살펴볼 것입니다.