실습 3. 지오데이터베이스 파일의 구축과 조작

[1] 비어있는 지오데이터베이스 파일 생성

윈도우즈 시작 ~ 모든프로그램 ~ ArcGIS ~ ArcCatalog 10.3.1 구동

File ~ Connect to Folder 눌러 Chapter 3 폴더 선택 후 OK

Catalog Tree에서 chapter3에 우클릭하여 New ~ Folder 선택 후 MyExercise라는 이름의 폴더 생성

생성된 MyExercise 폴더를 우클릭하여 New ~ File Geodatabase 선택하여 새 지오데이터베이스 파일을 생성하고 이름을 CensusMap이라고 수정

[2] 지오데이터베이스 파일로 shapefile과 속성데이터 가져오기

공간데이터(Shapefile) 가져오기: CensusMap 우클릭하여 Import ~ Feature Class (Multiple) 선택 ~ 폴더열기 버튼 클릭 -> chapter3/map 폴더에서 시군구.shp와 전국백지도.shp 파일을 Ctrl 눌러 동시에 선택하고 Add 버튼 -> OK

속성데이터 가져오기: Catalog Tree에서 CensusMap.gdb 우클릭 ~ Import ~ Table(single) ~ Input Rows 폴더열기 눌러 chapter3/data/census.xlsx/sheet1$를 선택하고 Add 버튼 -> Output Location은 MyExercise/CensusMap.gdb로 원래 되어 있는지 확인 -> Output Table에 Census2005 입력 -> OK

가져온 정보 확인: CensusMap.gdb를 클릭한 뒤 오른쪽 패널에서 Contents 탭 누르기 -> 시군구 선택 후 Preview탭 클릭하여 공간데이터 확인 -> Preview 하단에서 Geography를 Table로 변경하여 속성테이블 확인

ArcCatalog 종료

[3] 속성테이블의 컬럼 삭제 및 생성

ArcMap 프로그램 구동 ~ File ~ New ~ Blank Map (빈지도첩) 생성 -> Add Data 버튼 클릭한 후 chapter3/MyExercise/CensusMap.gdb로 이동한 후 더블클릭 -> 전국백지도 선택 후 Add 선택

속성테이블에서 불필요한 필드 지우기: TOC에서 전국백지도 우클릭 ~ Open Attribute Table 클릭 -> ‘DO’ 필드 우클릭 후 Delete Field 선택 ~ Yes ~  유사한 방법으로 HDCD, EDO 필드도 삭제 -> 전국백지도 속성테이블을 닫는다

지도첩 저장: File ~ Save As ~ chapter3_성명.mxd로 저장 (작업 중 수시로 저장)

[4] 기본키(Primary Key) 생성

기본키를 이용하여 여러 속성테이블을 연결시킬 수 있음.

Add Data ~ chapter3/MyExercise/CensusMap.gdb에서 시군구 피쳐클래스와 census2005 테이블 추가 (경고 무시)

TOC의 시군구 우클릭 ~ Open Attribute Table 클릭 ~ Primary Key로서 SIGG_CODE 필드 확인

TOC 상태를 List By Source로 변경하면 census2005 속성테이블이 TOC에 나타나는데, census2005를 우클릭하여 Open

SIGG_CODE 생성: Table 상단의 Table Options ~ Add Field ~ Name은 SIGG_CODE, Type은 Text, Length는 5로 입력 -> OK (Table 가장 오른쪽에 생성 확인)

‘명칭’필드의 왼쪽 5자만을 추출하기: 추가된 SIGG_CODE 우클릭 ~ Field Calculator ~ Warning에서 Yes -> Type은 String 선택하고 아래 패널에 Left( [명칭], 5) 라고 입력 (Functions에서 Left() 클릭하고 Fields에서 명칭 클릭한 후 컴마(,) 입력하고 숫자 5 입력) ~ OK ~ 숫자 확인 후 테이블 창 닫기

[5] 테이블 결합(join)과 릴레이트(relate)

(1) 시군구 레이어와 census2005 속성테이블 결합하기

TOC에서 시군구 레이어 선택 후 우클릭 ~ Join and Relates ~ Join 선택

Join attributes from a table, 1. SIGG_CODE, 2. Census2005, 3. SIGG_CODE, Keep all records 선택 -> OK -> TOC에서 시군구 속성테이블 열어서 결합(Join) 되었음을 확인

(2) 릴레이트 (레코드 길이가 서로 다른 테이블을 결합해야 할 때는 릴레이트 이용)

