본문 바로가기
카테고리 없음

지리정보시스템의 중첩 기능

by geoinfowiki 2024. 11. 30.
728x90
반응형

1. 개요

두 개 이상의 공간 레이어를 합쳐서 새로운 레이어를 생성하는 기법을 공간중첩연산이라 한다. 공간중첩연산은 벡터 자료와 래스터 자료에 대한 공간중첩연산으로 구분할 수 있다. 

일반적으로 중첩연산자는 두 개의 레이어를 입력자료로 사용하는데, 좌표체계가 동일하고 동일한 지역의 자료여야 한다. 둘 중의 한가지 조건이라도 충족하지 못한다면 중첩연산을 수행하는 의미가 사라진다. 공간 중첩연산의 기본적인 원리는 두 개의 레이어에서 같은 지점의 특성을 비교하여 새로운 레이어에서 같은 위치에 새로운 특성을 생성하는 것이다. 어떠한 특성을 생성해야 할 지는 사용자가 정한 규칙에 따른다. 래스터 데이터의 경우 개별 입력 래스터에서 각각의 셀을 비교하게 된다. 벡터 데이터에서도 동일한 지점간의 비교를 수행한다는 원리는 같지만 실제 계산에서는 대상물이 공간적으로 교차하는지를 결정하는 과정이 필요하다. 

2. 벡터 중첩 연산

벡터 레이어의 중첩 연산은 래스터 레이어의 중첩연산 대비 보다 많은 계산이 필요하다. 폴리곤 레이어는 물론 점이나 선 레이어에 대한 중첩연산 역시 원리는 대부분 동일하다.

두 개의 폴리곤 레이어에 대한 가장 표준적인 중첩연산은 폴리곤 교집합(polygon intersection) 연산이다. 교집합 연산은 가장 기초적인 중첩연산이라 할 수 있다. 다양한 종류의 중첩연산이 존재하지만 이 모든 것들이 교집합을 기준으로 정의 가능하다. 중첩 연산의 결과는 모든 가능한 폴리곤의 교집합이며 속성 테이블은 두 개의 입력 테이블을 조인(join)시킨 결과이다. 이 속성 테이블은 모든 교집합 폴리곤에 대한 행을 포함한다. 이러한 교집합 중첩연산은 공간 조인(spatial join)이라고도 한다. 예를 들어 토지이용분류와 행정구역 폴리곤을 중첩시켜 생성한 결과를 통해 특정 행정구역에 속하는 주거지역을 선택할 수 있다. 

폴리곤 추출(polygon clipping) 연산자는 하나의 폴리곤 레이어를 입력받아 두번째 레이어에 속한 폴리곤의 바깥 경계선에 포함되는 것만 출력 레이어에 저장한다. 이때 두번째 레이어에서는 제일 바깥쪽 경계 외의 다른 폴리곤 경계는 어떠한 역할도 수행하지 않는다. 폴리곤 덧씌우기(polygon overwriting) 연산자의 결과에는 두번째 레이어에 있는 모든 폴리곤이 포함되고 기타 남아있는 지역에는 첫번째 레이어에 존재하는 폴리곤이 포함된다. 대다수의 지리정보시스템에서 중첩연산 적용시 전체 레이어를 사용할 필요는 없다. 전체 레이어에서 필요한 폴리곤만 우선 선택하고 해당 폴리곤을 중첩연산에서 변수로 사용한다. 이들 연산 중 가장 기본적인 연산이 교집합 연산이다. 다른 연산은 교집합 연산 및 폴리곤 선택 연산이나 폴리곤 분류 연산으로 정의할 수 있다. 

벡터 중첩 연산은 선 또는 점 자료에 대하여 정의 가능하다. 지리정보시스템의 종류에 따라 이러한 연산자의 이름이 다를 수 있으므로 연산자 적용 이전에 관련 자료의 점검이 필요하다. 

3. 래스터 중첩 연산

벡터 중첩 연산은 유용하지만 기하학적으로 복잡하고 이러한 이유로 인핸 연산 성능이 떨어진다. 반면 래스터 중첩은 대부분의 계산이 셀별로 이루어지기 때문에 벡터 중첩 연산 대비 속도가 빠르다. 

래스터 처리를 지원하는 지리정보시스템 소프트웨어는 래스터 연산을 표현하는 언어를 지원하는 경우가 많다. 이러한 언어를 일컬어 래스터 계산(raster calculus)이라 하는데, 여러 함수와 연산을 사용하여 기존 래스터로부터 새로운 래스터를 계산할 수 있기 때문이다. 새로운 래스터를 생성하려면 이름을 지정하고 어떻게 계산할지를 지정해야 한다. 이러한 경우에 지시문(assignment statement)을 사용한다. 지리정보시스템은 지시문 우측의 표현식(expression)을 평가하여 그 결과를 지시문 좌측에 있는 이름의 래스터로 저장한다. 표현식에는 기존 래스터나, 연산, 함수 등을 포함한다. 표현식에 사용되는 래스터의 명칭이나 상수를 피연산자라고 한다. 지리정보시스템에서 표현식을 평가할 때에는 첫 행의 첫번째 픽셀부터 마지막 행의 마지막 픽셀까지 픽셀별로 계산을 수행한다. 

4. 산술연산자

래스터 연산에서는 기본적으로 표준적인 곱셈, 나눗셈, 덧셈, 뺄셈 등의 산술 연산자의 사용이 가능하다. 이러한 산술연산자는 간격 자료값이나 비율 자료값을 사용한다. 명목자료값이나 순서자료값에는 산술연산자를 적용하는 의미가 없다. 기타 산술연산자로 나머지 연산과 정수나눗셈 연산 등이 있다. 나머지 연산은 나눗셈의 나머지 값을 반환하는 연산자이다. 이외에도 sin, cos, tan과 같은 삼각함수도 이러한 범주에 해당한다. 

5. 비교 연산자/논리 연산자

래스터 연산에서는 셀별로 래스터 값의 비교가 가능하다. 이 과정에서는 표준 비교 연산자를 사용한다. 간단한 비교연산자의 예시로 참 또는 거짓을 저장할 수 있다. AND, OR, NOT 등의 논리 연산자 역시 래스터 계산에서 지원된다. 다른 하나로 배타적 OR(Exclusive OR, XOR) 연산이 있다. XOR 연산자는 둘을 비교하여 둘중 하나만 참일 경우 참을 반환하고 모두 참이거나 모두 거짓일 경우에는 거짓을 반환한다. 

6. 조건 표현식

비교연산자 및 논리연산자는 참 또는 거짓 값을 가지는 래스터를 생성한다. 실제의 경우 래스터를 사용하여 주어진 조건을 만족하는지 시험할 수 있는 조건 표현식이 필요한 경우가 있다. 

728x90
반응형