오늘은 ArcMap의 field calculator라는 도구를 이용하여
표에 데이터를 입력해보겠습니다.
우선 레이어 우클릭 > open attribute table 눌러
attribute table 표를 열어줍니다.
노란색 아이콘을 눌러
add field 를 눌러 표에 새로운 열(field)을 추가합니다.
원하는 이름을 입력하고, 원하는 type을 설정해줍니다.
length의 숫자가 길면 표자체가 매우 길어지니, 적절히 10 정도로 조절해주면 좋습니다.
새로운 열이 생겼네요!
이제 이 loss라는 열에 데이터를 채워넣어보겠습니다.
표 최상단부를 우클릭 > field calculator을 눌러줍니다.
이런 도구가 나옵니다.
중간부분에 있는 Show Codeblock을 눌러 코딩을 할 수 있게 해봅시다.
파이썬의 형식으로 코딩을 해줍니다.
저의 경우
def calc(f1,f2):
if f1==f2:
return 0
else:
return f2
------------------------------
calc( !GRIDCODE!,!GRIDCODE_1!)
이렇게 해주었습니다.
위의 칸에는 명령어들을 입력하고, 밑의 칸에는 위에서 사용한 calc, f1, f2 이런 애들이 무엇을 뜻하는지 적어줍니다. calc (f1, f2)에서, 각각 f1과 f2에 해당하는 표의 field를 적어주면 됩니다.
참고로 calc 대신에 다른 걸로 적어주어도 됩니다. 함수를 f(x), g(x) 등으로 다양하게 부르듯이요!
또한 끝에 : (콜론)을 붙여주지 않으면, 그리고 띄어쓰기를 해주지 않으면 오류가 나니 주의합니다.
제가 입력한 코드를 한 줄씩 풀어보자면,
def calc(f1, f2): = calc(f1, f2)라는 애들을 쓸 건데 이제부터 정의할게
if f1==f2: = f1이랑 f2가 같다면, (파이썬에서는 =는 대입, ==는 같다라는 뜻이니 주의)
return 0 = 0을 출력해줘.
else: = 근데 만약 아니라면, 즉 f1과 f2가 다르다면
return f2 = f2를 출력해줘.
------------------
calc( !GRIDCODE!,!GRIDCODE_1!) = 위에서 내가 정의한 calc (f1, f2)은 뭐냐면, GRIDCODE이라는 필드로 (느낌표는 자동으로 넣어짐) f1라는 변수를 취할 것이고, GRIDCODE_1라는 필드로 f2라는 변수를 취할 거야.
이런 뜻입니다.ㅋㅋㅋ
(파이썬 알못이라 그냥 아는대로 써보았으니 양해부탁....들입니다.....)
이렇게 채워졌습니다!
def Reclass(code):
if (code >= 111 and code <= 111):
return 0.38
elif (code > 111 and code <= 112):
return 0.56
elif (code > 112 and code <= 121):
return 0.05
elif (code > 30):
return 0.01
if - elif는 이렇게 해주었어요
field calculator는 간단한 파이썬 코딩을 이용하여, 손쉽게 많은 양의 셀에 데이터를 채워넣을 수 있는 유용한 도구입니다.
다만 사용하는 컴퓨터의 사양에 따라서 계산이 번거로운 경우가 있는데,
그런 경우에는 table에서 export를 눌러 엑셀파일로 내보내기 한 후,
엑셀에서 작업하여 이를 다시 ArcMap에서 불러오는 방법도 있습니다. 참고하세요!ㅎㅎ
++++++++++++++++++
2023.04 추가
def check_code(code):
if code in ['110', '120', '130', '140', '160']:
return 1
else:
return 0
Reclass( !L2_CODE!)
'🗺️ GIS & RS > 📍 ArcGIS・QGIS' 카테고리의 다른 글
[ArcMap] tif 파일 면적 계산하기 (0) | 2023.05.23 |
---|---|
[ArcGIS pro] 원격탐사 영상 감독분류하기 (0) | 2023.05.16 |
[ArcGIS PRO] 아크프로에서 Python 창 열기 (0) | 2023.04.04 |
[ArcMap] 두 점 간 거리를 구해주는 도구 : Point Distance (0) | 2023.04.04 |
[ArcMap] 점에서 점까지 거리 구하기 (Point Distance tool) (0) | 2023.03.19 |
댓글