시군구 레이어에서 census2005 속성자료 지우기: TOC에서 시군구 레이어 우클릭 ~ Join and Relates ~ Remove Joins ~ Remove all joins 선택 -> 시군구 레이어 속성테이블 열어 없어졌는지 확인

Catalog에서 MyExercise/CensusMap.gdb를 우클릭하여 Import ~ Table(Single) 선택 ~ Input Rows에 /chapter3/data/census.xlsx 파일 더블클릭하여 sheet2$ 선택후 Add -> Output Table에 relate_census로 입력 후 OK

TOC에서 시군구 레이어 우클릭 ~ Joins and Relates ~ Relate -> 1. SIGG_CODE, 2. relate_census 선택 후 OK -> 시군구 레이어의 속성테이블을 열어보면 변화가 없지만, Identify 클릭 후 원하는 지역을 클릭하면 정보창의 하위 트리에 related_census 정보가 나오는 것을 확인한다.

릴레이트 지우기: 시군구 레이어 우클릭 ~ Joins and Relates ~ Remove Relates ~ Remove All Relates

census2005로 다시 조인하기: 시군구 레이어 우클릭 ~ Join and Relates ~ Join -> 1. SIGG_CODE, 2. Census2005, 3. SIGG_CODE, Keep all records -> OK

[6] 필드 계산기 사용 및 기하학적 형상의 연산

(1) 레코드 값을 사용하여 속성값 생성하기 (외국인 비율 속성 생성)

시군구 레이어 속성테이블 열고 ~ Table Options ~ Add Field 메뉴 클릭 -> Name은 ‘외국인비율’, Type은 ‘float’로 변경 후 OK

생성된 ‘시군구.외국인비율’ 우클릭하여 Field Calculator 선택 -> [census2005.외국인]*100/[census2005.총인구]를 입력한 후 OK 버튼

계산이 잘 안되어 보이는 경우, Join을 해제하면 제대로 보인다.

(2) 공간 형상에 대한 기하학적 연산(면적, 중심점, 둘레 등)

시군구 레이어 속성테이블 ~ 옵션 ~ Add Field -> Name은 Area, Type은 Double -> OK -> 다시 Add Field 누르고 ‘인구밀도’, double 형으로 추가

Area 컬럼에 우클릭하여 Calculation Geometry 선택하고 Property는 Area로 한 뒤 OK

‘인구밀도’ 컬럼에 Field Calculator -> 총인구/(Area/1000000) 입력 -> OK

(이상한 값이 보일 때면 속성테이블 나가서 Remove Join 수행한 후 다시 속성테이블 열어봄)

[7] 데이터 선택 및 쿼리

대화형 선택: Selection ~ Interactive Selection Method ~ 네 가지 옵션을 사용하여 익히기

그래픽으로 선택: Customize ~ Toolbars ~ Draw 클릭 -> 메뉴에서 Rectangle 클릭하고 사각형 생성 -> Selection -> Select by Graphics 클릭하여, 사각형에 접하는 피쳐들이 선택됨을 확인

속성으로 선택: Selection ~ Select by Attributes 클릭 -> 필드 및 연산자를 이용하여 아래 창에 ‘시군구.주택보급률 > 100’ 입력 후 OK -> 선택 확인 (TOC 속성테이블을 열어서 좌하단의 Show selected records 눌러 주택보급률이 100 초과하는 것만 선택되었는지 확인)

위치정보로 선택(경부고속국도가 지나가는 시군구만을 선택): Add Data -> chapter3/map/고속도로.shp 추가 -> Selection ~ Select by Attributes -> Layer를 ‘고속도로’로 하고 “NAME”= ‘경부고속국도’ 라는 질문을 작성한 뒤 OK -> Selection ~ Select by Location -> Target layer에 시군구 체크하고 Use selected features 체크 -> OK (시군구 속성테이블에서 Show selected records를 선택한 후 총인구 Statistics를 보면, 30개의 시군구가 경부고속국도를 지나고 있으며 총인구는 756만명임을 확인할 수 있다.)

선택된 피쳐를 새로운 레이어로 만들기: 시군구 레이어를 우클릭하여 Data ~ Export Data 클릭 -> Export에 Selected features로, Output feature class에 chapter3/MyExercise/CensusMap.gdb 더블클릭하고 Name에는 ‘경부고속국도통과도시’로 입력 후 Save -> OK -> Do you want add the exported data to the map as a layer? 질문에 Yes 클릭 -> 저장된 결과물 확인

[8] 결과물 제출

위 결과물 중에서 의미있는 내용들을 레이아웃으로 만들고 pdf로 출력하여 3장 이상을 홈페이지 게시판에 올릴 것.

수고하셨습니다.