4. 벡터 속성 데이터

gentleLogo

목적

이 단원에서는 속성 데이터가 벡터 객체와 어떻게 엮이는지 그리고 데이터를 심볼화하기 위해 어떻게 쓰일 수 있는지 설명합니다.

키워드

속성, 데이터베이스, 필드, 데이터, 벡터, 심볼

4.1. 개요

지도 상에 있는 모든 선이 동일한 색상, 너비, 두께, 그리고 동일한 라벨을 가지고 있다면, 지도를 이해하기가 아주 어려워질 겁니다. 그런 지도를 보고 어떤 정보를 얻기도 힘들겠죠. 그림 4.6 이 그 예시입니다.

../../_images/map_attributes.png

그림 4.6 지도는 어떤 객체 유형을 다른 유형과 구분하기 위해 서로 다른 색상과 심볼을 사용할 때에야 쓸모가 있습니다. 왼쪽 지도를 보고 하천, 도로 및 등고선의 차이를 구분할 수 있을까요? 오른쪽 지도를 보면 서로 다른 객체들을 훨씬 쉽게 구별할 수 있습니다.

이 단원에서는 속성 데이터가 지도를 어떻게 재미있고 이해하기 쉽게 만들 수 있는지를 살펴볼 것입니다. 벡터 데이터에 대한 앞 단원에서는 벡터 객체를 설명하기 위해 속성 데이터(attribute data)를 사용 한다고 간단히 설명했습니다. 그림 4.7 에 있는 집 사진들을 살펴보세요.

../../_images/house_picture.png

그림 4.7 모든 객체는 설명 가능한 특징들을 가지고 있습니다. 눈으로 볼 수 있는 특징일 수도 있고 객체에 대해 알고 있는 특징(예: 건축 연도)일 수도 있죠.

이런 가옥 객체의 도형은 (가옥의 평면도를 토대로 한) 폴리곤이며, 기록된 속성은 지붕 색상, 발코니 유무 여부, 그리고 해당 가옥이 건축된 연도입니다. 속성이 꼭 눈에 보이는 특징일 필요는 없다는 사실을 기억하세요. 건축 연도처럼 객체에 대해 알려진 사실을 설명하는 내용일 수도 있습니다. GIS 응용 프로그램은 가옥 폴리곤 레이어에 이런 객체 유형을, 그리고 속성 테이블에 이런 속성을 표현할 수 있습니다. (그림 4.8 참조)

../../_images/houses_in_gis.png

그림 4.8 가옥 레이어입니다. 가옥 객체는 가옥의 지붕 색상 및 기타 속성을 설명하는 속성들을 가지고 있습니다. 속성 테이블은 (아래 그림) 맵 상에 표시된 가옥들에 대한 속성들을 나열합니다. 표에서 어떤 객체를 강조(선택)하면, 맵 상에서 노란색 폴리곤으로 표시될 것입니다.

객체가 도형은 물론 속성도 가지고 있다는 사실은 GIS 응용 프로그램에 수많은 가능성을 열어줍니다. 예를 들어 속성 값을 사용해서 GIS가 객체를 그릴 때 어떤 색상과 스타일을 사용할지 지정할 수 있습니다. (그림 4.9 참조) 색상 및 그리기 스타일을 설정하는 과정을 흔히 객체 심볼(symbology) 설정하기라고 부르곤 합니다.

../../_images/style_by_attribute.png

그림 4.9 GIS 응용 프로그램에서, 객체를 해당 객체의 속성에 따라 서로 다르게 그릴 수 있습니다. 왼쪽 그림에서는 가옥 폴리곤을 지붕 색상 속성과 동일한 색상으로 그렸습니다. 오른쪽 그림에서는 가옥에 발코니가 있는지 없는지 여부에 따라 색상을 구별했습니다.

맵 라벨 을 생성할 때에도 속성 데이터를 유용하게 쓸 수 있습니다. GIS 응용 프로그램 대부분은 각 객체에 라벨을 붙일 때 사용해야 할 속성을 선택할 수 있는 기능을 가지고 있을 겁니다.

