공간 결합(Spatial Join) 실행

경고

This tutorial is now obsolete. A new and updated version is available at 공간 결합 수행 (QGIS3)

공간 결합은 GIS의 고전적인 문제로써 공간 관계를 바탕으로 한 레이어에서 다른 레이어로 속성을 전달하는 것입니다. QGIS에서 이 기능은 위치에 따라 속성 결합, Join Attributes by Location 툴을 통해 가능합니다.

과업 개요

여기서는 2개의 레이어를 사용하는데, 뉴욕시의 자치구 경계 shapefile과 뉴욕시에서 요양원의 위치 shapefile입니다. 각 자치구의 전체 요양원 수용력을 찾는데 공간 결합 기법을 사용할 것입니다.

기타 스킬

  • 레이어의 속성표에서 열을 삭제합니다.

데이터 획득

뉴욕시 오픈 데이터 포탈 `NYC Open Data Portal <https://data.cityofnewyork.us/>`_은 뉴욕시의 뉴욕시의 훌륭한 무료 데이터 소스입니다.

  1. 포털에서 내보내기 옵션을 이용하여 자치구 경계 Borough Boundaries 압축파일을 다운로드합니다.

../_images/1197.png
  1. 포털에서 내보내기 옵션을 이용하여 요양원 Nursing Homes 압축파일을 다운로드 합니다.

../_images/2161.png

편리하게도, 데이터셋을 아래 링크로에서 바로 다운로드하실 수 있습니다.

nybb_12c.zip

OEM_NursingHomes_001.zip

과정

  1. 메뉴 레이어 –> 벡터 레이어 추가 :menuselection:`Layer –> Add Vector Layer`로 갑니다. 다운로드한 ``nybb_12c.zip``파일을 찾아서 열기 :guilabel:`Open`를 선택합니다.

../_images/3101.png
  1. Select the layer nybb.shp and click OK.

../_images/464.png
  1. 또다른 압축파일인 ``OEM_NursingHomes_001.zip``에 대해 3번과 4번 단계를 되풀이하고 ``OEM_NursingHomes_001.shp``레이어를 불러옵니다. 일단 두개의 레이어가 불러들여지면 ``OEM_NursingHomes_001``레이어를 우측클릭하고 속성 테이블 열기 :guilabel:`Open Attribute Table`를 선택합니다.

../_images/558.png
  1. 각 객체에서 사용가능한 속성을 살펴봅니다. 각 자치구에서 전체 요양원의 수용력을 계산하는 것이 과업이므로 경계 레이어와 결합할 수 있는 Capacity 속성 을 사용할 수 있습니다.

../_images/656.png
  1. 메뉴 벡터 –> 데이터 관리 도구 –> 위치에 따라 속성 결합 :menuselection:`Vector –> Data Mangement Tools –> Join attributes by location`으로 갑니다.

../_images/755.png
  1. 대상벡터레이어 Target vector layer`는 속성을 추가하고자 하는 것입니다. 이 예제에서 이것은 자치구 경계 ``nybb``레이어가 될 것 입니다. 벡터레이어조인 :guilabel:`Join vector layer 은 요양원 ``OEM_NursingHomes_001``레이어가 될 것입니다. 요양원 수용력의 합계가 필요하므로 교차하는 모든 객체 속성 요약 이용 Take summary of intersecting features 을 선책하고합계 Sum 을 선택합니다. 출력파일은 ``nyc_borough_join.shp``로 입력합니다. 출력테이블 Output table 은 모든레코드남기기 :guilabel:`Keep all records``를 선택합니다.

../_images/853.png
  1. 일단 과정이 종료되면 레이어를 TOC에 추가하고자 묻는다면 Yes 를 선택합니다. 새로운 레이어 ``nyc_borough_join``는 ``OEM_NursingHomes_001``레이어로부터 공간적으로 결합된 속성을 따라 ``nybb``레이어로 부터 객체를 갖게 됩니다. 레이어를 우측클릭하고 속성 테이블 열기 :guilabel:`Open Attribute Table`를 선택합니다.

../_images/952.png
  1. 속성 테이블에서 SUMCapacit 열을 보게될 것입니다. 이것은 각 자치구 객체내에 해당하는 요양원의 **Capacity**속성의 총합입니다.

../_images/1060.png
  1. 이것이 찾고자하는 답입니다. 그러나 결과에서 원하지 않는 여분의 열이 있습니다. 결과를 깔끔하게 정리하십시오. 편집 전환 :guilabel:`Toggle editing`단추와 칼럼삭제 :guilabel:`Delete column`단추를 클릭합니다.

../_images/1198.png
  1. 속성삭제 :guilabel:`Delete Attributes`다이알로그에서 모든 칼럼을 선택하기 위하여 :kbd:`Control-A`른 누릅니다. 다음 :kbd:`Control`키를 누른 채 유지하고자 하는 칼럼을 선택해제합니다. :guilabel:`OK`를 클릭합니다.

../_images/1262.png
  1. 속성 테이블에서 변경된 내용을 저장하기 위하여 다시 편집전환 :guilabel:`Toggle editing`을 클릭합니다.

../_images/1359.png
  1. QGIS 캔버스로 되돌아 가서, 결과 파일이 각 자치구 객체에서 원하던 속성을 갖고 있는지 객체확인 Identify 툴을 이용합니다.

../_images/1456.png

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)