0. 제목에 관하여

제목이 어려운데

> 서울시

> 행정동별

> 버스정류장 반경 300m 범위에 포함되는 면적

> 각 행정동별 전체 · 도시화지역 면적 대비 비율

을 계산한 거임



1. 왜 했냐

계기는 사실 별 거 아닌데

어제 올린 "서울시 버스정류장 백(?)지도" (https://arca.live/b/city/29096744?mode=best&p=1) 게시글의 댓글 중에

버스정류장 음영 지역에 관한 댓글이 있더라고


그걸 보니 문득

"서울시에서 버스정류장 서비스 음영 지역이 얼마나 있을까...?" 하는

단순한 의문이 들더라고


그래서 해봤음



2. 뭘 했냐

서울시의 버스정류장으로부터 300m 범위에 포함되는 면적의, 각 행정동별 전체 면적과 도시화지역 면적과의 비율을 계산한 거임

쉽게 설명하면 아래의 표 1과 같음


표 1. 각 수치별 분자/분모에 관한 설명
전체
면적
기준
(A)
(분자)버스정류장으로부터
반경 300m 범위의 면적 중,
서울동 내부에 포함되는 면적
도시화지역
면적
기준
(B)
(분자)버스정류장으로부터
반경 300m 범위의 면적 중,
도시화지역 내부에 포함되면서
동시에 서울동 내부에 포함되는 면적
(분모)서울동의 전체 면적(분모)서울동의 도시화지역 면적


300m는 일반적으로 제시되는 도보권인 300-400m에서 가져왔음


사용한 소프트웨어는 QGIS 3.4.6 (LTS)

사용한 데이터는

> 행정동 경계 : 통계청(국가공간정보포털) "행정동경계"

> 도시화지역 경계 : 통계청(국가공간정보포털) "도시화지역 경계"

> 하천망 : 국토지리정보원(국가공간정보포털) "실폭하천"

> 버스정류장 : 서울특별시(서울 열린데이터 광장) "서울특별시 버스정류소 위치정보"에서 XY좌표를 point로 변환함



3. 어떻게 했냐

> 전체 면적 기준의 경우

1) 각 데이터를 불러온다.

2) 우선, 버스정류장으로부터 300m 반경으로 buffer하여 범위를 만든다.

3) 2)의 데이터를 행정동 경계로 intersect한다(= 행정동 경계로 자른다).

4) 3)의 결과에서 각 feature(= 조각)당 면적을 구한다. 행정동 경계로 잘랐기 때문에 각 행정동별로 조각이 한 개씩 나온다.

5) 4)의 결과와 행정동 데이터를 join(=엑셀의 vlookup이라 생각하면 편함)하고, 행정동별 전체 면적을 구해 행정동별 전체 면적 기준 비율을 구한다. => 표 1의 (A) 완성


> 도시화지역 면적 기준의 경우

1) 각 데이터를 불러온다.

2) 우선, 도시화지역을 dissolve(=나뉘어져 있는 구역들을 하나로 합침)한다.

3) 2)의 데이터를 행정동 경계로 intersect한다. 이 때 역시 행정동 경계로 잘랐기 때문에 각 행정동별로 조각이 한 개씩 나온다.

4) 3)의 데이터를 행정동 데이터와 join하고 행정동별 도시화지역의 면적을 구한다.

5) 버스정류장으로부터 300m 반경으로 buffer하여 범위를 만든다. 전체 면적 기준에서 만든 데이터를 그대로 활용하여도 상관 없다.

6) 5)의 데이터를 3)의 데이터와 intersect하여 행정동별 도시화지역에 포함되는 버스정류장 300m 반경 구역을 구한다.

7) 6)의 각 feature당 면적을 구한다.

8) 7)의 결과와 행정동 데이터를 join하고, 4)에서 구한 면적과 6)에서 구한 면적을 통해 원하는 표 1의 (B)값을 구한다.



4. 결과가 어떻게 됐냐

> 전체 면적 기준의 경우





> 도시화지역 면적 기준의 경우





5. 그래서 뭘 얻어냈냐

> 지도 만들면서 재밌었음ㅋㅋㅋ. 끝.