여러분이 어떤 장소의 이름 또는 특정 객체를 찾기 위해 지도를 뒤져본 적이 있다면, 그게 얼마나 시간을 잡아먹는지도 알 겁니다. 속성 데이터가 있다면 특정 객체를 빠르고 쉽게 찾을 수 있습니다. 그림 4.10 에서 GIS에서의 속성 검색의 예를 볼 수 있습니다.

../../_images/search_by_attribute.png

그림 4.10 GIS 응용 프로그램에서는 객체의 속성을 기반으로 객체를 검색할 수도 있습니다. 이 그림은 검은색 지붕을 가진 집들을 검색한 결과입니다. 검색 결과는 맵 상에서 노란색, 속성 테이블에서 청록색으로 표시됩니다.

마지막으로, 속성 데이터는 공간 분석 을 수행하는 데에도 매우 유용합니다. 공간 분석은 객체의 도형에 저장된 공간 정보를 객체의 속성 정보와 결합합니다. 이런 방식으로 객체는 물론 객체들이 서로 어떻게 관계를 맺고 있는지를 연구할 수 있습니다. 공간 분석을 여러 가지 유형으로 수행할 수 있는데, 예를 들면 GIS를 이용해서 특정 지역에 빨간색 지붕을 가진 집이 얼마나 자주 나타나는지 알 수도 있습니다. 수목 객체가 있다면, GIS를 이용해서 어느 토지가 개발되는 경우 어떤 수종이 영향을 받게 되는지 연구해볼 수도 있겠죠. 하천의 흐름을 따라 채취한 강물 샘플에 대한 정보를 저장한 속성을 이용해서 오염수가 어디에서 하천으로 흘러드는지 알 수도 있습니다. 그 어떤 것도 가능합니다! 다른 단원에서 공간 분석에 대해 더 자세히 살펴보겠습니다.

속성 데이터에 대해 더 자세히 알아보기 전에, 간단히 정리하겠습니다.

객체란 도로, 지적(地籍) 경계, 변전소 부지 등등 실재하는 사물을 말합니다. 객체 는 (객체가 포인트 인지 폴리라인 인지 폴리곤 인지 결정하는) 도형 과 (객체에 대해 설명하는) 속성 을 가집니다. 그림 4.11 이 이를 보여주고 있습니다.

../../_images/feature_at_glance.png

그림 4.11 한눈에 보는 벡터 객체

4.2. 속성을 더 자세히

벡터 객체용 속성은 테이블 에 저장됩니다. 테이블이란 스프레드시트와 비슷합니다. 테이블의 각 열을 필드(field) 라 하고, 각 행을 레코드(record) 라고 부릅니다. table_house_attributes 은 GIS에서 속성 테이블이 어떻게 보이는지에 대한 간단한 예시입니다. GIS에서 속성 테이블에 있는 레코드들은 각각 하나의 객체에 대응합니다. 보통 속성 테이블의 정보는 일종의 데이터베이스에 저장됩니다. 여러분이 맵 상에서 객체를 선택해서 테이블에 있는 레코드를 찾거나, 테이블에서 객체를 선택해서 맵 상에 있는 객체를 찾을 수 있도록 GIS 응용 프로그램이 속성 레코드를 객체 도형과 연결시킵니다.

속성 테이블

Field 1 : YearBuilt

Field 2: RoofColour

Field 3: Balcony

Record 1

1998

Red

Record 2

2000

Black

Record 3

2001

Silver

가옥 속성 테이블: 속성 테이블은 필드(열)와 (행에 있는) 레코드를 가집니다.

속성 테이블의 각 필드는 특정 유형의 데이터를 (텍스트, 숫자, 또는 날짜를) 담고 있습니다. 어떤 객체에 대해 어떤 속성을 사용할지 결정하기 위해서는 약간의 생각과 계획이 필요합니다. 앞에 있는 가옥 예시에서는 우리가 관심을 가질 속성으로 지붕 색깔, 발코니의 유무, 그리고 건축 연도를 선택했습니다. 물론 다음과 같은 가옥의 다른 측면도 똑같이 쉽게 선택할 수 있었을 겁니다:

  • 층수

  • 방의 개수

  • 거주자의 명수

  • 거주지 유형 (공공임대주택, 단독주택, 판자촌, 벽돌집 등등)

  • 건축 연도

  • 가옥의 건면적

  • 기타 등등…

