아래 사이트에서 다운받습니다.
www.arcgis.com/home/item.html?id=5f3aefe77f6b4f61ad3e4c62f30bff3b
Python Add-In Wizard
Simplify the development of ArcGIS Desktop add-ins with this Python Add-In Wizard
www.arcgis.com

C:/arcgis 폴더를 하나 정해서(아무거나 정하셔도 상관없습니다.)
압축푼 폴더를 넣어 놓습니다. (addin_assistant)

그다음에 툴을 저장할 빈 폴더를 생성해주세요

1. 만들어볼 간단한 툴은 폴리곤 레이어에 필드값 넣기 입니다.
C:/arcgisaddin_assistant/bin/addin_assistant.exe <<< 실행
실행시키면 창이 뜨는데 방금 만든 CalculatedField 폴더를 클릭하고 확인.

Name에 툴이름을 지정해줍니다.
나머지 밑에 값은 넣어도 되고 안넣어도 됩니다.
맨밑에 툴 아이콘도 넣을 수 있어요.

Add-In Contents 클릭하여
TOOLBARS에서 마우스 오른쪽 클릭하여

New Toolbar 생성해 줍니다.

툴바 생성후 툴(상단부) 이름을 정해줍니다. CalculateField
다시 오른쪽 버튼 눌러서 New Button 만들어 줍니다.

버튼의 이름을 정해줍니다.
그리고 이제 Class Name에
python 스크립트에 적용될 '클래스 이름'을 정해 줍니다.
'save' 눌러주시고 툴 생성을 끝내줍니다.

그럼 이제 빈폴더를 생성했던 곳에 툴 세트가 생깁니다.
C:\arcgis\CalculatedField\Install 이쪽 폴더로 이동하셔서
CalculatedField_addin.py 를 idle 열어주세요

이제 버튼을 만들 준비가 끝났습니다.
>> 간단하게 설명을 드리면
버튼이라는 툴을 만들면 자동으로 버튼클래스를 생성해 줍니다.
onClick(self) 라는 함수는 함수 이름처럼 클릭했을때 실행이 됩니다.
이제 onClick 함수에 적용할 소스코드를 적용해 보겠습니다.

import arcpy
import pythonaddins
class ButtonClass1(object):
"""Implementation for CalculatedField_addin.button (Button)"""
def __init__(self):
self.enabled = True
self.checked = False
def onClick(self):
arcpy.env.overwriteOutput = True
# arcpy.mapping 모듙
mxd = arcpy.mapping.MapDocument ("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd,"*")[0]
# mxd에 띄워진 layer이름
testLayer = arcpy.mapping.ListLayers(mxd, "test", df)[0]
#(레이어, 필드이름, 필드값, , "PYTHON_9.3")
arcpy.CalculateField_management (testLayer, "test", '"testValue"', "PYTHON_9.3")
del mxd,df,testLayer
마지막으로 저장.
polygonLayerC:\arcgis\CalculatedField
폴더로 가셔서 makeaddin.py를 더블클릭 또는 idle로 열어 f5로 실행시켜주세요
>> 최종적으로 CalculatedField.esriaddin 파일이 생깁니다.
CalculatedField.esriaddin '더블클릭'해서 설치해 줍니다.

arcmap 실행시켜서 새로생긴 툴을 확인합니다.

'필드넣기' 버튼을 클릭해서 필드값을 넣어봅니다.

스크립트에서 정한 'testValue' 값이 잘 들어갔습니다.
★ 주의 사항
arcmap에서 레이어 선택에 대한 기본동작은
레이어 >> 모두선택해제 & 모두선택 >> 레이어 전체에 적용.
레이어 >> 부분 선택 >> 선택된 레이어에만 적용.

'Python > Qgis(PyQgis) & ArcGis(Arcpy)' 카테고리의 다른 글
Qgis&Arcgis) Qgis 필드계산기 함수 사용법 (0) | 2022.08.27 |
---|---|
Qgis&Arcgis) arcpy 홀 폴리곤 삭제 (remove hole polygon) (0) | 2021.08.15 |
Qgis&Arcgis) arcpy 벡터의 외적을 이용한 두 벡터의 교차점 구하기 (0) | 2021.08.10 |
댓글