2014-03-29 3 views
2

제 졸업 논문 결과로 Python 스크립팅을 사용하여 ArcGIS 용 새 도구 상자를 만들려고합니다. Arcpy의 기존 기능 중 내가 할 일이 없기 때문에 문제는 내가 코드에 얽매여있다. 그래서 제 질문은 Arcpy에서 새로운 기능을 만들 수 있습니까 아니면 ESRI 개발자로 제한되어 있습니까?(ArcGIS) Arcpy 용 새 함수 만들기

이 문제를 해결하는 또 다른 방법은 Spatial Analyst의 Cost Distance Tool에서 몇 가지 변경 사항을 구현하는 것입니다. 그래서 내 다른 질문은, 내가 ArcGIS에서 네이티브 도구의 코딩에 액세스 할 수 있습니까? 내가 가진다면 내 목표를 달성하기 위해 그것을 바꿀 수 있습니까? 또는 이것도 제한되어 있습니까?

감사합니다, 파이썬과 파이썬 arcpy 사이트 패키지를 사용

가브리엘

답변

0

할 수 있습니다 create your own functions. ESRI의 모든 툴은 독점적이며, 따라서 대부분의 접근이 제한됩니다. ArcToolbox에서 도구를 편집 할 수 있는지 확인할 수 있습니다. 예를 들어, 비용 거리 도구가 제한되어 볼 수 있습니다

enter image description here

을 장벽 도구를 사용하여 스플라인이 스크립트 도구를 마우스 오른쪽 버튼으로 클릭하여 편집 할 수 있지만.

enter image description here

+0

그건 정말 도움이 아론! 감사합니다. –

0

나는 1 년 늦었다 고 알고있다. 그러나 나는 파이썬 툴box 도움말을 찾고있는 나와 같은 사람들을 위해 게시 된 아이디어를 몇 가지 추가하고 싶다.

교육용으로는 Model Builder에서 모델을 만드는 것으로 시작하십시오. 이것은 ESRI의 독점적 인 도구를 새로운 방식으로 사용하는 한 가지 방법입니다. 원하는 것을 결정하고 GitHub에서 ESRI의 존재를 살펴보십시오. ArcMap에서 사용할 수있는 많은 오픈 소스 도구가있는 개발자가 있습니다. 다음은 그러한 저장소 중 하나입니다. GeospatialPython

사이드 노트는 훌륭한 이력서 작성 도구입니다.

작업 모델 작성기를 만든 후 ArcCatalog에서 마우스 오른쪽 버튼을 클릭하고 '파이썬 스크립트로 내보내기'를 선택하십시오. 좋아하는 IDE에서 스크립트를 열고 정리를 시작하십시오!

이제 파이썬 스크립트가 있으므로 파이썬 도구 상자가 될 준비가되었습니다. gDexter42의 링크를 사용하여 작업하십시오.

제 팀은 파이썬 도구 상자에 대한 흥미로운 사용법을 가지고 있으며 현재 첫 번째 팀을 만들고 있습니다.

  1. 우리는 러너 스크립트를 사용하여 소프트웨어를 디버깅합니다. (하드 코딩 된 매개 변수)
  2. 우리는 또 다시 (클래스 BaseToolboxMixin (객체) : 사용하는 함수에 대한 상속을 사용 Stack Exchange Article on Mixins
  3. 가장 중요한 것은, 우리가 도구의 주위에 우리 자신의 파이썬 모듈을 만들었습니다.
  4. .pyt 파일을 만들었고 우리가 만든 모듈 인 arcpy를 'toolbox_loader.py'파일에서 만든 목록에서 모듈을 실행하고 처음에 모듈을 만든 init 파일을 호출하는 클래스가 있습니다. > 20 줄의 코드.
  5. 우리 팀이 모듈/파이썬 도구 상자에 대해 더 많은 도구를 만들 때 우리는이를 목록에 추가합니다. 이 도구 상자는 모든 ESRI 도구와 함께 도구 상자 안에 나타납니다. 올해는 Dev Summit에서 "매끄러운 통합"이 많이 발생했습니다.

ESRI는 독창성과 오픈 소스 사용을 장려하고 있습니다 (전단지를 확인하십시오). 나는 ESRI의 도구가 독점적이기 때문에 내 생각을 제한하지 않을 것입니다.

이 모든 기능은 ArcMap에서 모델로 시작되었습니다. 모든 사람들이 자신의 모듈을 만들어야 할 필요는 없습니다. 대부분의 작업에 과도한 과부하가 걸리지는 않지만 파이썬 기능의 한계가 높다는 것을 아는 것이 좋습니다. 나는 경험 많은 개발자는 아니지만 약 25 시간의 작업 시간으로 기능적인 파이썬 도구 상자로 옮길 수있었습니다. 그들의 물건을 알고있는 누군가는 아침에 그것을 할 수 있었다.