이렇게 많은 옵션들 가운데, 어떤 객체에 어떤 속성이 필요할지 어떻게 잘 선택할 수 있을까요? 이 질문의 답은 보통 여러분이 데이터를 가지고 어떤 작업을 할 계획인지에 달려 있습니다. 가옥을 건축물 연령에 따라 다른 색상으로 표현한 맵을 생산하고 싶다면, 객체에 대해 ‘건축 연도’ 속성을 선택하는 것이 적합할 것입니다. 아니면 그런 맵을 절대 사용할 일이 없을 거라고 확신한다면, 해당 정보를 빼는 편이 낫겠죠. 필요하지도 않은 정보를 수집하고 저장하는 것은, 그 정보를 조사하고 획득하는 데 필요한 비용 및 시간을 고려할 때, 좋지 않은 생각입니다. 회사, 동료 또는 정부로부터 벡터 데이터를 받는 경우가 매우 많기 때문에, 특정 속성을 요구할 수 없는 경우가 태반이라 우리는 받은 데이터의 한계 안에서 작업해야만 합니다.

4.3. 단일 심볼

어떤 속성 테이블 데이터도 사용하지 않은 채 객체에 심볼을 지정한다면 심볼을 단순하게 그릴 수밖에 없습니다. 예를 들면 포인트 객체의 경우 색상과 마커(marker) (원, 정사각형, 별 등등)를 설정할 수 있지만 그게 다입니다. GIS에 객체의 속성 테이블에 있는 객체 속성 가운데 하나를 바탕으로 객체를 그리라고 명령할 수는 없죠. 그러려면 등급(graduated), 연속(continuous) 또는 유일값(unique value) 심볼 가운데 하나를 사용해야 합니다. 이제부터 이 심볼들에 대해 자세히 설명하겠습니다.

GIS 응용 프로그램은 보통 그림 4.12 에 보이는 것과 같은 대화창(dialog box) 을 통해 레이어의 심볼을 설정할 수 있습니다. 이 대화창에서 심볼의 색상과 스타일을 선택할 수 있습니다. 레이어의 도형 유형에 따라 서로 다른 옵션이 나올 수도 있습니다. 예를 들어 포인트 레이어라면 마커 스타일 을 선택할 수 있겠죠. 라인 및 폴리곤 레이어의 경우 마커 스타일 옵션은 사라지고 그 대신 (그림 4.13 처럼) 자갈길은 주황색 점선(dashed orange), 소도로는 주황색 실선(solid orange) 같은 식으로 라인 스타일색상 을 선택할 수 있습니다. 폴리곤 레이어라면 채우기(fill) 스타일 및 색상을 설정할 수 있는 옵션도 나타납니다.

../../_images/single_symbol_point.png

그림 4.12 단순한 심볼을 사용하는 경우, 심볼 모양을 제어할 수 있는 어떤 속성도 사용하지 않은 채 객체를 그립니다. 이 그림은 포인트 객체용 대화창입니다.

../../_images/single_symbol_poly.png

그림 4.13 폴리라인 객체와 폴리곤 객체의 단순한 심볼을 정의할 때 볼 수 있는 옵션은 서로 다릅니다.

4.4. 등급 심볼

벡터 객체가 변화하는 숫자값을 가진 사물을 표현할 때가 있습니다. 등고선이 좋은 예죠. 각 등고선은 보통 해당 등고선이 표현하는 높이에 관한 정보를 담고 있는 ‘height’ 이라고 하는 속성값을 가지고 있습니다. 이 단원의 처음에서 모두 동일한 색상으로 그려진 등고선 그림을 보았습니다. 등고선에 색상을 넣으면 등고선이 의미하는 바를 이해하기 쉬워집니다. 예를 들면 저지대를 어떤 색상으로, 중지대를 다른 색상으로, 고지대를 또다른 색상으로 그릴 수 있겠죠.

../../_images/graduated_symbol_settings.png

