Python 스크립팅에서 ModelBuilder를 사용하는 경우와 그 반대의 경우는 언제입니까?


71

ArcGIS의 Python 스크립팅은 처음이지만 ModelBuilder는 처음입니다.

Python과 ModelBuilder의 이점을 알고 싶습니다.

ModelBuilder를 사용하지 않고 GIS 자동화를위한 Python 스크립트를 언제 작성해야합니까?

ModelBuilder에서 찾을 수없는 Python의 자동화 기능은 무엇입니까?

답변:


82

사용할 도구 세트를 결정하기 전에 사용자가 목표를 명확하게 정의해야한다고 생각합니다. ModelBuilder와 Python 스크립팅은 다양한 작업에서 탁월합니다. 몇 가지 생각 :

  1. ModelBuilder에는 매핑 기능이 없지만 arcpy.mapping 은 없습니다.
  2. Python은 멀티 프로세싱 패키지 또는 병렬 처리 와 같은 워크 플로우를 최적화하는 데 사용할 수 있습니다 .
  3. 파이썬은 중첩 루프 및 기타 편리한 반복 논리 도구를 허용합니다. ModelBuilder에서 비슷한 결과를 얻으려면 복잡하고 복잡한 중첩 모델을 구성해야합니다.
  4. 간단한 텍스트 조작은 Python에서 매우 쉽고 ModelBuilder에서는 매우 어렵거나 불가능합니다.

    예를 들어 파일 이름 목록의 이름을 "m_2010_naip_2310345_nw.img"에서 "2310345nw.img"로 바꾸려면 os.path모듈을 사용하여 Python으로 쉽게 수행 할 수 있습니다 .

반면에 :

  1. ModelBuilder는 일반적인 도구를 신속하게 조합하고 스크립트 디버깅의 필요성을 없애는 데 매우 유용합니다.

  2. ModelBuilder에는 폴더와 하위 폴더를 반복하기 위해 구현하기 쉬운 매우 유용한 재귀 반복자 가 있습니다.

  3. ModelBuilder는 복잡한 작업 의 워크 플로우를 시각적으로 직관적으로 묘사하는 데 탁월 합니다 .

  4. ModelBuilder는 Python 스크립트 도구를 통합 할 수 있습니다 .


5
ArcGIS에서 Python과 Model Builder의 차이점을 명확하게 설명했습니다. 감사합니다
BBG_GIS

24
1. 또한 ArcMap 외부에서 Python 스크립트를 실행할 수 있습니다. 2. Python에서 ArcObject를 사용할 수 있습니다. 3. 속도 차이가있을 수 있습니다.
Tomek


3
필수 루프 및 arcpy.mapping +1! 스크립트 내에서 계산을 수행하고 속성 테이블 또는 맵 레이아웃 (예 : 각 습지 유형의 영역)에 추가하는 기능이 마음에 듭니다.
Roy

2
ArcGIS book 용 Python 스크립팅을 읽었습니다. 1- 스크립트 커서를 사용하면 테이블의 레코드를 반복하여 기존 행을 읽고 새 행을 삽입 할 수 있습니다. 2- 스크립팅을 사용하여 다른 소프트웨어를 포장 할 수 있습니다. 즉, 응용 프로그램을 서로 붙입니다. 예를 들어 python은 Microsoft Excel 또는 통계 패키지 R의 함수에 액세스하는 데 사용할 수 있습니다. 3-A 스크립트는 ArcGIS 외부의 디스크에서 독립 실행 형 스크립트로 실행할 수 있습니다. 스크립트를 위해 ArcMap 또는 ArcCatalog를 실행할 필요가 없습니다. 작업. (ArcGIS를위한 Python 스크립팅, 2 장, 39 페이지)
BBG_GIS

24

ArcGIS 제한 내에서만 작업하는 경우 수행 할 접근 방식을 결정할 때 고려해야 할 몇 가지 사항이 있습니다.

  • 무엇을 성취하려고합니까?
  • 현재 기술은 무엇입니까?
  • 귀하의 작업을 다른 사람과 공유하여 사용, 학습 또는 조작 및
  • 당신의 의도 된 청중은 누구입니까?

이러한 고려 사항이 주어지면 :

  1. 프로세스의 일부를 ModelBuilder에서 복제 할 수없는 경우가 아니라면 Python보다 ModelBuilder에서 프로세스를 빌드하는 것이 더 빠르고 쉽습니다.
  2. 파이썬을 모르고 배우려는 의도가 없다면 ModelBuilder는 훌륭한 옵션입니다.
  3. Python을 모르고 그것을 기술 세트에 통합하는 법을 배우고 싶다면 ModelBuilder는 간단한 모델을 만든 다음 Python으로 내 보내서 최종 프로세스의 골격을 미리 구축하는 좋은 방법입니다. . 일반적으로 변환 과정에서 생성되는 많은 관련 정보 및 변수가 있기 때문에이 방법은 비용이 많이 들지만 학습을 시작하는 좋은 방법입니다.
  4. 개인적인 용도로 도구를 만드는 경우 가장 편한 방법을 사용하는 것이 일반적입니다. 필요에 따라 개인적으로 두 가지를 모두 사용합니다.
  5. 분석을 다른 사람과 공유 할 계획이고 모델 / 스크립트를 다른 사람과 공유하는 것이 프로세스 문서의 일부인 경우 일반적으로 비 기술적 인 사람이 모델을 따르고 이해하기가 훨씬 쉽습니다.

