18.11. 벡터 계산기

주석

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

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

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

주석

새 버전의 공간처리 인터페이스는 많이 바뀌었습니다. 더 강력하고 쓰기 쉬워졌습니다.

Here are a few examples of using that algorithm.

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

( "WHITE" / "SHAPE_AREA" ) * 1000000

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

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

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

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

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

"MALES" / "FEMALES"

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

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

이전 버전에서는 두 항목 모두 정수형이기 때문에, 결과 또한 정수로 반올림될 것입니다. 이번 예제에서 공식은 1.0 * "MALES" / "FEMALES" 가 되어야 합니다. 산출물로 부동소수점(floating point) 숫자를 원하기 때문입니다.

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

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

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

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

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

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