그림 4.14 등고선의 표고 속성을 이용해서 등고선을 3개 범주(class)로 나누었습니다. 980m에서 1120m까지의 등고선은 갈색으로, 1120m에서 1240m까지는 녹색으로, 1240m에서 1500m까지는 보라색으로 그릴 것입니다.

../../_images/graduated_symbol_map.png

그림 4.15 등고선을 범주별 색상으로 설정한 지도입니다.

속성값의 개별 그룹들을 바탕으로 색상을 설정하는 작업을 QGIS에서는 등급 심볼이라 부릅니다. 그림 4.14그림 4.15 에서 그 과정을 보여주고 있습니다. 등급 심볼 이 가장 유용한 경우는 서로 다른 범위의 속성값을 가진 객체들이 어떤 차이가 있는지 분명히 보여주려 하는 경우입니다. GIS 응용 프로그램은 속성 데이터를 (예를 들면 표고를) 분석한 다음, 여러분이 요청한 범주 개수를 바탕으로 그룹들을 분류, 생성할 것입니다. 다음 table_graduated 는 그런 과정을 표현한 것입니다.

속성값

등급 및 색상

1

Class 1

2

Class 1

3

Class 1

4

Class 2

5

Class 2

6

Class 2

7

Class 3

8

Class 3

9

Class 3

등급 테이블: 등급 색상이 속성값의 범위를 여러분이 선택한 범주 개수대로 나눕니다. 각 등급은 서로 다른 색상으로 표현됩니다.

4.5. 연속 색상 심볼

등급 색상 심볼에 대한 앞 절에서 객체를 개별 그룹 또는 등급에 맞춰 그릴 수 있다는 사실을 배웠습니다. 때로는 객체를 어떤 색상에서 다른 색상으로 변화하는 색상 범위(color range) 에 맞춰 그리는 것이 유용한 경우가 있습니다. GIS 응용 프로그램은 객체가 가진 숫자 속성값을 (예를 들어 등고선 표고 또는 하천의 오염 수준을) 이용해서 어떤 색상을 사용할지 결정합니다. table_continuous 에서 어떻게 색상의 연속 범위를 속성값을 사용해서 정의할 수 있는지 볼 수 있습니다.

속성값

색상 (등급 또는 그룹 분류 없음)

1

2

3

4

5

6

7

8

9

연속 테이블: 연속 색상 심볼은 시작 색상(예를 들어 다음 그림과 같은 연한 주황색) 및 종단 색상(예를 들면 다음 그림과 같은 진갈색)을 이용해서 두 색상 사이에 있는 일련의 색조를 생성합니다.

앞 절에서 사용했던 등고선 예시를 재활용해서, 연속 색상 심볼이 맵 상에서 어떻게 정의되고 어떻게 보이는지 살펴봅시다. 이 과정은 그림 4.16 에서 볼 수 있는 것 같은 대화창을 사용해서 레이어 속성에 연속 색상을 설정하는 것으로 시작합니다.

../../_images/continuous_symbol_settings.png

그림 4.16 연속 색상 심볼 설정하기. 등고선 표고 속성을 사용해서 색상값을 결정합니다. 최소값과 최대값에 대한 색상을 정의하면, GIS 응용 프로그램이 표고를 바탕으로 객체들을 그리기 위한 색상 증감(gradient)을 생성할 것입니다.

색상 범위에서 최소값 및 최대값의 색상을 정의한 다음 객체를 그릴 색상은 해당 객체의 속성이 최대값과 최소값 사이 어디쯤에 있느냐에 따라 달라질 것입니다. 예를 들면 표고값이 1000m에서 시작해서 1400m에서 끝나는 등고선 객체들이 있다고 할 때, 값의 범위는 1000에서 1400까지입니다. 최소값의 색상을 주황색으로 설정하고 최대값의 색상을 검정색으로 설정했다고 하면 1400m에 가까운 값을 가진 등고선은 검정색에 가까운 색으로 그려질 것입니다. 한편 1000m에 가까운 값을 가진 등고선은 주황색에 가까운 색으로 그려지겠죠. (그림 4.17 를 참조하세요.)

