GIS

모델빌더(ModelBuilder)를 이용한 툴(Tool) 생성하기 (1)

유병혁 2013. 5. 27. 02:38

본 글에서는 ArcGIS 10.1 버전을 기준으로 모델빌더(ModelBuilder)를 이용하여 툴(Tool)을 생성하는 방법을 학습해 보도록 하겠습니다.

본 글의 내용은 Esri 공식 홈페이지에서 제공하는 웹 헬프문서를 참고하여 한글로 재구성하였습니다.

 

A quick tour of creating tools with ModelBuilder
http://resources.arcgis.com/en/help/main/10.1/index.html#/A_quick_tour_of_creating_tools_with_ModelBuilder/00150000001t000000/

 

먼저 아래와 같이 예제로 제작된 모델이 하나 있습니다.

StudyArea라는 폴리곤을 Soils_Clip이라는 폴리곤으로 자르고(Clip), STATUS라는 필드를 하나 추가(Add Field)한 후,

추가된 필드에 1이라는 값을 입력(Calculate Field)입력하는 내용인데요, Soils_Clip을 변경하면 동일작업을 반복할 수 있겠죠?!

 

매번 해당 모델빌더를 실행해서 레이어를 변경할 수도 있겠지만, 그보다는 이 기능들을 하나의 툴 다이얼로그

박스(tool dialog box)로 만들어서 레이어 선택을 ArcGIS에 등록된 리스트들 중에서 클릭해서 실행할 수 있다면 더 편할 겁니다.

하지만 해당 모델을 클릭하면 아래와 같이 매개변수가 없다(This tool has no parameters)는 메시지가 떠서 레이어는 선택할 수가 없습니다.

 

또 하나의 문제는 만들어진 모델에 다른 툴(Identify)과 연결해서 확장하려고 하면, 아래와 같이 연결할 수가 없는 문제입니다.

왜냐하면 기존에 만들어진 모델(Clip to study area and add field)은 다른 툴과 연결할 출력 매개변수(output)가 없기 때문입니다.

 

위와 같은 상황을 해결하는 방법은 바로 모델 매개변수(Model Parameter)를 만드는 것입니다.
모델 매개변수를 만들기 위해서는 해당 변수를 우클릭한 후, Model Parameter를 클릭해주면 됩니다.
아래 그림과 같이 Soils와 Soils_Clip (3)을 모델 매개변수로 지정하였는데, 이렇게 지정된 변수는 P라는 문자가 표시됩니다.

 

 

이렇게 하면 모델 툴 다이얼로그 박스를 실행했을 때

Soils 매개변수를 식생 데이터 셋이나 레이어와 같은 다른 변수로 교체할 수 있습니다.
또한 출력 데이터셋인 Soils_Clip (3)의 이름도 다르게 지정해줄 수 있습니다.

 

OK 버튼을 클릭하면 해당 툴은 사용자가 지정한 자료를 이용하여 모델을 실행하게 됩니다.
위 모델에서 StudyArea는 매개변수로 지정하지 않았는데, 이것은 본 모델에서 해당 값이 변하지 않기 때문입니다.

 

툴 다이얼로그 박스에 위치하는 매개변수들은 모델빌더에서 사전에 지정한 값들을 읽어들입니다.
예컨데 ArcMap을 실행했을 때 Soils라고 명명된 레이어가 없다면,

툴 다이얼로그 박스는 해당 레이어가 존재하지 않기 대문에 오류(a red X)를 호출하게 될 것입니다.
이것을 피하기 위해서 모델 내 변수들을 아래와 같이 비워두는데, 모델빌더는 더이상 동작하지 않지만 다이얼로그 박스에서는 이용할 수 있습니다.

 

 

아래 그림과 같이 툴 다이얼로그 박스는 비워진 변수들을 초기화하여 보여줍니다.

 

이제는 출력 매개변수를 지정하였기 때문에, 해당 모델은 모델빌더에서 다른 툴(Identify)과 연동할 수 있겠습니다.