공간 결합(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/>`_은 뉴욕시의 뉴욕시의 훌륭한 무료 데이터 소스입니다.
포털에서 내보내기 옵션을 이용하여 자치구 경계 Borough Boundaries 압축파일을 다운로드합니다.

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

편리하게도, 데이터셋을 아래 링크로에서 바로 다운로드하실 수 있습니다.
과정¶
메뉴 레이어 –> 벡터 레이어 추가 :menuselection:`Layer –> Add Vector Layer`로 갑니다. 다운로드한 ``nybb_12c.zip``파일을 찾아서 열기 :guilabel:`Open`를 선택합니다.

Select the layer
nybb.shp
and click OK.

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

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

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

대상벡터레이어 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``를 선택합니다.

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

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

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

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

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

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

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