[2022 공간빅데이터 경진대회] 4-1. 침수예상구역 분석

Bob Park·2022년 9월 29일
0

이번 글은

분석 요약

  • 침수예상구역(이하 '구역')의 면적(area)과 둘레(perimeter)는 왼쪽으로 치우친 분포(left-skewed)이며, 면적의 첨도(kurtosis)가 높다.
  • 구역의 level 별 개수는 3과 2가 압도적으로 많고, 면적 합계는 2가 압도적으로 많다.
    • 구역별 평균 면적은 level 1,2가 많고 점점 감소하는 편이다(단, level 4 > level 3).
  • 구역의 지역별 분포를 보면 특정 지역(강남, 강서, 마포 등)에 집중되어 있다.
    • 개수로는 '강남 > 동작 > 구로 > 서초 > 양천 > 종로 등' 순이다.
    • 면적 합계로는 '강남 > 강서 > 마포 > 종로 > 서초 > 중구 등' 순이다.
  • 분석에 있어 구역의 개수 보다는 구역의 면적이 더 큰 영향을 줄 것으로 예상된다.
  • 집중 지역을 탐색해본 결과, 특정 도로나 지하철역 인근으로 수심이 깊거나 넓은 구역이 형성된 경우가 많다.

DB 연결

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)가 더 크다.

level 단위 통계

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

level 별 개수

import matplotlib.pyplot as plt

plt.bar(
  ef_zone['level'],
  ef_zone['count']
)
plt.xlabel('level')
plt.ylabel('count')
plt.show()

  • level 개수 합계는 3과 2가 압도적으로 많다.

level 별 면적 합계

plt.bar(
  ef_zone['level'],
  ef_zone['area']
)
plt.xlabel('level')
plt.ylabel('area')
plt.show()

  • level 면적 합계는 2가 압도적으로 많다.

level 별 면적 평균

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가역과 종로(도로명)를 따라 분포하고 있음
  • 청계천에서 올라오는 구역의 수심이 깊은 편
profile
가치를 만드는 데이터 분석가

0개의 댓글