개인적으로 사용하기에 "더 나은"것에 대한 답은 없지만, 장기적으로 취업 가능성을 찾고 있다면, 파이썬을 배우면 사전 프로그래밍 된 도구를 사용하는 방법 만 아는 사람들과 차별화 될 것입니다. ModelBuilder 사용 방법 만 알면됩니다. 또한 Python for ArcGIS (ArcPy)의 범위를 벗어나 다른 비 독점 및 오픈 소스 GIS 라이브러리뿐만 아니라 많은 비 GIS 라이브러리 (예 : 데이터베이스)를 사용하여 훨씬 더 많은 작업과 프로젝트를 자동화 할 수 있습니다. , 이미지 조작, 통계 등).


20

Model Builder는 훌륭하고 배우기 쉬운 비주얼 프로그래밍 언어이며 일반적으로 GIS 프로그래밍에 대한 좋은 입장입니다. 그러나 파이썬은 더 많은 일을 할 수 있습니다.

비 ESRI GIS 라이브러리의 통합이 그 예입니다. 거의 모든 오픈 소스 GIS는 파이썬을 통해서도 다룰 수 있습니다 (예 : GRASS , Sextante , QGIS , SAGA ). ArcView 라이센스 만 있기 때문에 이것은 많은 도움이되었습니다. 따라서 ArcGIS에서 특정 지오 프로세싱 도구를 사용할 수 없을 때마다 오픈 소스 GIS에서 사용할 수있는 다른 옵션을 찾습니다. 그런 다음이 OpenSource-tools를 가져 와서 더 큰 파이썬 스크립트로 ArcGIS 도구와 결합하거나 더 작은 파이썬 스크립트를 통해 ModelBuilder에 통합하십시오.

다른 회원들이 더 많은 이점을 낼 수 있다고 확신합니다.


9

Python 및 ArcGIS를 사용하면 ArcGIS에 이미 포함 된 기능 외에도 Python의 전체 기능이 제공됩니다. 이러한 종류의 힘과 유연성이 필요한 경우 원하는 바에 따라 다릅니다. 또한 Python과 같은 프로그래밍 언어를 알고 실제로 활용하려면 시간이 걸립니다. 이 투자 가치가 있다면 당신에게 달려 있습니다. 그러나 심각한 데이터 처리를 위해서는 실제 스크립팅 언어가 무기고에 매우 유용합니다.

ModelBuilder가 놓칠 수있는 기능을 제외하고보다 근본적인 논의도 있습니다. 일반적으로 스크립트는 복잡한 워크 플로우를 작성하는 데 훨씬 적합합니다. 코드는 위에서 아래로 처리되며 복잡한 작업은 예를 들어 기능을 사용하여 더 작은 하위 작업으로 세분 될 수 있습니다. 또는 물체. 모델 빌더와 같은 그래픽 도구는 큰 스파게티가되는 경향이 있습니다.


7

나는 파이썬 스크립트를 만드는 것에 부분적입니다. 적어도 상자는 상자에 선을 연결하는 것보다 혼란스럽게하는 것보다 코드를 작성하는 것이 더 재미 있습니다.

Python 스크립팅의 가장 큰 장점은 편리한 시간에 스크립트가 실행되도록 예약 할 수 있다는 것입니다. 완료하는 데 시간이 걸리거나 정규 업무 시간 이외의 시간에 실행해야하는 스크립트가있는 경우 매우 편리합니다. 여기 에서 스크립트를 예약하는 방법의 예를 볼 수 있습니다 .

@Aaron에서 언급했듯이 Python 스크립트에서 루핑을 쉽게 설정할 수 있습니다.

Python 스크립팅으로 설정하는 경우 Model Builder를 사용하여 모델을 작성하여 Python 스크립트로 내보낼 수 있습니다. 스크립트에서 여러 도구를 사용하는 방법을 이해하는 데 어려움이있는 경우 때때로이 작업을 수행합니다. 스크립트를 작성하는 방법을 이해하는 데 도움이 될 수 있습니다.


5

파이썬 스크립팅보다 모델 빌더로 더 많은 솔루션이 붙어 있지 않은 것으로 나타났습니다. 모델 빌더의 다소 '블랙 박스'특성으로 인해 문제의 위치를 ​​찾기가 더 어려워졌습니다.

또한 파이썬에 대해 더 많은 도움을 찾을 수 있다는 것을 알았습니다. 모델 빌더에 대한 많은 데드 엔드 스레드와 주제를 찾는 경향이 있습니다. 파이썬과 마찬가지로 작성중인 스크립트의 대부분 부분에서 작은 조각을 찾을 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.