실습 8. 네트워크 분석

[1] 네트워크 분석을 위한 데이터 구축

데이터 준비: ArcMap 구동하여 chapter8\chapter8.mxd 불러오기 -> Customize ~ Extensions 메뉴에서 Network Analyst, Spatial Analyst, 3D Analyst 체크 -> road 레이어 우클릭 ~ Open Attributes Table ~ Add Field 실행하여 Name은 MINUTES 입력, Type은 Double 선택하고 OK -> 맨 오른쪽에 생성된 MINUTES(이동시간) 컬럼을 우클릭하여 Field Calculator 클릭 -> VB Script 클릭하고 Show Codeblock 체크한 후 Pre-Logic Script Code에 다음과 같이 입력.

Dim result

If [UP_MAXSPEE] > 0 Then

result = ([LENGTH]/1000)*(60/[UP_MAXSPEE])

else

result = ([LENGTH]/1000)*(60/[DOWN_MAXSP])

end if

-> 하단부 MINUTE= 아래에 result라고 입력 후 OK. 위 식은 최고속도 [UP_MAXSPEE]의 값이 0 이상이면 이 값으로 이동시간을 계산하고, 0이면 (일방통행인 경우) DOWN_MAXSP로 계산라라는 의미이다.

Network Dataset 구축: Catalog ~ Chapter8 ~ map ~ road.shp 우클릭하여 New Network Dataset 선택 -> road_ND 입력 후 다음 -> 회전가능하도록 Yes 클릭 후 다음 -> Connectivity 무시하고 다음 -> 고도(elevation) 무시하고 다음 -> Add 버튼 누르고 Name은 Length 입력, Usage Type은 Cost 선택, Units는 Meters 선택, Data Type은 Double 선택 후 OK ~ 다음 -> Travel Mode 무시하고 다음 -> Directions 설정할지를 묻는 팝업창에 Yes 클릭하고 Directions 버튼을 누른 다음 Network Directions Properties 창이 나타나면, Street Name Fields의 Name 탭 아래 빈공간을 클릭하여 나타나는 메뉴 중에서 ROAD_NAME을 선택한 후 확인 누르고 ~ 다음 ~ Finish -> The new network dataset has been created. Would you like to build it now? 질문에 Yes 클릭 -> Do you also want to add all feature classes that participate in ‘road_ND’ to the map? 질문에 Yes 클릭

[2] 최단거리 탐색

두 지점간의 최단거리 탐색: Customize ~ Toolbars ~ Network Analyst 클릭 -> Network Analyst 메뉴 중에서 New Route 선택하면 TOC에 Route 그룹이 생성됨 -> Network Analyst window 버튼 누름 -> Creat Network Location Tool 버튼을 누르고 도로 위에 아무 곳이나 두 군데 클릭 -> Solve 버튼 눌러 경로 구함 -> 자세한 경로를 보고싶다면 Directions 버튼을 클릭함. (만약 Stops나 Routes를 변경하고 싶다면 Select/Move Network Locations Tool 버튼을 눌러 가능. 또는 TOC 왼쪽에 생성된 Network Analyst 분석창의 Stops에서 순서 변경 가능. 키보드 Delete 키 누르면 삭제 가능) -> Chapter8_성명_1.mxd로 저장

효율적인 배송경로 탐색 (30개 보건소에 긴급의약품을 배달하기 위한 최적경로 탐색):  Catalog ~ Toolboxes ~ My Toolboxes 우클릭 ~ New ~ Toolbox 선택하여 새로 생성된 것의 이름을 NetworkModel 이라고 변경 -> NetworkModel 우클릭 ~ New ~ Model 선택하면 모델빌더 창이 생성됨 -> 비어있는 Model 창에 ArcToolbox ~ Network Analyst Tools ~ Analysis ~ Make Route Layer 도구를 끌어다 추가 -> Make Route Layer를 더블클릭하여 Input Analysis Network는 road_ND 선택, Output Layer Name은 Route 2 입력, Impedance Attribute는 Minutes 선택, Reorder Stops to Find Optimal Route 체크, Preserve Ordering of Stops는 PRESERVE_BOTH 선택하고 OK -> Selection ~ Select by Attribute를 실행하여 시설물 레이어에서 보건소를 검색하여 선택 (“SEC3” = ‘보건소’) -> 시설물 레이어 우클릭 ~ Data ~ Export Data 실행하고 chapter8 폴더에 result 폴더 생성하여 location.shp으로 입력하고 종류는 Shapefile로 하여 저장 -> 도구바의 Clear Selected Feature 버튼을 눌러 선택 해제 -> 생성된 location 레이어를 드래그하여 Model창에 끌어다 놓음 -> ArcToolbox ~ Network Analyst Tools ~ Analysis ~ Add Location 도구를 Model창에 추가 -> 연결선 버튼을 눌러 location과 Add Location 도구를 연결하고 input locations 선택 -> 연결선 버튼을 누르고 Make Route Layer의 결과물인 Route 2를 Add Locations에 연결하고 Input Network Analysis Layer 선택 -> Model창의 Auto Layout 버튼과 Full Extent 버튼을 눌러 보기좋게 정리 -> ArcToolbox ~ Network Analyst Tools ~ Analysis ~ Solve를 Model 창에 놓고, 마지막 결과물을 Solve에 연결하고 Input Network Analysis Layer 선택 -> Solve의 결과물 두 개 중에서 Route 2 (3)을 우클릭하여 Add To Display 선택 -> Model 창에서 Save 아이콘으로 저장하고 Run 아이콘 눌러 실행 -> Chapter8_성명_2.mxd로 저장

