Python Script Tools를 통해 Python Toolbox를 배우고 사용하는 이유는 무엇입니까? [닫은]


25

필자는 몇 가지 Python Toolbox (ArcGIS 10.1의 새로운 기능)를 작성했지만 표준 도구 상자에서 Python Script Tools 대신 도구를 작성해야하는지 여부를 아직 결정하지 않았습니다.

온라인 도움말 이 다음과 같은 점으로 시작될 때 나를 밝힐 수 있다고 생각했습니다 .

일단 만들어지면 파이썬 툴박스의 툴은 많은 장점을 제공합니다

그러나 나열된 다섯 가지 장점은 모두 Python을 사용하여 도구를 작성할 수없는 것 같지만 Python 스크립트 도구보다 Python Script Tools의 장점을 지정하지는 않습니다.

내가 생각할 수있는 두 가지 장점은 다음과 같습니다.

  • 이제 하나의 Python 스크립트로 "순수한"Python 도구를 작성할 수 있습니다. 도구 유효성 검사를 사용하여 따로 작성된 대화 상자에 연결하지 않아도됩니다.
  • 이제 코드 (Python 또는 텍스트 파일을 작성할 수있는 모든 언어)를 사용하여 Python 도구 상자 작성을 자동화 할 수는 있지만 아직이 작업을 수행해야하는 요구 사항은 없습니다.

Esri가 Python Toolbox 기능을 제공하게 된 강력한 사례를 간과하고 있습니까? 그렇다면 무엇입니까?

답변:


34

둘은 기능면에서 매우 유사하지만 완전히 동일하지는 않습니다.

둘 다 공통

  • 식별을위한 고유 한 별명을 가진 도구 세트를 포함
  • arcpy에서 호출 가능
  • 각 도구에 대해 무료로 지오 프로세싱 도구 대화 상자 (기본적으로 전체 UI)를 얻습니다
  • 모든 Python 코드를 하나의 파일 (임베딩 툴 소스에 포함 TBX하고 모든 구현을 하나로 묶음 PYT)을 유지하고 이메일 또는 공유 네트워크 드라이브를 통해 배포 할 수 있습니다
  • 데스크톱 애플리케이션의 경우 항상 포 그라운드 설정으로 실행하십시오 . ArcPy 코드 내에서 "항상 포 그라운드에서 실행"을 설정합니까?

TBX 파일 고유 :

  • 시스템 도구 상자, 사용자 지정 COM 도구 및 사용자 지정 .Net 도구에 대한 참조를 포함 할 수 있습니다.
  • 도구 상자에 모델 작성기 도구를 포함시킬 수 있습니다
  • 도구 설명서는 .tbx 파일에 저장됩니다
  • 매개 변수 설정 및 검증 코드 수행을위한 간편한 마법사 UI
  • 프로세스 도구 특성 에서 Python 스크립트 실행
  • 단점 : 불투명 한 이진 형식, 최신 버전의 TBX 파일은 이전 버전의 소프트웨어에서 작동하도록 이전 버전으로 명시 적으로 저장해야합니다. 설정 (예 : 상대 경로)

Python Toolbox에 고유 한 기능 :

  • 도구 상자는 다른 코드로 동일하게 취급 할 수 있도록 일반 텍스트 (좋은 버전 제어 도구는 개발의 역사를 추적 할 수로 사용되는 환경에서 유용 - GitHub의에 얼마나 많은 프로젝트를 봐 사용 PYT이상 TBX.)
  • 특정 매개 변수 유형을보다 강력하게 제어 할 수 있습니다 (즉, 복합 데이터 유형을 수행하고 값 테이블의 스키마를 정의 할 수 있음)
  • 제품 ( "ArcInfo") 또는 확장 ( "공간")을 사용할 수없는 경우 isLicensed 속성을 사용하여 도구를 비활성화 할 수 있습니다.
  • 도구 문서는 .pyt와 동일한 폴더에 XML 파일로 저장됩니다.
  • 단점 : 도구 매개 변수를 구성하기위한 마법사 UI가 없으며 Python에서 훨씬 더 많은 스캐 폴딩 코드가 구현 도구를 추가하는 것보다 도구 상자 개발을 공식적인 소프트웨어 개발 작업으로 바꿉니다. pyt가 큰 경우 개발 중에 변경 내용을로드하기 위해 pyt를 다시로드하면 속도가 느려질 수 있습니다 (다른 파일에 도구를 넣고 가져 와서 다시 컴파일 할 필요가 없으므로 피할 수 있음).

얼마 전에 처음 12 개 정도의 PYT도구 상자를 작업 할 때 처음 으로 설정해야하는 번거 로움 때문에 혼란스러워서 라는 도구를PYT 개발 했습니다tbx2pyt . 그것은 할게요 TBX도구 상자를 그리고는 변환 PYT코드의 최소한의 손실. 실제로, PYT그것은 그 힘이 처음이었다 TBX. 원하는 경우 기존 도구를 Python Toolbox 형식으로 전환하는 좋은 방법 일 수 있습니다. 최소한 코드로 전환하기 전에 UI를 사용하여 도구의 매개 변수를 설정할 수 있습니다.


15

사용자 정의 도구와 Python 도구 상자 비교 라는 제목의 도움말 섹션 에는 Python 도구 상자를 만드는 경험이있는 사람들의 "실제"장점 / 단점을 듣고 싶지만 서로를 선택하는 이유를 비교해 보았습니다.

필자가 읽은 한 가지 분명한 단점 은 표준 사용자 정의 도구 상자에서와 같이 Python 도구 상자에서 모델과 스크립트를 혼합 / 일치 할 수 없다는 것입니다.


11

파이썬 툴박스에 집중하는 가장 큰 이유는 버전 제어 및 소스 코드 관리 ( ArcGIS 모델에 버전 제어 적용 참조 )에 이어 탭 완성, 정규 표현식, 스 니펫 라이브러리, 기타

그러나 Ryan Dalton이 지적한 것처럼 평소대로 모델을 빌드 한 다음 파이썬으로 내 보낸 다음 다시 쓰기 위해 노력하지 않으면 모델 빌더 및 이전 스타일 도구를 사용할 수 없습니다. .pyt에. (이 작업을 수행하면 ArcGIS에서 Python Toolbox (.pyt) 구성 지침을 참조하십시오). 현재이 단점은 아직 파이썬 도구 상자를 심각하게 사용하기에 충분할 정도로 큽니다.

기존 도구 상자를 .pyt로 변환하려는 경우 Jason Scheirer의 tbxtopyt 부분 변환기가 유용 할 수 있습니다.

「주문 건은?」질문의 일부 : 이미 소프트웨어 개발에 대한 지식이 있다면 반드시 그렇습니다. 나처럼 GIS Tech / Analyst 3 부분과 pythonista 1 부분 이하입니다. (아직 적어도 - 나는 정말 이 진 하나 또는 가까운 장래의 릴리스의 두 가지 접근 방식 변화의 다른 특성을 바랍니다.)

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