21
2010-Oct
ArcGIS Network Analyst 사용법 설명작성자: 김한국 IP ADRESS: *.162.197.13 조회 수: 55107
네트웍 분석관련 문의가 많아서 정리한 내용입니다.
GIS에서의 네트웍 분석은 물류관련 업무에 활용도가 많은 방법론이며,
실제 (주)GIS United에서 현대기아자동차(완성차 배달탁송 물류 합리화 및 물류거점 최적화 GIS 컨설팅, 2010년 4월) 물류합리화 분석과정에 활용된 방법입니다.
또한, 서울대학교병원 응급의료센터에서 의료공백 지역을 해결하기 위해 구급차 경로 최적화에 활용되고 있는 분석이기도 합니다.
상권분석 등에는 상권을 정의하는 방법(차량이동거리, Drive Time Area = Trade Area)으로도 응용되고 있습니다.
그럼 하나씩 설명을 드리겠습니다.
먼저 작업을 위해 아래 파일을 내려받고 작업 폴더에 압출을 풀어놓습니다.
위링크에 문제가 있으면 아래 링크 이용하세요.
위 자료는 국토부에서 2010년 2월에 공개한 도로자료를 가공하여 제작한 데이터입니다.
2010년도에 공개하였으나 기준 연도는 2007년도입니다.
즉, 2007년에 구축한 자료를 2010년도에 공개했다는 것이죠.
압축을 풀면 위와 같이 나타납니다.
위 3개의 데이터가 한 폴더에 존재하여야 네트웍 분석을 수행할 수 있습니다.
이제부터 위 자료를 기반으로 다양한 분석방법론을 설명드릴 것입니다.
위 자료는 편의상 “네트웍데이터”라 칭하겠습니다.
그럼 네트웍데이터를 살펴보도록 하겠습니다.
ArcCatalog에서 “네트웍분석용_2007년기준_ND”을 선택하고 Properties를 클릭합니다.
여러 개의 Tab이 나타나는데 그 중 Attributes를 선택합니다.
위 그림에서 보면 “도로길이_m”과 “소요시간_m”이 dataset으로 추가된 것을 알 수 있습니다.
제가 필요한 항목으로 판단하여 이 두 dataset을 생성하였습니다.
의미는...
모든 도로에 대해 “meter 단위의 도로 길이” 정보 ← “도로길이_m”
모든 도로에 대해 “설계된 최대속도로 차량이 이동하였을 때 걸리는 시간(Minite)” 정보 ← “소요시간_m”
입니다.
주의할 점은 “소요시간_m”의 정보입니다.
도로의 최대속도(고속도로의 경우 100Km/h 또는 110Km/h)를 기준으로 한 정보라는 것입니다.
서울 강남의 강남대로의 경우 설계된 최고 속도는 80Km/h입니다. 하지만, 현실적으로는 20Km/h 이하입니다. 그래서 각 도로의 실제 속도를 이용하여 분석하고자 한다면 조금 복잡한 데이터 핸들링 과정을 거쳐야 합니다. (여기서는 생략합니다.)
추가로 주유비와 톨게이트비를 입력하여 비용이라는 dataset을 추가할 수도 있으며, 이 정보를 활용하면 물류비용을 정확하게 계산하는 것이 가능합니다.
네트웍데이터에 대한 설명을 여기에서 마치고 본격적으로 분석 절차에 대해 말씀을 드리겠습니다.
ArcGIS에서 제공하는 네트워크 분석 방법은
경로찾기, 서비스영역설정하기, 출발지-도착지 경로매트릭스 설정하기 등이 있습니다.
대략 3~5가지 정도입니다.
ArcMap의 Network Analyst의 메뉴에서 보면 아래 그림과 같습니다.
하나씩 설명을 드리겠습니다.
작업준비
ArcMap에 “네트웍분석용_2007년기준_ND”을 추가합니다.
추가하면 아래와 같은 메세지 박스가 뜨는데 아니오를 클릭합니다. (예를 선택하여도 상관없습니다)
그러면 다음과 같이 나타납니다.
그리고 ArcMap의 프레임에 마우스 우측버튼을 누르면 Extention을 추가할 수 있는 팝업메뉴가 나타납니다. Network Analyst을 선택합니다.
위와 같이 나타나면 첫 번째 버튼을 클릭하면 아래와 같은 분석항목이 나타납니다.
그리고 두 번째 버튼(마우스를 가져다 놓으면 Show/Hide Network Analyst Windows)을 클릭하세요.
해당 창은 네트웍 분석시 필요한 Input 값을 설정하는 창입니다.
그러면 그림이 아래와 같이 나타납니다. 아무것도 없는 창이 바로 “Show/Hide Network Analyst Windows”입니다.
1. NewRoute
NewRoute는 경로를 탐색하는 기능입니다.
차량의 네비게이션으로 얘기하면 길 찾기 정도가 될 수 있습니다.
당연한 얘기지만... 해당 기능을 수행하려면 시작점과 끝점이 있어야 합니다.
NewRoute_Test.zip 파일이 제가 임시로 만들어 높은 시작점과 끝점 정보입니다.
내려받아서 압축을 풀고서 ArcMap에 올려주세요.
NewRoute_Origin.shp, NewRoute_Destination.shp가 있습니다.
그리고 NewRoute_Origin.shp에는 OriginName이라는 필드가 있으며 해당 필드에는 출발지의 정보가 입력되어 있습니다.
NewRoute_Destination.shp에는 DestName이라는 필드가 있으며 해당 필드에는 도착자의 정보가 입력되어 있습니다.
위와 같이 필드를 이용하여 구분하는 이유는 도착지와 출발지가 2개 이상일 때 구분하기 위함입니다.
이제 New Route를 클릭합니다.
아래와 같이 나타납니다.
Show/Hide Network Analyst Windows의 Stop항목을 선택하고 마우스 우측버튼을 눌러 Load Location... 을 클릭합니다.
먼저 출발지 정보를 입력하도록 하겠습니다.
아래의 입력창에서 주의하여 볼 항목이 3가지가 있습니다.
Load From: 출발지 정보가 입력된 파일을 선택합니다.
Location Analysis Properties의 Name: 출발지 정보를 구분할 수 있는 필드(위에서 설명하였습니다)
Location Position의 Use Geometry → Search Tolerance : 입력된 출발지가 정확히 도로 위에 있지 않았을 때 어느 정도의 범위에서 가까운 도로를 검색할지 입력하는 항목입니다.
아래 그림은 출발지의 위치와 도로가 정확히 일치하지 않고 약 450m의 오차가 있는 것을 보여주고 있습니다.
이때 Location Position의 Use Geometry → Search Tolerance : 을 400으로 입력하면 분석이 이뤄지지 않습니다. 그래서 Search Tolerance 값은 분석가가 데이터의 특징을 고려하여 결정하여야 합니다.
각 항목을 설정하였으면 Ok 버튼을 눌러서 출발지 정보를 입력합니다.
그러면 아래와 같이 나타납니다.
도착지 정보도 같은 방법으로 입력합니다.
결과는 아래 그림과 같습니다.
이제 New Route 분석의 마지막 과정입니다.
어떠한 방법으로 Route를 탐색할지 선택하는 과정입니다.
TOC창(레이어 관리창)에서 Route항목을 선택하고 마우스 우측버튼을 눌러 Properties... 를 클릭합니다.
Analysis Settings 탭으로 이동하여 원하는 항목을 선택합니다.
네트웍데이터에는 이미 “도로길이_m”과 “소요시간_m”이 계산되어 입력되었다는 얘기는 앞에서 하였습니다.
그래서 Impedance 항목에 이 두 개의 값이 나타나는 것입니다.
경로를 탐색할 때 “도로길이_m”을 이용하면 최단거리 경로 분석이 될 것이고...
“소요시간_m”을 이용하면 최단시간 경로 분석이 될 것입니다.
그렇다면 하나씩 수행하여 그 결과를 비교해 보겠습니다.
먼저 “도로길이_m”을 이용하겠습니다.
“도로길이_m”을 선택하고 “확인”을 누릅니다.
그리고 Network Analyst에서
버튼을 눌러 경로탐색을 시행합니다.
결과는 아래와 같습니다.
이제 “소요시간_m”을 이용하여 경로탐색을 해보겠습니다.
결과는 아래와 같습니다.
결과 값은 마우스 우측버튼을 눌러 내보내기 하면 shp 파일로 저장할 수 있습니다.
“도로길이_m”과 “소요시간_m”의 차이를 보다 직관적으로 보고자 두 결과를 동시에 지도에 올려보면 아래와 같습니다.
결과 Route의 테이블을 열어보면 아래와 같습니다.
출발지와 도착지의 정보(Location Analysis Properties의 Name정보)가 Name이라는 필드에 입력된 것을 알 수 있습니다.
이러한 방법을 조금만 응용하면 다양한 분석을 수행할 수 있습니다.
2. New Service Area
대부분의 분석 절차는 1. NewRoute과 같습니다. 그래서 반복되는 부분은 간략하게만 언급할 테니 1. NewRoute 부분을 참고하시기 바랍니다.
ArcMap을 초기화하고 “네트웍분석용_2007년기준_ND”을 추가합니다.
NewServicePoint.zip 파일을 내려받고 압축을 풀어 NewServicePoint.shp 파일을 업로드 합니다
Network Analyst에서 New Service Area를 클릭합니다.
아래와 같이 나타납니다.
Show/Hide Network Analyst Windows의 Facilities 항목을 선택하고 마우스 우측버튼을 눌러 Load Location... 을 클릭합니다.
각 항목을 설정하였으면 Ok 버튼을 눌러서 입력합니다.
이제 New Service Area 분석의 마지막 과정입니다.
어떠한 방법으로 Service Area를 정의할지 선택하는 과정입니다.
TOC창(레이어 관리창)에서 Service Area 항목을 선택하고 마우스 우측버튼을 눌러 Properties... 를 클릭합니다.
Impendance는 “소요시간_m”을 이용하도록 하겠습니다.
즉, 차량의 최대 속도로 이동 가능한 영역을 그리겠다는 의미입니다.
Dafault Breaks는 영역의 구분을 의미하는 것으로 여기서는 “10,20,30,60”을 입력하였습니다.
이 의미는 차량이동거리 10분, 20분, 30분, 60분 영역 4개를 그리겠다는 것입니다.
확인을 하여 빠져나옵니다.
그리고 Network Analyst에서
버튼을 눌러 분석을 시행합니다.
결과는 아래와 같습니다.
3. New Closest Facility
이 기능은 제가 정확하게 사용하지를 않아서 오늘 설명에서는 생략하겠습니다.
추후, 기능에 대한 파악이 이뤄지면 그때 정리하도록 하겠습니다.
4. New OD Cost Matrix
OD Cost Matrix는 2개 이상의 출발지와 2개 이상의 도착지가 존재할 때 비용(거리, 비용, 시간 등)이 최소화되는 경로를 산정하여 Matrix 형태로 구축하여 주는 기능입니다.
아래는 OD Cost Matrix의 간단한 표현입니다.
조금 복잡한 구조는 아래와 같습니다.
그림 두 장만으로 OD Cost Matrix를 이해하기는 쉽지 않을 테고요.
실제 분석되는 결과를 보시면 보다 이해가 빠를 것으로 생각합니다.
그럼 설명을 하나씩 드리겠습니다.
대부분의 분석 절차는 1. NewRoute과 같습니다. 그래서 반복되는 부분은 간략하게만 언급할 테니 1. NewRoute 부분을 참고하시기 바랍니다.
ArcMap을 초기화하고 “네트웍분석용_2007년기준_ND”을 추가합니다.
New OD Cost Matrix_data.zip 파일을 내려받고 압축을 풀어 출발지.shp와 도착지.shp 파일을 업로드 합니다.
Network Analyst에서 New OD Cost Matrix를 클릭하고
Show/Hide Network Analyst Windows를 엽니다.
아래와 같이 나타납니다.
Show/Hide Network Analyst Windows의 Facilities 항목을 보면 Origins와 Destinations가 보입니다.
이 항목들에 각각 “출발지.shp”와 “도착지.shp”를 설정하면 됩니다.
설정하는 방법은 다음과 같습니다.
Show/Hide Network Analyst Windows의 Origins 항목을 선택하고 마우스 우측버튼을 눌러 Load Location... 을 클릭하여 아래와 같이 설정하면 됩니다.
각 항목을 설정하였으면 Ok 버튼을 눌러서 입력합니다.
같은 방법으로 Destinations도 설정합니다. (시간이 좀 걸립니다.)
아래는 결과입니다.
이제 New OD Cost Matrix 분석의 마지막 과정입니다.
어떠한 방법으로 OD Cost Matrix를 정의할지 선택하는 과정입니다.
TOC창(레이어 관리창)에서 OD Cost Matrix 항목을 선택하고 마우스 우측버튼을 눌러 Properties... 를 클릭합니다.
Impendance는 “소요시간_m”을 이용하도록 하겠습니다.
확인을 하여 빠져나옵니다.
그리고 Network Analyst에서
버튼을 눌러 분석을 시행합니다.
결과는 아래와 같습니다.
결과를 보면 직선으로 표시되어 있어서 네트웍 반영이 안 됐나 의심스러울 수 있습니다.
esri.com 홈페이지에 친절히 설명이 되어 있습니다.
네트웍이 반영이 됐고 직관성과 편의상 직선으로 표시한 것뿐입니다.
테이블을 확인해보도록 하겠습니다.
모든 출발지에서 모든 도착지로 이동하는 모든 최적시간 경로(N ⅹ N)의 값이 OD Cost Matrix 값으로 산정되어 있습니다. 그리고 소요시간까지 모두 산정이 되어 있습니다.
위 테이블을 적당히 수정하면 다양한 물류 관련 분석이 완벽하게 가능합니다.
실제 위 프로젝트도 OD Cost Matrix를 기본자료로 하여 분석을 수행하였습니다.
먼저 유용한 정보를 주셔서 매우 감사합니다.
네트워크 분석을 실시하는 과정에 데이터 링크 오류가 발견되어 알려드립니다.
테스트용 압축파일을 다운로드하여 열어보니, 3개의 파일(NewRoute_Test.zip, NewServicePoint.zip, New OD Cost Matrix_data.zip) 모두가 동일하게 NewServicePoint.shp 파일이더군요. 아마도 다운로드 링크가 잘못 연결된 것으로 판단됩니다.
김한국님!
필히 확인하시어 설명서에서의 온전한 자료(NewRoute_Test.zip, New OD Cost Matrix_data.zip)를 다운받을 수 있도록 체크하여 주시면 대단히 감사하겠습니다. ^^
실습 중인데 데이터가 없어 진행이 안되고 있거든요. 꼭 부탁드립니다.
혹시라도 service area 분석하시다 저처럼 막히는 분 있으실까해서 제가 도움 받은 자료 공유합니다. service area가 이상하게 나오는 건 NA 시작하기 전 자료 준비상태 문제일 경우가 많은데, ESRI에도 어디에도 이에 대한 전반적인 정보가 별로 없더라구요 ㅠㅠ 폭풍 구글하다가 찾아낸 tutorial인데 알기 쉽게 잘 정리되어 있어서 업로드합니다~
항상 이 홈페이지에 감사드려요 :)
네트워크 데이터 링크가 깨져서 다시 걸어놨습니다.
NewRoute_Test.zip New OD Cost Matrix_data.zip 파일 두개가 다운로드가 안되는데 혹시 다시 올려주실수 있나요??
다시올려 주시면 정말 감사하겠습니다.
NewRoute_Test.zip 이 파일의 정상적인 다운로드가 되지 않습니다
다운로드된 파일을 열면 파일이 하나 나오는데
포인트가 하나만 있는 쉐이프네요
익스플로러와 크롬에서 다운로드 받아봤는데
둘다 안되는 것으로 보아 어딘가 문제가 생긴게 아닌가 싶고요
업로드 과정에서 잘못된건지도 모르겠네요