17.11. 벡터 계산기

주석

이 강의에서는 벡터 계산기를 이용해 수리적 표현식을 기반으로 벡터 레이어에 새 속성을 추가하는 방법을 배울 것입니다.

우리는 이미 래스터 계산기에서 어떻게 수리적 표현식을 이용해 새 래스터 레이어를 생성하는지 알고 있습니다. 이와 비슷한 벡터 레이어용 알고리듬이 있습니다. 입력 레이어와 동일하지만, 입력한 표현식의 결과를 속성값으로 추가한 새 레이어를 생성하는 Field calculator 알고리듬입니다. 파라미터 대화 창은 다음과 같습니다.

../../../_images/field_calculator.png

주석

처리 과정 새 버전의 인터페이스는 많이 바뀌었습니다.

이 알고리듬을 사용하는 예제들을 보겠습니다.

먼저 인구 조사를 나타내는 각 폴리곤에 있는 백인의 인구 밀도를 계산해봅시다. 이를 위해 속성 테이블에서 WHITESHAPE_AREA 필드 두 개를 사용할 수 있습니다. 이 두 값을 나누고 (평방 킬로미터당 밀도를 구하기 위해) 1백만을 곱해야 하므로, Formula 필드에 다음 공식을 쓸 수 있습니다.

( WHITE / SHAPE_AREA ) * 1000000

파라미터 대화 창을 다음과 같이 설정하십시오.

../../../_images/density1.png

WHITE_DENS 라는 명칭의 새 필드를 생성할 것입니다.

다음으로 MALESFEMALES 필드의 비율을 계산해서 남성 인구가 여성 인구보다 우세한지 보여주는 새 필드를 생성해봅시다.

다음 공식을 입력하십시오.

float(MALES) / FEMALES

이번에는 OK 버튼을 클릭하기 전에 파라미터 대화 창을 다음과 같이 설정해야 합니다.

../../../_images/ratio.png

Both fields are of type integer, and the result would be truncate to an integer. That’s why we have added the float() function, to indicate that we want floating point number a result. You can use other Python functions as needed, since the calculator supports python commands (the raster calculator, however, doesn’t).

Since the formula field accepts Python syntax, we can have a new field with male or female text strings instead of those ratio value, using the following formula instead.

'male' if MALES > FEMALES else 'female'

파라미터 창이 다음과 같이 보여야 합니다.

../../../_images/predominance.png

A more powerful python field calculator is available in the “Advanced Python field calculator”, which will not be detailed here

../../../_images/advanced.png