본문 바로가기
Python/Qgis(PyQgis) & ArcGis(Arcpy)

arcgis) arcpy add-in 설치하고 만들기 (필드값 넣는 버튼추가)

by 유노파이 2021. 4. 9.

아래 사이트에서 다운받습니다.

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에서 레이어 선택에 대한 기본동작은 

레이어 >> 모두선택해제 & 모두선택 >> 레이어 전체에 적용.

레이어 >> 부분 선택 >> 선택된 레이어에만 적용.

 

댓글