../../_images/continuous_symbol_map.png

그림 4.17 연속 색상 심볼을 사용해서 그린 등고선 맵

4.6. 유일값 심볼

때로 객체의 속성이 숫자가 아니라 문자열(string) 인 경우가 있습니다. ‘문자열’ 이란 문자, 숫자, 그리고 기타 기호들의 집합을 뜻하는 컴퓨터 용어입니다. 문자열 속성은 사물을 이름으로 범주화하는 데 자주 쓰입니다. GIS 응용 프로그램은 유일한 문자열 또는 숫자 각각에 고유한 색상과 심볼을 적용할 수 있습니다. 도로 객체는 (‘street’, ‘secondary road’, ‘main road’ 등과 같은) 서로 다른 범주들을 가질 수 있는데, 각 범주는 GIS의 맵뷰에서 서로 다른 색상 및 심볼로 그려집니다. table_unique 가 그 예시입니다.

속성값

색상 범주 및 심볼

Arterial route

Main road

Secondary road

Street

유일값 테이블: 어떤 (예: 도로) 객체의 유일 속성값들은 각각 고유한 심볼을 가질 수 있습니다.

GIS 응용 프로그램 안에서 우리는 어떤 레이어에 대해 유일값 심볼을 사용하도록 선택하거나, 유일값 심볼을 사용하는 레이어를 열 수 있습니다. GIS가 속성 필드에 있는 서로 다른 모든 문자열 값들을 스캔한 다음 유일 문자열 또는 숫자들의 목록을 작성할 것입니다. 그러면 각 유일값에 색상 및 심볼을 할당할 수 있습니다. 그림 4.18 이 그 예시입니다.

../../_images/unique_symbol_settings.png

그림 4.18 도로 유형을 바탕으로 도로에 대한 유일값 심볼을 정의합니다.

GIS가 레이어를 그릴 때, 스크린에 레이어를 그리기 전에 각 객체의 속성을 읽을 것입니다. 속성 테이블에서 선택된 필드의 값을 바탕으로 한 어울리는 색상과 라인 스타일로 (그리고 폴리곤 객체의 경우 채우기 스타일로) 도로 라인을 그릴 것입니다. 그림 4.19 가 그 예시입니다.

../../_images/unique_symbol_map.png

그림 4.19 도로 유형별로 유일값을 이용해서 심볼화된 도로 벡터 레이어

4.7. 조심해야 할 점들

어떤 속성과 심볼을 사용해야 할지 결정하는 일에는 계획이 필수입니다. 지리공간(GeoSpatial) 데이터 수집을 시작하기 전에 어떤 속성이 필요한지 그리고 어떻게 심볼화할 것인지 먼저 알고 있어야 합니다. 첫 시도에서 제대로 된 계획이 없을 경우 다시 현장에 돌아가서 데이터를 재수집하기란 아주 힘들기 때문이죠. 또한 속성 데이터 수집의 목표는 여러분이 공간 정보를 분석하고 해석할 수 있게 하기 위해서라는 점을 기억하세요. 여러분이 답을 구하는 질문에 따라 어떤 데이터를 수집하느냐가 달라집니다. 심볼은 사람들이 여러분이 사용하는 색상과 심볼을 바탕으로 여러분의 속성 데이터를 눈으로 보고 이해하도록 하기 위한 시각 언어입니다. 때문에 여러분의 맵을 이해하기 쉽게 만들려면 맵을 어떻게 심볼화할 것인지에 대해 충분히 고민해야 할 것입니다.

