Outdated version of the documentation. Find the latest one here.

17.11. 벡터 계산기

주석

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

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

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

주석

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

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

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

( WHITE / SHAPE_AREA ) * 1000000

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

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

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

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

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

1.0 *  "MALES"  /  "FEMALES"

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

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

두 필드 모두 정수형으로, 결과 또한 정수로 반올림될 것입니다. 우리는 부동소수점(floating point) 숫자를 원하기 때문에 이 결과에 1.0을 곱합니다.

새 필드에 비율값 대신 male 혹은 female 이라는 텍스트 문자열을 쓰려면 조건식(conditional function)을 사용할 수 있습니다. 다음 공식을 대신 입력해보십시오.

CASE WHEN  "MALES" > "FEMALES"  THEN 'male' ELSE 'female' END

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

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

파이썬 필드 계산기는 Advanced Python field calculator 메뉴로 사용할 수 있지만, 여기에서 자세히 다루지는 않겠습니다.

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