17.14. 첫 번째 분석 예제
참고
이 강의에서는 사용자가 공간처리 프레임워크 요소에 더 익숙해질 수 있도록 툴박스만을 사용해서 실제 분석 작업을 수행할 것입니다.
필요한 모든 설정을 끝내고 외부 알고리듬을 사용할 수 있으므로, 공간 분석을 수행할 수 있는 강력한 도구를 갖게 되었습니다. 이제 실재 세계의 데이터를 써서 광범위한 예제를 풀어볼 때가 되었습니다.
존 스노우(John Snow)가 1854년 자신의 획기적인 작업 에 사용했던 유명한 데이터셋을 이용해서 흥미로운 결과를 얻을 것입니다. 이 데이터셋을 분석하는 작업은 꽤 명확한 편으로 제대로 된 결과물 및 결론을 얻는 데 복잡한 GIS 기술이 필요하지는 않지만, 이 공간 문제들을 서로 다른 처리 과정 도구들을 써서 어떻게 분석하고 해결할 수 있는지 알 수 있는 훌륭한 방법입니다.
이 데이터셋은 콜레라에 의한 사망자 수 및 펌프 위치를 담고 있는 shapefile과 TIFF 포맷으로 렌더링된 OSM 맵을 포함합니다. 이 강의에 해당하는 QGIS 프로젝트를 여십시오.

먼저 Pumps 레이어의 보로노이 다이어그램(Voronoi diagram, 일명 티센(Thiessen) 폴리곤)을 계산해서 각 펌프의 영향 범위를 계산해야 합니다. 이 작업에 Voronoi Diagram 알고리듬을 사용할 수 있습니다.

꽤 쉬운 작업이지만, 벌써 흥미로운 정보를 알려주고 있습니다.

명백히 보이듯이, 폴리곤 중 하나 안에 사망자 대부분이 존재합니다.
좀더 정량적인 결과를 얻으려면 각 폴리곤에서의 사망자 수를 세어볼 수 있습니다. 각 포인트가 사망자가 발생한 건물을 나타내고 사망자 수는 포인트의 속성에 저장돼 있으므로, 그냥 포인트만 세어서는 안 됩니다. 숫자에 가중치를 부여해야 하므로, Count points in polygon (weighted) 도구를 사용할 것입니다.

새 필드에 DEATHS 라는 명칭을 부여하고, 가중치 항목에 COUNTS 필드를 이용합니다. 그 결과 생성되는 테이블은 첫 번째 펌프에 해당하는 폴리곤에서의 사망자 수가 다른 폴리곤들보다 훨씬 많다는 사실을 분명히 반영하고 있습니다.

Cholera_deaths 레이어의 각 포인트와 Pumps 레이어의 포인트 사이의 의존성을 시각화하는 또다른 훌륭한 방법은 각 Cholera_deaths 포인트에서 가장 근접한 Pumps 포인트로 라인을 그려보는 것입니다. Distance to closest hub 도구를 다음과 같이 설정해서 이 작업을 할 수 있습니다.

결과는 다음과 같습니다.

중앙에 있는 펌프의 라인 개수가 가장 많지만, 이것은 사망자 수가 아니라 콜레라가 발생한 위치의 개수라는 점을 잊어서는 안 됩니다. 분명 결과를 대표할 수 있는 파라미터이긴 하지만 일부 위치의 사망자 수가 다른 곳보다 더 많을 수 있다는 사실을 고려하지 않고 있습니다.
밀도 레이어로도 어떤 일이 일어나는지를 명확하게 시각화할 수 있습니다. Kernel density 알고리듬을 써서 밀도 레이어를 생성할 수 있습니다. 입력 레이어에 Cholera_deaths 레이어를, 가중치 항목에 COUNT 필드를 사용하고, 반경을 100으로 설정한 다음 streets 래스터 레이어의 범위 및 셀 크기를 사용하면 다음과 같은 결과를 얻을 수 있습니다.

산출물의 범위를 설정하기 위해 직접 입력할 필요가 없다는 사실을 기억하십시오. Output extent… 항목 오른쪽에 있는 버튼을 클릭한 다음 Use layer/canvas extent 를 선택하면 됩니다.

그리고 도로 래스터 레이어를 선택하면 해당 레이어의 범위가 자동적으로 텍스트 란에 채워질 것입니다. 셀 크기도 동일한 방법으로, 해당 레이어의 셀 크기를 선택해서 설정해야 합니다.
Pumps 레이어와 결합하면, 콜레라 발생 지역에서 명확하게 사망자 수가 최대 밀도를 보이는 곳에 펌프 하나가 있다는 사실을 알 수 있습니다.