Prologue
오늘한 것: PostgreSQL 2문제, 필요한 데이터 정리, 910번 버스 구간별 걸린시간 데이터 획득
910번 버스 걸리는 시간 예측 시 필요 데이터
- 구간 거리
- 구간 걸린 시간
- 멈췄다가 출발 -> 출발 시간
- 점점 빨라졌다가 어느 정도 속도가 되면 유지 -> 평균 이동속도 (없음) -> 예측
- 도로에 차가 많다면 속도를 느리게 하거나 심할 경우 멈춰야 함 -> 노선 위치의 도로 교통 혼잡도
- 어린이 구역
- 신호등에 걸리면 멈춰야 함 -> 신호등 위치 및 파란불 지속 시간 및 다시 파란불 켜지는데 걸리는 시간-구미 경찰서(교통 정책과, 시설팀)
- 정류장에 도착하면 멈춰야 함(손님이 없다면 그냥 지나칠 수도 있음) -> 정류장서 멈추는 횟수(
- 손님이 전부 탑승하고 문을 닫고 출발하는 동안 대기 시간이 발생 -> 정류장에서 대기 시간
- 멈췄다가 출발 -> 다음 정류장에서 출발 시간
버스의 평균 이동속도 구하기
실패 -> 도착 시간으로 추측
다른 지역의 평균 속도는 있음. 그러나 지역별로 차이가 있기 때문에 활용 불가
2021년 10월 2일-11월 10일 버스 도착, 출발 시간 로그 데이터로 거리를 시간으로 나눠서 평균 시속 구하기
2021년 버스 로그 데이터 확인
진행하면서 체크
- 모든 로그 데이터 하나의 DF로 합치기 성공
- 데이터 가독성을 위해 한글명으로 컬럼명 바꾸기
- 910번 버스 데이터만 확인
현재 노선과 2021년 노선이 다름..
전처리
- 총 1,225,348개 행 8개 열의 데이터
- 결측치: 정류장_이름, 11505개 행
- 삭제: 시간은 다른데 정류장의 X,Y 좌표는 같아 잘못된 정보이며 좌표로 정류장 매핑도 불가함
- 1,213,843개 행 데이터로 수정됨
구간별 걸린 시간 구하기
910번 노선의 걸린 시간 매핑
2021년 자료에서 걸린 시간을 구할 수 있는 것은 구하고
구할 수 없는 것 -> 구미시청에 자료 요청 -> 네이버 지도 과거 도착 시간으로 매핑
- 다음 정류장의 도착시간과 현재 정류장의 출발시간을 빼서 구간_걸린시간을 구함
- 구간_걸린시간을 구했을 때 1시간이 넘는 이상치 확인
910번 매핑 결과
63개 구간 중 8개 노선의 구간_걸린시간을 구할 수 없었음
구간_걸린시간의 데이터 무결성 확인
구간_걸린시간이 실제 버스가 이동했을 때 걸릴만한 시간일까?
원평 - 금오, 4초, 176m
금오 - 송원, 13초, 276m
- 송원 - 터미널, 29초, 559m
도착시간 -> 도착시간으로 가야할 듯??
버스가 멈춰서 다음 정류장까지 멈추는 시간을 구간_걸린시간으로 정의해야 할 듯
왜냐하면 승객이 탑승하는 시간까지 고려해야 함
버스가 정류장에 멈춘 후 -> 다음 정류장까지 멈추는 시간
그러면 처음 차고지에서 출발할 때는?? 어차피 걸린 시간이 승객 타는 시간 없이 측정되므로 문제 없음
우리가 결국 얻고자하는 것??: node-node 사이의 걸린시간을 구해서 최종적으로 a 노드에서 랜덤 노드까지 이동하는데 얼마나 걸리는지 구하기. 근데 도착시간 ~ 출발시간 사이의 시간을 고려하지 않으면 그만큼 시간이 빵꾸가 나게됨
'Today I Learned' 카테고리의 다른 글
[TIL] 25.03.15 구미버스 도착시간 데이터 요청 (0) | 2025.03.15 |
---|---|
[TIL] 25.03.13 API로 불러온 데이터 하나로 합치기 (0) | 2025.03.13 |
[TIL] 25.03.11 버스 문제점 도출, 정류장 간 구간 거리 계산 (0) | 2025.03.11 |
[TIL] 25.03.10 Postgre SQL과 프로젝트 시작 땡땡땡 (0) | 2025.03.11 |
[TIL] 25.03.07 Postgre 코드 테스트 복기(진짜 시험 아님) (1) | 2025.03.07 |