본문 바로가기
QGIS/QGIS 교육(2024)

[QGIS] 연령별 인구 데이터 결합 방법

by easyfly 2024. 4. 30.
반응형

광주광역시 동구 연령별 인구 데이터

데이터는 '유아'부터 '100세 이상'까지 14단계로 받았습니다. 유년기에는 '유아'와 '유소년', 학령기에는 '초등', '중학교', '고등학교'. 그리고 20대 이후는 10년 터울로 세대별 자료를 받았습니다. 각 데이터를 결합하기 위해 하나의 속성 테이블에 필드를 이어 붙이는 방식으로 진행합니다.

레이어 속성 중에서 '결합' 도구

필드 이어 붙이기

먼저 가장 기본이 된 '유아'의 레이어 정리를 했습니다. 유아에서 아이디 필드와 데이터 필드를 남기고 나머지 두 개의 필드를 삭제했습니다. 아래와 같이 'gid' 필드와 가공한 '유아' 필드에 '유소년' 필드를 추가합니다. 'gid'는 동일하기 때문에 기준이 되는 필드로 삼고 이어지는 필드는 각 연령별 필드입니다. 

필드 이어 붙이기

필드의 가공

실수로 되어 있는 'val' 필드를 정수값으로 바꾸면서 필드명은 '20대' 등으로 정해갑니다. 남성과 여성의 데이터가 있기 때문에 각 필드명은 통일성이 있어야 합니다. 제 경우는 '10대, 20대, ......, 100세'로 구간을 정했습니다. 또한 필드에 'NULL' 값을 없애고 데이터를 '0'으로 채우기 위한 작업을 합니다. 

속성 테이블의 편집 아이콘들

속성 테이블에는 편집과 뷰어를 번갈아 할 수 있습니다. 도구바의 제일 왼쪽 '연필' 형태가 '편집' 여부를 결정합니다. 'val' 필드를 가공하여 사용하는데 'NULL'을 '0'으로 치환하기 위해 'NULL' 이 들어 있는 필드만 선택해서 진행합니다.

계산 아이콘

'NULL' 값이 들어있는 필드만 선택하는 방법

좌하단의 필드 필터를 사용해서 검색합니다. '필드 필터'에서 해당 필드(여기서는 'val')를 선택하고 'NULL'을 검색합니다. 'val' 필드의 'NULL'이 들어있는 셀 만 검색되고 이것을 선택합니다. 

필드 필터 선택
셀 중에서 'NULL' 포함된 것만 검색

선택하는 방법은 속성 테이블의 아이콘에서 검색된 것을 모두 선택하는 아이콘을 클릭합니다. 또는 연필 아래를 클릭해도 같은 결과가 나옵니다.

'전부 선택' 아이콘

선택 아이콘은 전부, 반전, 해제 등의 순서로 배치되어 있습니다. 이곳에서 '기존 필드를 갱신'합니다. 이유는 'NULL' 을 '0'으로 치환하기 위한 것이기 때문에 '기존 필드 갱신'에 이어 해당 필드 'val'을 선택합니다. 이 필드는 숫자값이라는 것을 알려주는 표식과 함께 아래 필드들이 있습니다. 이 과정을 잘 이해하는 것이 필요합니다.

선택된 필드만 '0'으로 치환

 

먼저 'val' 값의 'NULL' 셀만 선택하여 '0'으로 치환하고 이 값이 '실수'이기 때문에 '정수값'으로 된 새로운 필드를 만들어 복사합니다. 방법은 아래와 같습니다. 위에서 'NULL'이 있는 셀만 선택해서 '0'으로 치환했기 때문에 치환된 후에는 선택을 해제해야 합니다. 만약 해제하지 않으면 선택된 상태에서 복사되기 때문에 원하는 결과를 얻을 수 없습니다. 

 

새로운 필드 생성 과정

새로운 필드는 데이터 가공에서 의도한 필드명을 사용합니다. 산출 필드 유형도 원하는 형태를 선택합니다. 아래와 같이 'Integer'는 정수값이기 때문에 소수점 아래가 없어집니다. 복사할 필드 명은 아래에서 적어줍니다.

새로운 필드 생성

새 필드 생성

새로 생성된 '중학생' 필드는 'val' 필드와 달리 정수값으로 깔끔하게 표현됐습니다. 이 과정에서 실수가 많습니다. 다시 한번 강조합니다. 실수형 데이터를 정수형 데이터로 복사하는 과정이란 것을 염두에 둬야 합니다.

중학생 필드 생성

 

정리

필드 계산기에는 선택된 필드가 몇 개인가를 알려주고 있습니다. 선택된 셀 만을 업데이트한다는 옵션이며 '기존 필드'를 갱신한다는 표식입니다. 그리고 'val' 필드만 변경한다는 의미입니다. 필드를 새로 만들 때는 선택이 해제된 상태에서 '변경된 'val' 필드가 자료형만 바꿔서 원하는 필드명으로 변경되는 것입니다.

 

생성된 필드를 유지하기 위해서는 'Export'를 통해 다른 이름으로 저장을 하십시오. 효과적인 방법은 추가되는 필드의 이름으로 저장을 진행하는 것입니다.

데이터의 'Export'

반응형

댓글