4.8. 무엇을 배웠나요?

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

  • 벡터 객체는 속성(attribute) 을 가지고 있습니다.

  • 속성(attribute)은 객체의 속성(property)을 설명합니다.

  • 속성은 테이블 에 저장됩니다.

  • 테이블의 행을 레코드 라고 합니다.

  • 벡터 레이어는 한 객체마다 레코드 하나 라는 규칙을 따릅니다.

  • 테이블의 열을 필드(field) 라고 합니다.

  • 필드는 표고, 지붕 색깔 같은 객체의 속성(property) 을 나타냅니다.

  • 필드는 숫자, 문자열 (모든 텍스트) 그리고 날짜 정보를 담을 수 있습니다.

  • 객체의 속성(attribute) 데이터를 사용해서 객체를 어떻게 심볼화 할 것인지 결정할 수 있습니다.

  • 등급 색상 심볼은 데이터를 개별 범주로 그룹화합니다.

  • 연속 색상 심볼은 객체에 색상 범위 안의 색상을 객체 속성을 바탕으로 할당합니다.

  • 유일값 심볼은 선택한 속성 열에 있는 서로 다른 값 각각에 서로 다른 (색상 및 스타일의) 심볼을 설정합니다.

  • 벡터 레이어의 심볼을 결정하는 데 레이어 속성을 사용하지 않는 경우, 오직 단일 심볼 만으로 레이어를 그립니다.

4.9. 도전해봅시다!

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

  • 이전 강의에서 만들었던 표를 활용해서 각 객체 유형에 사용하고자 하는 심볼 유형을 위한 새 열을 추가한 다음 학생들에게 스스로 사용하고 싶은 심볼 유형을 식별해보도록 하십시오. (예시가 필요하다면 table_example_symbols 를 참조하세요.)

  • 다음과 같은 벡터 객체들에 대해 어떤 심볼 유형을 사용하고 싶은지 식별해보십시오:

    • 여러분의 학교 주변에서 채취한 토양 샘플들의 산성도(pH)를 보여주는 포인트들

    • 도시의 도로망을 보여주는 라인들

    • 가옥이 벽돌, 목재, 또는 ‘기타’ 재료들 가운데 어떤 것으로 지어졌는지를 보여주는 속성을 가진 가옥 폴리곤들

실재 객체

도형 유형

심볼 유형

국기 게양대

포인트

단일 심볼

축구장

폴리곤

단일 심볼

학교 내부 및 주변의 보행로

폴리라인

학생들에게 등교하기 전에 각 보행로를 사용하는 학생의 수를 세도록 한 다음 등급 심볼 을 이용해서 각 보행로의 사용도를 보여주게 하십시오.

수도꼭지가 있는 위치들

포인트

단일 심볼

교실들

폴리곤

교실에 있는 학생들의 학년을 바탕으로 한 유일값

울타리

폴리라인

학생들에게 학교를 둘러싼 울타리를 각 구역으로 나누고 각 구역의 울타리를 울타리 상태에 따라 1에서 9까지의 등급으로 평가하게 한 다음, 상태 속성을 범주화할 수 있는 등급 심볼 을 사용하도록 하십시오.

교실들

폴리곤

각 교실에 있는 학생들의 수를 센 다음 빨강에서 파랑으로 가는 색상 범위를 정의할 수 있는 연속 색상 심볼 을 사용하도록 하십시오.

테이블 예시 심볼: 각 객체에 대해 사용하고자 하는 객체 및 심볼 유형을 정의하는 테이블의 예시입니다.

4.10. 생각해볼 점

사용할 수 있는 컴퓨터가 없는데 서로 다른 심볼 유형들을 다루어보고 싶다면, 투명지와 1:50,000 지형도를 이용하면 됩니다. 예를 들어 지도 위에 투명지를 올려놓고 여러 색상의 마커를 사용하는 거죠. 900m(또는 다른 높이) 미만의 등고선을 모두 빨간색으로 칠하고 900m(또는 다른 높이) 이상의 모든 등고선을 녹색으로 칠해보는 겁니다. 다른 심볼 유형들을 같은 방법을 사용해서 어떻게 재현할 수 있는지 생각해낼 수 있나요?

4.11. 더 읽어볼 거리

웹사이트: https://en.wikipedia.org/wiki/Cartography

QGIS 사용자 지침서도 QGIS에서 어떻게 속성 데이터와 심볼을 작업하는지에 대한 보다 상세한 정보를 수록하고 있습니다.

4.12. 다음 단원은?

다음 단원에서는 데이터 수집(data capture) 에 대해 자세히 살펴볼 것입니다. 벡터 데이터와 속성에 대해 배운 내용들을 실제로 활용해서 새 데이터를 생성해볼 것입니다.