-
데이터 파일 배치:
- data 파일이 커 압축파일로 올리게 되었습니다.
- 그러므로 해당 압축 파일을 풀고
- 압축을 푼 디렉터리 안에 있는 파일을
- 다시 data 디렉터리에 배치해주시면 감사하겠습니다!
-
Python 가상 환경 설정:
- Mac/Linux:
python -m venv venv source venv/bin/activate - Windows:
python -m venv venv venv\Scripts\activate
- Mac/Linux:
-
의존성 설치:
pip install -r requirements.txt
-
애플리케이션 실행:
python app.py
.
├── data/ # 원본 및 전처리된 데이터 파일
│ ├── metr-la.modified.h5 # LA 교통 속도 데이터
| ├── metr-la.modified.csv # LA 교통 속도 데이터
| ├── graph_sensor_locations.csv #센서 위치 데이터
│ ├── Filtering.csv # 교통 사고 데이터
| ├── predicted.csv # stgcn에 쓸 속도 데이터
│ ├── STGCN_metr-la.pt # 학습한 파일
│
├──data_processing/
│ ├── convert.py #데이터 변환 할 파일
│
├── templates/ # 시각화를 위한 HTML 템플릿
│ ├── analysis_collision.html # 단일 사고 분석
| ├── analysis_prediction.html # STGCN 활용 page
│ ├── index.html # 홈 페이지 구성
|
├── static/ # CSS, JS 등 정적 파일
│ ├──cs/
| │ ├──analysis_copy.css #analysis_prediction.html에 대한 css
│ │ ├──analysis_.css #analysis.html에 대한 css
│ │ ├──style.css #index.html에 대한 css
│ ├──js/
│ │ ├──analysis_predict.js
│ │ ├──analysis.js
│ │ ├──analysis2_predict.js
│ │ ├──analysis2.js
│ │ ├──script.js
├── app.py # API 서버
├── predict.py # STGCN 관련 파일
├── predict2.py # STGCN 관련 파일
├── requirements.txt # 의존성 패키지 리스트
└── README.md # 프로젝트 설명 파일
-
백엔드: Flask를 사용하여 API를 제공합니다.
- 역할: 데이터베이스와 통신하여 데이터를 가공하고, 클라이언트에 JSON 형태로 응답을 전달합니다.
-
프론트엔드: HTML, CSS, D3.js로 구현되었습니다.
- 역할: 데이터를 시각화하고 사용자가 지도와 그래프를 통해 데이터를 탐색할 수 있도록 지원합니다.
-
홈 페이지:
- 월별, 일별, 시간별로 충돌에 대한 통계를 확인할 수 있습니다.
- 왼쪽 지도에서는 통계 결과에 해당하는 충돌 지점들을 확인할 수 있습니다.
-
충돌 지점 상세 분석:
- 충돌 지점을 클릭하면 해당 충돌 정보와 관련된 분석 페이지가 나타납니다.
2-1. 타임슬라이드 기능:
- 충돌 2시간 전부터 6시간 후까지의 데이터를 타임슬라이더를 통해 확인할 수 있습니다.
- 재생 및 정지 버튼을 통해 5분 단위로 변화하는 데이터를 실시간으로 확인할 수 있습니다.
2-2. 교통 흐름 시각화:
- 타임슬라이더에 표시된 시간에 따른 센서 측정 속도값을 기반으로 지도에 교통 흐름 정보가 색상으로 표시됩니다.
2-3. 최단 경로 계산:
- 지도에서 출발지와 목적지를 설정하여 도로 근처 센서를 경유하는 소요 시간을 가중치로 한 최단 경로를 계산합니다.
- 최단 경로는 타임슬라이더 변화에 따라 자동으로 업데이트됩니다.
2-4. 속도 비교 그래프:
- 충돌 지점의 사용자가 지정한 반경 내 센서들의 평소 평균 속도와 충돌 후 6시간 동안의 평균 속도를 비교한 그래프가 표시됩니다.
- 평소 평균 속도는 파란선, 충돌 후 평균 속도는 빨간선으로 나타납니다.
- 사용자가 반경을 직접 지정하여 반경에 따른 통계 정보를 확인할 수 있습니다.
-
충돌 예측 기능:
- 시작 페이지에서 충돌 예측 탭을 클릭하여 날짜, 시간, 센서 근처 충돌 위치를 지정해 예측 데이터를 생성할 수 있습니다.
- 예측 데이터는 충돌 시점으로부터 6시간 동안의 센서별 속도 정보를 포함하며, 분석 페이지와 동일한 방식으로 데이터를 확인할 수 있습니다.
- 뉴욕시 교통 사고와 그 영향을 시각화하고 분석하는 VA 시스템 개발.
- 사고 발생 전후 교통 패턴 변화를 시각적으로 표현하고 분석하는 도구 개발.
- 사고 영향의 시공간적 확산을 예측 및 시각화하는 기능 구현.
-
데이터 분석 통찰력:
- 충돌 이후 교통 속도 변화 분석을 통해 특정 시간대(6시간 이내)에 발생하는 교통 흐름 변화를 확인할 수 있습니다.
- 평소 데이터(3월부터 6월까지의 평균)와 비교하여 충돌의 영향을 정량적으로 파악하고, 이를 통해 지역별 사고 후 회복 시간과 교통 흐름 변화 패턴을 도출합니다.
-
시각화 도구의 정보 전달력:
- D3.js를 활용한 동적 시각화를 통해 데이터 변화를 직관적으로 확인할 수 있도록 설계했습니다.
- 시간대별 교통 속도 변화와 충돌 전후 비교를 인터랙티브 그래프로 표현하여 사용자가 데이터를 쉽게 이해하고 활용할 수 있도록 했습니다.
- 지도와 그래프를 연동해 범위별 데이터 필터링 및 충돌 영향 지역 파악을 가능하게 하고, 사용자 친화적인 인터페이스를 제공합니다.
-
예측 모델의 성능:
- 사고 데이터를 활용하여 충돌 발생 후 6시간 동안의 평균 속도 변화를 예측하는 모델을 설계했습니다.
- 기본적인 예측 모델을 구축하여 정확도를 측정하고, 모델이 제공하는 정보의 실질적 활용 가능성을 검증했습니다.
- 예측 모델은 향후 교통 혼잡 패턴 예측 및 사고 대응 시스템의 핵심 기반으로 확장 가능합니다.
-
시스템의 확장성:
- 시스템 구조는 새로운 데이터(예: 추가 충돌 데이터, 센서 정보)를 쉽게 통합할 수 있도록 설계되었습니다.
- API 기반의 모듈형 설계와 데이터 처리 파이프라인을 통해 다양한 데이터 소스와의 연동 및 기능 확장이 용이합니다.
- 교통 데이터 외에도 날씨, 도로 상태 등의 추가 요인을 결합하여 모델 성능을 개선하거나 다른 지역으로 시스템을 확장할 수 있습니다.
-
프로젝트 결과물의 실용성:
- 교통 관리 기관에서 사고 후 교통 흐름 회복 시간을 예측하고 혼잡 최소화를 위한 전략 설계에 활용할 수 있는 실질적 도구를 제공합니다.
- 정책 설계 외에도 시뮬레이션 도구로 사용 가능하며, 교통 흐름 데이터를 분석해 운영 효율성을 개선할 수 있는 실용성을 갖추고 있습니다.
-
정책 결정에 대한 기여도:
- 분석 결과를 통해 지역별 사고 영향 분석 및 회복 시간 예측에 기초한 효과적인 교통 관리 정책 설계가 가능합니다.
- 특정 지역에서 충돌 후 혼잡이 심화되는 시간대를 예측하여 대체 경로 제공이나 교통 분산 전략을 제안할 수 있습니다.
- 장기적으로는 사고 예방 및 구조 개선을 위한 정책적 제언을 도출할 수 있습니다.