[QGIS] 공공데이터 CSV로 Shape 파일 생성 및 조인(Join)과 릴레이츠(Relates) 활용 가이드
📌 오늘의 학습 목표
- 공공데이터 플랫폼(공공데이터포털 등)에서 제공하는 위경도 좌표(X, Y)가 포함된 CSV 파일을 QGIS로 불러와 Shape(shp) 파일로 변환함.
- 두 개 이상의 공간 데이터와 기본 데이터를 활용하여 속성을 결합하는 조인(Join) 기능과 1:N 관계를 다루는 릴레이츠(Relates) 기능을 이해하고 실습함.
1. QGIS CSV 파일 활용하기 (CSV를 Shape 파일로 만들기)
공공데이터포털 등에서는 수많은 데이터를 CSV 형태로 제공함. 이 데이터 중 경도(X)와 위도(Y) 정보가 포함된 파일이라면 QGIS에서 지도 위에 점(Point) 데이터로 시각화하고, 이를 영구적인 공간 데이터 형태인 Shape(shp) 파일로 저장할 수 있음.
Step 1. 공공데이터 다운로드 및 데이터 확인
- 공공데이터포털(data.go.kr)에 접속하여 공간정보가 있는 데이터를 검색 및 다운로드함.
- (예: ‘전국 공공자전거 대여소 정보’, ‘소상공인시장진흥공단 상가업소정보’ 등)
- 다운로드한 CSV 파일을 엑셀이나 텍스트 에디터로 열람하여, ‘경도(X좌표)’와 ‘위도(Y좌표)’ 컬럼이 온전하게 존재하는지 점검함.
- Tip: 보통 경도(Longitude)는 126~129 범위의 값을, 위도(Latitude)는 33~38 범위의 값을 가짐. 빈 값이 있다면 해당 행을 지우거나 전처리를 진행하는 것이 좋음.
Step 2. QGIS에 CSV 파일 불러오기
- QGIS 상단 메뉴에서 [레이어] → [데이터 원본 관리자] → [구분자를 분리된 텍스트(Delimited Text)] 탭을 클릭함.
- 팝업 창이 열리면 파일 이름 경로 우측의
...버튼을 눌러 준비한 CSV 파일을 선택함. - 파일 포맷은 [CSV (쉼표로 분리됨)] 을 선택함.
- 도형 정의(Geometry Definition) 설정이 가장 중요함!
- X 필드:
경도또는Longitude등을 매칭 - Y 필드:
위도또는Latitude등을 매칭
- X 필드:
- 도형의 좌표계(Geometry CRS)는 데이터 원본에 맞게 설정함. GPS 위경도 좌표라면 보통
EPSG:4326 - WGS 84를 선택함. - 하단 미리보기에 데이터가 잘 들어왔는지 확인하고 [추가] 버튼을 누르면, 지도 화면에 수많은 점(Point) 레이어 객체들이 표시됨.
Step 3. Shape 파일(shp)로 내보내기
QGIS에 방금 불러온 CSV 포인트 레이어는 임시로 메모리에 올라가 있는 상태임. 안전한 공간 분석을 위해서는 이를 정식 공간 데이터인 Shape 파일로 내보내야 함.
- 왼쪽 [레이어 패널]에서 방금 추가한 CSV 레이어를 우클릭함.
- [내보내기(Export)] → [객체를 다른 이름으로 저장(Save Features As…)] 메뉴를 클릭함.
- 포맷(Format)을 최상단의 [ESRI Shapefile] 로 선택함.
- 파일 이름(File name) 우측의
...버튼을 눌러 저장할 폴더 위치와 파일 이름을 지정함. (예:bike_station.shp. 가급적 경로에 한글이 없도록 지정함.) - 좌표계(CRS)를 그대로 쓰거나, 투영이 필요한 경우 한국 표준 좌표계인
EPSG:5179 (Korea 2000 / Unified CS)등으로 변경 지정해줌. - [확인] 을 누르면 상단에 “레이어를 내보냈습니다”라는 메시지가 뜨고, 정식 Shape 파일이 레이어 패널에 성공적으로 추가됨.
2. QGIS 조인(Join)과 릴레이츠(Relates) 완벽 이해
공간 데이터(Shape 파일)만으로는 필요한 모든 속성(인구수, 상가 정보, 통계치 등)을 다 담고 있지 않을 때가 많음. 이때 외부 엑셀이나 CSV 등 다른 테이블의 데이터를 결합(연결) 하여 활용하는 핵심 기능이 바로 조인(Join) 과 릴레이츠(Relations) 임.
조인과 릴레이츠의 차이점
- 조인(Join): 1:1 또는 N:1 결합일 때 사용함. 베이스가 되는 공간 도형 속성 테이블 1줄당 결합될 데이터가 딱 1개 존재할 때, 원본 속성 테이블 우측에 새로운 컬럼들이 찰싹 달라붙음.
- 릴레이츠(Relates): 1:N 결합일 때 사용함. 공간 도형 1개에 대해 관련된 데이터 레코드가 여러 개 연결되어야 할 때(예: 특정 읍면동 폴리곤 하나의 연도별 인구통계 변동 내역들) 적합함.
실습 1. 조인(Join) 수행하기 (1:1 결합)
(예: ‘시군구 경계 폴리곤 파일(Shape)’에 ‘시군구별 인구수 데이터(CSV)’를 결합하는 상황)
- 파일 불러오기: 도형 데이터(
시군구_경계.shp)와 결합할 기본 데이터 테이블(인구수.csv)을 QGIS에 모두 불러옴. (인구수.csv 파일은 X/Y 좌표가 없는 단순 표 형태이므로 ‘도형 없음’ 속성으로 원본 관리자에서 불러옴) - 속성 테이블 확인: 두 레이어 모두 동일한 의미를 갖는 고유 식별자(Key) 필드 (예: 시군구 고유 코드)가 있는지 확인함. 두 필드의 데이터 타입(문자열/숫자)이 같아야 원활하게 처리됨.
- 기준이 될 도형 데이터(
시군구_경계.shp)를 우클릭하고 [속성(Properties)] 에 들어감. - 왼쪽 탭에서 [조인(Joins)] 을 클릭함.
- 하단의 🟢 녹색 플러스(+) 아이콘(
새 조인 추가)을 클릭함.- 조인 레이어: 가져다 붙일 데이터 테이블(
인구수.csv) 지정 - 조인 필드:
인구수.csv안에 있는 고유 식별자 컬럼 (예:구코드) - 대상 필드:
시군구_경계.shp안에 있는 고유 식별자 컬럼 (예:SIG_CD)
- 조인 레이어: 가져다 붙일 데이터 테이블(
- 하단의
조인된 필드 선택란을 체크하여 가져올 인구수 필드만 콕 집어 따로 지정할 수도 있음. - [확인] → [적용] 을 누른 뒤 해당 도형 레이어의 속성 테이블을 열어보면, 우측에 새롭게 인구수 컬럼들이 이어 붙은 것을 확인할 수 있음.
- 주의: 조인된 상태 역시 원본 파일 자체가 변한 것은 아님. 조인이 완료된 형태를 완전히 저장하고 싶다면 해당 레이어를 다시 파일로 [내보내기(Export)] 해야 함.
실습 2. 릴레이츠(Relations) 설정하기 (1:N 결합)
(예: ‘하나의 상권 구역 폴리곤(Shape)’에 그 영역에 소속된 ‘수십 개의 개별 점포 리스트(CSV)’를 연동하는 상황)
- 프로젝트 단위의 속성 설정: 릴레이츠는 레이어 단위가 아닌 프로젝트 단위에서 관계를 정의함. 상단 툴바 메뉴의 [프로젝트(Project)] → [속성(Properties)] 메뉴를 클릭하여 진입함.
- 왼쪽 메뉴 탭에서 [관계(Relations)] 를 클릭함.
- 하단의 [관계 추가(Add Relation)] 버튼을 누름. 이곳에서 부모-자식 관계를 묶어주게 됨.
- 이름: 릴레이션의 성격을 알아보기 쉽게 직접 작성 (예:
상권_to_점포) - 참조 레이어 (자식, N): 여러 개의 세부 레코드를 지닌 상세 데이터 테이블 (예:
개별_상가.csv) - 참조 필드: 기준 ID (예:
상권_코드) - 참조된 레이어 (부모, 1): 기준이 되는 1개의 대상이 있는 공간 도형 레이어 (예:
상권_폴리곤.shp) - 참조된 필드: 기준 ID (예:
상권_코드)
- 이름: 릴레이션의 성격을 알아보기 쉽게 직접 작성 (예:
- [확인] 을 눌러 설정한 부모-자식 관계를 프로젝트에 저장시킴.
설정된 릴레이션(Relation)을 시각적으로 확인하는 방법:
- QGIS 상단 지도 툴바에서 [객체 식별(Identify Features)] 도구(파란색 원 안의 ℹ️ 아이콘)를 선택함.
- 맵 뷰(지도 화면) 상에 그려져 있는 부모 레이어인
상권_폴리곤폴리곤 객체를 하나 클릭함. - 우측에 뜨는 객체 식별 패널에서 선택된 폴리곤의 대표 정보가 리스트 형식으로 나타남.
- 상세 정보 창의 하단 트리구조를 살펴보면 자식 레이어로 엮어둔
개별_상가의 이름 항목이 나타남. - [+] 버튼을 눌러 목록을 확장해보면, 방금 클릭한 1개의 상권 구역 폴리곤에 종속되어 있는 여러 개의 개별 점포 데이터 행(1:N) 리스트 전체를 계층적으로 깔끔하게 열람해 속성을 파악할 수 있음.
🎯 오늘의 요약 (Summary)
- 공공데이터 공간 변환: 공공데이터포털 등에서 확보한 ‘X, Y 좌표(경도, 위도)’ 포함 CSV 파일은 QGIS의
구분자로 분리된 텍스트추가 기능을 통해 점 레이어로 불러오고, Save As(다른 이름으로 저장) 를 통해 영구적인Shape(shp)파일 구조체로 재탄생시킬 수 있음. - Join (조인): 데이터가 1:1 또는 N:1로 매칭될 때 사용함. 도형 레이어의 속성 테이블 창 우측 방면에 다른 테이블의 컬럼 정보들을 하나로 합쳐서 단일 테이블처럼 분석에 활용할 수 있게 해줌.
- Relates (릴레이션): 데이터가 1:N의 종속 구조일 때 QGIS 프로젝트 속성에서 부모-자식 관계를 설정해주는 매핑 기능임. 식별 도구로 도형을 타겟팅 시 도형 1개와 연관된 십수 개의 상세 레코드 내역을 계층적으로 열람하며 데이터의 구조화된 속성을 확인할 때 매우 효과적임.
이러한 기초 데이터 생성 및 속성 결합 역량을 탄탄하게 다져놓으면, 공간 데이터와 전통 데이터를 결합하는 각종 복잡한 공간 빅데이터 분석을 주도적으로 손쉽게 핸들링할 수 있음!
Comments