5. 데이터 수집
목적 |
벡터와 속성 데이터를 생성하고 편집하는 방법을 배웁니다. |
|
키워드 |
편집, 데이터 수집(data capture), 헤드업(heads-up), 테이블, 데이터베이스 |
5.1. 개요
이전 두 단원에서 벡터 데이터에 대해 알아보았습니다. 벡터 데이터에는 두 가지 중요한 개념, 즉 도형(geometry) 과 속성(attribute) 이 있다는 사실을 배웠습니다. 벡터 객체의 도형은 객체의 형태(shape) 와 위치 를 표현하는 반면, 벡터 객체의 속성(attribute) 은 객체의 속성(property) (색상, 크기, 나이 등등)을 표현합니다.
이 단원에서 우리는 벡터 데이터를 –– 벡터 객체의 도형과 속성 둘 다를 –– 생성하고 편집하는 과정을 자세히 살펴볼 것입니다.
5.2. GIS 디지털 데이터는 어떻게 저장될까요?
워드프로세서, 스프레드시트, 그리고 그래픽 소프트웨어 패키지 모두 디지털 데이터를 생성하고 편집할 수 있는 프로그램들입니다. 각 응용 프로그램은 데이터를 그 유형에 따라 특정 파일 포맷으로 저장합니다. 예를 들면 그래픽 프로그램은 여러분이 그린 그림을 .jpg
JPEG 이미지로 저장하고, 워드프로세서는 여러분의 문서를 .odt
오픈도큐먼트 또는 .doc
워드 문서로 저장할 것입니다.
이런 다른 응용 프로그램들과 마찬가지로, GIS 응용 프로그램도 컴퓨터 하드디스크 상에 데이터를 파일로 저장할 수 있습니다. GIS 데이터 용 파일 포맷은 여러 가지가 있지만 가장 공통적인 포맷은 아마도 ‘shapefile’ 일 겁니다. 포맷 이름이 조금 이상한데, 왜냐하면 shapefile(단수)이라고 부르기는 하지만 사실 함께 디지털 벡터 데이터를 저장하는 최소 3개의 서로 다른 파일로 이루어져 있기 때문입니다. table_shapefile
의 설명을 참조하세요.
확장자 |
설명 |
---|---|
|
이 파일은 벡터 객체의 도형을 저장합니다. |
|
이 파일은 벡터 객체의 속성(attribute)을 저장합니다. |
|
이 파일은 GIS 응용 프로그램이 객체를 더 빨리 찾을 수 있게 해주는 인덱스입니다. |
표 shapefile 1: 함께 ‘shapefile’ 을 구성하는 기본 파일들
컴퓨터 하드디스크 상에서 shapefile을 구성하는 파일들을 살펴볼 때면, 그림 5.5 같은 화면을 보게 될 겁니다. shapefile로 저장된 벡터 데이터를 다른 사람과 공유하고 싶은 경우, 해당 레이어에 대한 모든 파일을 전달해야 합니다. 즉 그림 5.5 에 보이는 수목 레이어의 경우 trees.shp
, trees.shx
, trees.dbf
, trees.prj
및 trees.qml
파일들을 전달해야 하겠죠.
또 여러 GIS 응용 프로그램들이 데이터베이스 안에 디지털 데이터를 저장할 수 있습니다. 일반적으로 데이터베이스에 GIS 데이터를 저장하는 것이 올바른 해법입니다. 데이터베이스는 대용량 데이터를 효율적으로 저장할 수 있고 GIS 응용 프로그램에 데이터를 빠른 속도로 제공할 수 있기 때문입니다. 데이터베이스를 이용하면 많은 사람들이 동시에 동일한 벡터 데이터 레이어를 작업할 수도 있습니다. 데이터베이스가 GIS 데이터를 저장하도록 설정하는 것은 shapefile을 이용하는 것보다 복잡한 작업이기 때문에, 이 단원에서는 shapefile을 생성하고 편집하는 내용에 집중할 것입니다.
5.3. 시작하기 전에 계획하기
(shapefile로 저장될) 새 벡터 레이어를 생성하기 전에 해당 레이어의 도형이 (포인트, 폴리라인, 폴리곤 가운데) 어떤 것이 될지 알아야 합니다. 또 해당 레이어의 속성이 어떤 것이 될지도 알아야 합니다. 몇몇 예제를 보면 어떻게 해야 할지 감이 잡힐 겁니다.
5.3.1. 예제 1: 관광 지도 생성하기
여러분이 살고 있는 지역에 대한 멋진 관광 지도를 만들려 한다고 상상해보세요. 여러분이 생각하는 최종 지도는 관광객들이 관심을 가질 만한 장소들을 마커로 표시한 1:50,000 축척의 지형도입니다. 먼저 도형에 관해 생각해봅시다. 우리는 포인트, 폴리라인, 또는 폴리곤 객체를 사용해서 벡터 레이어를 표현할 수 있다는 것을 알고 있습니다. 어떤 도형이 관광 지도에 가장 잘 어울릴까요? 전망대, 기념비, 전쟁터 등등과 같은 특정한 위치를 표시하려면 포인트를 사용하면 됩니다. 등산로를 따라 경치를 즐길 수 있는 경로처럼 관광객에게 어떤 경로를 소개하고 싶다면 폴리라인을 사용해야 하겠죠. 자연 보호구역 또는 민속촌 같은, 관광객을 끌어들일 수 있는 어떤 지역 전체를 표시하려면 폴리곤을 선택하면 될 겁니다.
이제 알겠지만, 어떤 도형 유형이 필요한지 아는 것이 항상 쉬운 일은 아닙니다. 이 문제에 대한 공통적인 접근법 가운데 하나는 필요한 도형 유형 각각에 대해 레이어 하나씩을 만들어보는 방법입니다. 즉, 예를 들어 남아프리카 공화국 측량 및 지적 최고 관리국(Chief Directorate: Surveys and Mapping)이 제공하는 디지털 데이터를 보면 하천 유역(폴리곤) 및 하천(폴리라인) 레이어가 있습니다. 하천 유역(폴리곤)은 넓은 강줄기(river stretch)를 표현하며, 하천(폴리라인)은 좁은 강줄기를 표현합니다. 여러분이 세 가지 도형 유형을 모두 써서 만든 관광 지도가 어떻게 보일지, 그림 5.6 을 보면 알 수 있습니다.
5.3.2. 예제 2: 하천을 따라 측정한 오염 수준 지도 생성하기
강물 흐름에 따라 오염 수준을 측정하고 싶다면 일반적으로 배를 타고 강을 따라 흘러가거나 강둑을 따라 걷거나 하겠죠. 일정 간격마다 멈춰서 용존 산소량(Dissolved Oxygen) 수준, 대장균류(Coliform Bacteria) 개수, 혼탁도(turbidity) 수준, 산성도(pH) 같은 다양한 수치를 측정할 겁니다. 또 측정 위치를 표시한 지도를 만들 거나 GPS 수신기를 통해 위치 정보를 수집해야 할 겁니다.
GIS 응용 프로그램에 이렇게 현장에서 수집한 데이터를 저장하려면 아마 포인트 도형을 가진 GIS 레이어를 생성하게 되겠죠. 이 경우 각각 매우 특정한 위치에서 강물의 상태를 나타내는 샘플들을 수집했기 때문에 자연스럽게 포인트 도형을 사용하게 되는 것입니다.
속성의 경우, 샘플을 채취한 위치의 상태를 설명하는 각 수치마다 필드(field) 1개가 필요할 겁니다. 즉 table_river_attributes
처럼 보이는 속성 테이블(attribute table)을 만들게 된다는 뜻이죠.
샘플 번호 |
pH |
DO |
CB |
혼탁도 |
수집자 |
날짜 |
---|---|---|---|---|---|---|
1 |
7 |
6 |
O |
하 |
신하얀 |
2009년 12월 1일 |
2 |
6.8 |
5 |
X |
중 |
이민파 |
2009년 12월 1일 |
3 |
6.9 |
6 |
X |
상 |
신상희 |
2009년 12월 1일 |
테이블 하천 속성 1: 벡터 레이어를 생성하기 전에 이런 표를 그려보면 어떤 속성 필드(열)들이 필요한지 결정할 수 있습니다. 속성 테이블에 (샘플을 채취한 위치를 표시하는) 도형이 없다는 점을 기억하세요 –– GIS 응용 프로그램은 도형과 속성을 따로 저장합니다!
5.4. 비어 있는 shapefile 생성하기
GIS로 어떤 객체들을 수집할 것인지 계획을 세웠다면 그리고 각 객체가 가져야 할 도형 유형과 속성들을 결정했다면, 그 다음 단계로 넘어갈 수 있습니다. 바로 비어 있는 shapefile을 생성하는 거죠.
이 과정은 보통 여러분의 GIS 응용 프로그램에 있는 ‘새 벡터 레이어’ 메뉴를 선택한 다음 도형 유형을 선택하는 것으로 시작합니다. (그림 5.7 을 참조하세요.) 이전 단원에서 설명한 대로, 포인트, 폴리라인, 폴리곤 중에서 한 가지 도형을 선택한다는 뜻입니다.
다음으로 속성 테이블에 필드를 추가할 것입니다. 일반적으로 짧고 공백이 없으며 해당 필드에 어떤 유형의 정보를 저장할 것인지 알려 주는 필드명(field name)을 붙입니다. 예를 들자면 ‘pH’, ‘RoofColour’, ‘RoadType’ 등과 같은 필드명이 되겠죠. 각 필드를 위한 이름을 결정하는 동시에, 해당 필드에 어떤 정보를 저장할지에 대해서도 결정해야 합니다. 예를 들어 저장할 정보가 숫자인가요? 단어 또는 문장? 아니면 날짜인가요?
컴퓨터 프로그램은 단어 또는 문장으로 이루어진 정보를 보통 ‘문자열(string)’ 이라고 하기 때문에, 도로명이나 하천의 이름 같은 내용을 저장해야 한다면 필드 유형으로 ‘문자열’ 을 선택해야 합니다.
shapefile 포맷을 사용한다면 숫자형 필드 정보를 정수(integer) 또는 십진수(floating point)로 저장할 수 있습니다 –– 즉 수집할 숫자형 데이터가 소수점을 가지게 될지 아닐지, 수집하기 전에 생각해 놓아야 한다는 뜻입니다.
shapefile을 생성하기 위한 마지막 단계는 (그림 5.8 에 보이는 바와 같이) 컴퓨터 하드 드라이브 상에 shapefile이 생성될 위치를 결정하고 파일명을 부여하는 것입니다. 이번에도 마찬가지로 shapefile에 짧고 의미 있는 이름을 부여하는 편이 좋습니다. ‘rivers’, ‘watersamples’ 등등이 좋은 예입니다.
이 과정을 한번 다시 훑어봅시다. shapefile을 생성하려면 먼저 shapefile이 어떤 도형을 담게 될지를 결정한 다음 속성 테이블에 하나 이상의 필드를 생성하고, 마지막으로 하드 디스크에 shapefile을 이해하기 쉬운 이름으로 저장합니다. 하나, 둘, 셋처럼 쉽네요!
5.5. shapefile에 데이터 추가하기
지금까지 비어 있는 shapefile을 생성해봤습니다. 이제 GIS 응용 프로그램의 ‘편집 작업 활성화’ 메뉴 옵션 또는 툴바 아이콘을 통해 shapefile 내 편집 작업을 활성화시켜야 합니다. shapefile이 담고 있는 데이터를 실수로 변경하거나 삭제하는 일을 막기 위해 shapefile 편집 작업은 기본적으로 비활성화돼 있기 때문에, 활성화시키고 나서 데이터를 추가해야 합니다. shapefile에 추가하는 레코드마다 다음 두 단계를 거쳐야 합니다:
도형 캡처하기
속성 입력하기
도형 캡처 과정은 포인트, 폴라라인 그리고 폴리곤마다 다릅니다.
포인트를 캡처 하려면, 먼저 맵 이동(pan) 및 확대/축소(zoom) 도구를 사용해서 데이터를 기록하려고 하는 정확한 지역으로 가야 합니다. 그리고 포인트 캡처 도구를 활성화시켜야 합니다. 그러고 나면, 맵뷰 안에서 새 포인트 도형 이 나타나길 원하는 위치를 왼쪽 마우스 버튼 으로 클릭하면 됩니다. 맵을 클릭하면 창이 하나 뜨는데, 이 창에서 해당 포인트에 대한 모든 속성 데이터 를 입력하면 됩니다. (그림 5.9 을 참조하세요.) 입력 필드에 어떤 데이터를 입력해야 할지 확신이 서지 않을 경우 보통 그냥 비워두면 되지만, 너무 많은 필드를 비워둘 경우 여러분의 데이터로 유용한 맵을 만들기 어려울 것이라는 점을 기억해야 합니다!
폴리라인을 캡처 하는 과정은 포인트의 경우와 비슷합니다. 먼저 맵 뷰에서 이동 및 확대/축소 도구를 사용해서 정확한 지역으로 맵을 이동시켜야 한다는 점에서 말이죠. 새로 캡처할 벡터 폴리라인 객체가 적절한 축척으로 보일 때까지 충분히 확대해야 합니다. (축척 문제에 대해 더 자세히 설명하고 있는 벡터 데이터 단원을 참조하세요.) 준비가 됐다면 툴바에 있는 폴리라인 캡처 아이콘을 클릭한 다음 맵을 클릭하면서 라인을 그리세요. 맨 처음 클릭을 하면 여러분이 마우스 커서를 움직이는 대로 따라오는, 마치 고무줄처럼 늘어나고 줄어드는 라인이 보일 겁니다. 왼쪽 마우스 버튼 을 클릭할 때마다 맵에 새 꼭짓점이 추가될 겁니다. 그림 5.10 이 이 과정을 보여주고 있습니다.
라인을 그리는 작업이 끝났다면, 오른쪽 마우스 버튼 을 눌러 GIS 응용 프로그램에 편집 작업이 끝났다고 알려주세요. 그러면 포인트 객체를 캡처하는 과정과 동일하게, 새 폴리라인 객체에 대한 속성 데이터를 입력하는 창이 뜰 것입니다.
폴리곤을 캡처 하는 과정은 폴리라인을 캡처하는 과정과 거의 똑같습니다. 툴바에서 폴리곤 캡처 도구를 사용해야 한다는 점이 다릅니다. 그리고 스크린에서 도형을 그릴 때 GIS 응용 프로그램이 언제나 닫힌 면을 생성한다는 점도요.
첫 객체를 생성한 후 새로운 객체를 추가하려면 그냥 포인트, 폴리라인 또는 폴리곤 캡처 도구를 활성화시키고 맵을 클릭한 다음 다음 객체를 그려나가면 됩니다.
더 이상 추가할 객체가 없다면 항상 ‘편집 작업 활성화’ 아이콘을 클릭해서 편집 모드를 끄도록 하십시오. 그러면 GIS 응용 프로그램이 하드 디스크에 새로 생성된 레이어를 저장할 것입니다.
5.6. 헤드업 디지타이즈 작업
여기까지의 단계들을 따라왔다면 이미 알아챘겠지만, 판단의 기준으로 사용할 수 있는 다른 객체가 없다면 객체를 공간적으로 정확하게 그리는 일은 꽤 힘듭니다. 이 문제에 대한 흔한 해결 방법 가운데 하나는 (항공 사진 또는 위성 영상 같은) 래스터 레이어를 배경 레이어로 사용하는 것입니다. 그러면 이 레이어를 참조 맵으로 사용하거나, 래스터 레이어를 가시화한 경우 래스터 레이어의 객체를 벡터 레이어로 따라 그릴 수도 있습니다. 이 과정을 ‘헤드업 디지타이즈 작업(heads-up digitising)’ 이라 하며, 그림 5.11 에 잘 나와 있습니다.
5.7. 디지타이즈 테이블을 사용하는 디지타이즈 작업
벡터 데이터를 캡처하는 또다른 방법은 디지타이즈 테이블을 사용하는 것입니다. GIS 전문가가 아니라면 흔히 쓰이는 방법은 아니며, 비싼 장비를 필요로 합니다. 디지타이즈 테이블을 이용하는 과정은 ① 테이블 위에 종이 지도를 놓고 ② 클립을 사용해서 종이 지도를 고정한 다음 ③ ‘퍽(puck)’ 이라는 특수 장비를 사용해서 지도의 객체를 따라 그립니다. 퍽에 달린 작은 십자선을 이용해서 라인 및 포인트가 정확하게 그려지는지 확인합니다. 퍽은 컴퓨터에 연결되어 있어 퍽을 통해 캡처되는 각 객체는 컴퓨터 메모리에 저장됩니다. 퍽이 어떻게 생겼는지 궁금하다면 그림 5.12 을 보세요.
5.8. 객체를 디지타이즈했다면…
객체를 디지타이즈했다면, 이전 단원에서 배운 기술을 이용해서 레이어의 심볼을 설정할 수 있습니다. 적절한 심볼을 선택하면 맵을 살펴볼 때 캡처한 데이터를 더 잘 이해할 수 있을 겁니다.
5.9. 공통적으로 조심해야 할 문제들/사항들
항공 사진 또는 위성 영상 같은 배경 래스터 레이어를 사용해서 디지타이즈 작업을 하는 경우, 래스터 레이어가 제대로 지리참조(georeference)되었느냐가 매우 중요합니다. 제대로 지리참조된 레이어는 GIS 응용 프로그램의 내부 지구 모델을 기반으로 맵 뷰 안에 정확한 위치로 표시됩니다. 그림 5.13 는 제대로 지리참조되지 않은 이미지를 보여주고 있습니다.
또 여러분이 생성한 벡터 객체를 활용할 수 있으려면 캡처 작업 시 적절한 축척으로 확대/축소해야 한다는 점을 기억하십시오. 벡터 도형에 대한 이전 단원에서 배웠듯이, 여러분이 나중에 1:50,000 축척에서 사용하려는 데이터를 1:1,000,000 축척으로 축소한 상태에서 데이터를 디지타이즈하는 것은 아주 멍청한 짓입니다.
5.10. 무엇을 배웠나요?
이제 이번 단원에서 배운 내용을 정리해볼까요:
디지타이즈 작업 은 객체의 도형 및 속성 에 대한 지식을 컴퓨터 디스크에 저장되는 디지털 포맷 으로 캡처하는 과정입니다.
GIS 데이터를 데이터베이스 에 또는 파일 로 저장할 수 있습니다.
흔히 사용되는 파일 포맷 가운데 하나는 shapefile 인데, 실제로는 3개 이상의 (
.shp
,.dbf
및.shx
) 파일들의 그룹입니다.새 벡터 레이어를 생성하기 전에 먼저 해당 레이어가 담게 될 도형 유형과 속성 필드 모두를 계획해 두어야 합니다.
도형 유형은 포인트, 폴리라인 또는 폴리곤 가운데 하나가 될 수 있습니다.
속성은 정수(integer) (범자연수), 부동소수점(floating point) (십진수), 문자열(string) (단어) 또는 날짜(date) 가운데 하나가 될 수 있습니다.
디지타이즈 작업 과정은 맵 뷰에서 도형 그리기 와 그 다음 속성 입력으로 이루어집니다. 각 객체마다 이 과정을 반복합니다.
디지타이즈 도중 그 배경에 래스터 이미지를 이용해서 방향정위(方向定位, orientation)를 제공해주기 위해 헤드업 디지타이즈 작업 이 자주 쓰입니다.
GIS 전문가는 때로 종이 지도에서 정보를 수집하기 위해 디지타이즈 테이블 을 사용하곤 합니다.
5.11. 도전해봅시다!
강사와 학생들이 함께 시도해볼 만한 몇 가지 아이디어가 있습니다:
여러분 생각에 수집해볼 만한, 학교 안 그리고 주변에 있는 객체들의 목록을 작성해보십시오. 예를 들어 학교 담장, 화재 시 대피 위치, 각 교실의 배치 등등 말이죠. 서로 다른 도형 유형들을 섞어보십시오. 이제 학생들을 몇몇 그룹으로 나누어 각 그룹에게 수집할 객체들을 몇 개씩 할당하십시오. 각 그룹에게 수집해온 레이어를 좀 더 이해하기 쉽도록 심볼화해보라고 하십시오. 이제 모든 그룹의 레이어를 합쳐 학교와 그 주변의 멋진 지도를 만들어보세요!
여러분이 살고 있는 지역에서 하천을 찾아 그 길이를 따라 수질 샘플을 채취하십시오. GPS를 사용하거나 지형도에 표시해서 각 샘플을 채취한 위치를 자세히 기록하십시오. 각 샘플에 대해 산성도, 용존 산소량 등과 같은 수치를 측정하십시오. GIS 응용 프로그램으로 데이터를 입력한 다음 어울리는 심볼을 가진 샘플을 보여주는 맵을 만들어보세요. 우려되는 지역을 식별할 수 있나요? 그런 지역을 식별하는 데 GIS 응용 프로그램이 도움이 되었습니까?
5.12. 생각해볼 점
사용할 수 있는 컴퓨터가 없는 경우, 투명지와 공책을 이용해서 동일한 과정을 따라해볼 수 있습니다. 항공 사진, 정사영상, 또는 위성 영상을 인쇄해서 배경 레이어로 쓰십시오. 공책에 열들을 그린 다음 열 제목란에 여러분이 정보를 저장하려 하는 각 속성 필드의 이름을 적으세요. 이제 투명지에 객체의 도형을 따라 그린 다음, 각 객체를 식별할 수 있도록 각 객체 옆에 숫자를 차례대로 쓰십시오. 이제 공책에 있는 표의 첫 번째 열에 같은 숫자를 적고 기록하려 하는 모든 추가적인 정보를 적어넣으세요.
5.13. 더 읽어볼 거리
QGIS 사용자 지침서도 QGIS에서 어떻게 벡터 데이터 디지타이즈 작업 을 하는지에 대한 보다 상세한 정보를 수록하고 있습니다.
5.14. 다음 단원은?
다음 단원에서는 래스터 데이터 가 무엇인지 그리고 GIS에서 이미지 데이터를 어떻게 사용할 수 있는지에 대해 더 자세히 살펴볼 것입니다.