import psycopg2 conn = psycopg2.connect( 'host=localhost port=5432 dbname=postgres user=postgres password=postgres', options='-c search_path=sbd' ) conn.set_session(autocommit=True) cur = conn.cursor()
import pandas as pd cur.execute( f''' select zone_id, level, level_description, public.st_area(geometry) area, public.st_perimeter(geometry) perimeter from expected_flooding_zone ''' ) ef_zone = pd.DataFrame( cur.fetchall(), columns=[ col[0] for col in cur.description ] )
ef_zone.describe(include='all')
- area(구역 면적)
- 최소값은 0.01㎡보다 작고 최대값은 81만㎡가 넘어 차이가 매우 크다.
- 평균은 7,860㎡인데, 중위값은 443㎡으로 차이가 매우 크다. 극대값으로 인해 평균이 크게 상승한 것 같다.
- perimeter(구역 둘레)
- 최소값은 0.3m이고 최대값은 27km여서 차이가 매우 크다.
- 평균은 310m인데, 중위값은 92m로 평균이 중위값보다 확연히 크다. 극대값으로 인해 평균이 상승한 것 같다.
import matplotlib.pyplot as plt fig, axs = plt.subplots(1, 2, figsize=(8, 6)) axs[0].hist(ef_zone[ef_zone.area <= 2004].area) axs[1].hist(ef_zone[ef_zone.perimeter <= 227].perimeter) plt.show()
- area와 perimeter의 3분위수(3-quantile) 미만의 히스토그램을 보면, 두 변수 모두 0에 쏠려있다(left-skewed). = 왜도(skewness)가 양의 값을 가진다.
- 상대적으로 area의 쏠림이 더 심하다. = 첨도(kurtosis)가 더 크다.
import pandas as pd cur.execute( f''' select level, count(*) count, sum(public.st_area(geometry)) area from expected_flooding_zone group by level order by level ''' ) ef_zone = pd.DataFrame( cur.fetchall(), columns=[ col[0] for col in cur.description ] )
ef_zone
import matplotlib.pyplot as plt plt.bar( ef_zone['level'], ef_zone['count'] ) plt.xlabel('level') plt.ylabel('count') plt.show()
- level 개수 합계는 3과 2가 압도적으로 많다.
plt.bar( ef_zone['level'], ef_zone['area'] ) plt.xlabel('level') plt.ylabel('area') plt.show()
- level 면적 합계는 2가 압도적으로 많다.
plt.bar( ef_zone['level'], ef_zone['area'] / ef_zone['count'] ) plt.xlabel('level') plt.ylabel('area') plt.show()
- level 면적 평균값은 1 > 2 > ... 순으로 가장 크다.
- level 3보다 4가 평균 면적이 높은 것이 특징이다.
- 특정 지역에 집중되어 분포한다.
- 한강과 하천 보다는 산지와 연관되어 보인다.
지역별 구역 개수
※ label: 구역개수(level 최솟값~level 최댓값)
- 집중 지역 : 강남-서초-동작, 구로-양천-강서, 종로-서대문
- 송파구에는 하나도 없는데 붙어있는 강남구가 제일 많다는 점이 흥미롭다.
- level이 7,8인 높은 수준의 침수예상구역도 대체로 집중 지역에 해당된다.
지역별 구역 면적 합계
※ label: 면적 합계(면적 최솟값~면적 최댓값)
- 강남구가 압도적으로 많고, 강서구와 마포구는 개수에 비해 면적 합계가 큰 지역이다.
- 앞서 개수로 보았을 때 보다 집중지역에 대한 차별성이 더 돋보인다.
수서역 일대
- 수서역 중심의 사거리를 기준으로 모든 방향으로 형성됨
- 수서역 북쪽으로 수심이 깊은 지역
대치역 일대
- 대치역 중심으로 형성되어 있으며 수심이 깊은 지역
- 대청역과 탄천 사이에도 존재함
삼성(무역센터)역 일대
- 탄천 주변으로 수심이 깊은 지역
- 삼성(무역센터)역과 봉은사역 각각 존재함
압구정로데오역 일대
- 한강변에서 압구정동-신사동으로 이어지는 구역
- 한강변에서 청담동으로 이어지는 구역
서초동 일대
- 교대(법원검찰청)역 - 강남역을 연결하는 도로를 중심으로 사방으로 이어져 분포함
- 남-북 방향의 도로를 따라 길게 이어지는 형상
이수역 일대
- 이수역을 중심으로 대로보다 이면도로 일대에 분포하고 있음
방화동-마곡동 일대
- 김포공항 사거리 중심으로 넓게 분포하고 있으며, 수심이 깊은 구역이 있음
- 마곡나루역 중심으로 넓게 분포하고 있으며, 수심이 깊은 구역이 있음
화곡동 일대
- 화곡동에서 등촌동으로 이어지는 길고 넓은 구역
화곡고가 사거리 일대
- 화곡고가 사거리를 기준으로 동서로 길게 형성된 구역
- 사거리 인근 국회대로에는 수심이 매우 깊음
신정동 일대
- 주로 도로를 따라서 분포함
개봉동 일대
- 개봉동 전반적으로 분포하고 있음
- 경인로 주변으로 수심이 깊음
부일로 일대
- 부일로 중심으로 두 개의 구역이 분포하고 있음
망원역-홍대입구역 일대
- 망원역에서 홍대입구역으로 이어지는 매우 넓은 면적의 구역
- 지형적인 특성을 크게 받지 않고 고르게 분포하는 편
경복궁(정부서울청사)역 일대
- 경복궁역을 포함한 넓은 면적에 해당하는 구역
- level은 대부분 1로 구성되어 수심이 깊지는 않음
종로5가역 일대
- 종로5가역과 종로(도로명)를 따라 분포하고 있음
- 청계천에서 올라오는 구역의 수심이 깊은 편