최근접 시설물 탐색 (응급환자가 발생하여 가장 가까운 병원을 탐색): Customize ~ Toolbars ~ Network Analyst 선택하여 생성된 툴바에서 New Closest Facility 선택 -> TOC에서 시설물 레이어 우클릭 ~ Open Attributes Table ~ Select by Attribute 메뉴를 이용하여 “SEC2” = ‘병의원’ 으로 검색 (87개의 병의원 선택되었음을 확인) -> TOC 왼쪽에 있는 Network Analyst 창(없다면, Network Analyst 툴바에서 Network Analyst window 아이콘 클릭) 아래에 있는 Facilities 우클릭 ~ Load Location 클릭 -> Sort Field는 FID로 하고, Search Tolerance는 1,000m로 입력 -> Facilities 바로 아래에 있는 Incidents를 클릭하고 Network Analyst 툴바에서 Create Network Location Tool 아이콘을 클릭하여 지도에서 사고 발생지점의 위치로서 도로 위의 임의지점을 클릭 (도로가 아닌곳을 클릭하면 에러가 남) -> TOC 왼쪽에 있는 Network Analyst의 Properties 아이콘을 클릭하고 Analysis Settings 탭에서 Impedance는 Minutes로, Default Cutoff Value는 30(분)으로 입력, Travel from incident to Facility 선택 후 확인버튼 누름 -> Network Analyst 툴바에서 Solve 버튼을 누른 후 생성된 Routes (TOC 옆)를 선택하여 Newtork Analyst 툴바에서 Direction 아이콘을 눌러 상세경로를 살펴 본다 -> Chapter8_성명_3.mxd로 저장

[3] 서비스 권역 탐색

소방서 서비스 권역과 서비스 네트워크 탐색: Network Analyst 툴바에서 New Service Area 선택 -> 시설물 레이어 우클릭 ~ Open Attributes Table ~ Select by Attributes 선택하여 “SEC3” = ‘소방파출소/119안전센터’ 라고 검색 (6개가 찾아짐 확인) -> TOC 왼쪽의 Network Analyst 창에서 Facilities 우클릭 ~ Load Locations 실행 -> Load from은 시설물 선택, Sort Field는 FID 선택, Search Tolerance는 1000m 입력 후 OK -> Network Analyst 창의 Service Area Properties 아이콘 누른 후 Analysis Settings 탭에서 Impedance는 Minutes 선택, Default Breaks는 5로 입력 -> Polygon Generation 탭에서 Multiple Facilities Options에서 Merge by break value 선택하고 Overlap Type은 Disks 선택 후 확인 -> Network Analyst 툴바에서 Solve 아이콘 클릭 -> 소방서에서 5분 이내에 출동할 수 있는 서비스 권역이 추출되었음을 확인 -> 10분 이내에 출동할 수 있는 서비스 권역도 구해보자 -> Chapter8_성명_4.mxd로 저장

O-D 비용 행렬 분석 (다수의 출발지로부터 다수의 목적지까지 최소비용경로 추정하는 방법 – 여기서는 학교 주변 범죄 발생 시 어느 경찰서가 담당해야 하는지를 실습): Network Analyst 툴바에서 New OD Cost Matrix 선택 -> 시설물 레이어 속성테이블에서 “SEC2” = ‘초/중/고등학교’입력하여 검색 ->  Network Analyst 창의 Origins 우클릭 ~ Load Locations 실행 -> Load From은 시설물 선택, Sort Field는 FID 선택, Search Tolerance는 1,000m 입력하고 OK -> 이번에는 시설물 레이어에서 “SEC2” = ‘경찰’ 로 검색하여 경찰서를 찾고 Destinations 우클릭 ~ Load Locations 실행 -> Load From은 시설물 선택, Sort Field는 FID 선택, Search Tolerance는 1,000m 입력하고 OK -> Network Analyst 창에서 OD Cost Matrix Properties 아이콘 누르고 Default Cutoff Value를 30 분으로 입력 -> Network Analyst 툴바에서 Solve 아이콘 클릭 -> 생성된 Lines의 속성 테이블을 열어서 출발지-목적지의 도달시간이 계산되어 있음을 확인 -> TOC의 Lines 레이어에서 우클릭 ~ Properties ~ Symbology 탭에서 Categories ~ Unique values 선택, Value Field는 DestinationRank 선택, Add Values 클릭하여 1을 선택하고 all other values의 체크를 해제하여　DestinationRank가 1인 라인만 지도화 한다 -> 지도를 확대해 보면 각 학교는 이동시간이 가장 최소인 각 경찰서로 배분되어 있음을 확인 -> Chapter8_성명_5.mxd로 저장

[4] 결과물 제출

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