본문 바로가기
제품 리뷰

자전거 라이딩 GPS 데이터 분석

by 에일라거 2016. 4. 13.

자전거 타는 걸 좋아해서, 처음엔 그냥 타다가 언젠가부터 GPS 데이터를 기록하면서 타기 시작했다. 데이터가 좀 쌓여서 내가 어떤 식으로 타고 있나 한 번 볼려고...




깔끔한 인터페이스의 GeoTracker


일단 내가 사용한 앱은 구글의 MyTracks랑 위의 앱이다. 원래는 MyTracks만 쓰다가 올해 4월 30일부로 서비스를 종료한다고 해서..ㅠㅠ 진짜 잘 쓰고 있었는데 아쉽다. 그래서 앱을 이거저거 돌려봤었다. 스트라바(Strava), 엔도몬도(Endomondo), 트랭글, 런타스틱(Runtastic) 등등... 몇 개를 썼는데 위의 어플이 제일 깔끔하고 내 스타일이라 다 지우고 저걸로 결정.. ㅎㅎ 다른 앱들은 뭐 자꾸 이거저거 해보세요 우리꺼 좋아요 SNS에 올리세요 하면서 귀찮게 만들어서... 니들까지 왜 나한테 이래라 저래라야! 


MyTracks나 GeoTracker가 좋은 게 GPS 데이터를 따로 파일로 내보낼 수 있다는 것! 아래와 같다.


추출 형식

* MyTracks : gpx / kml / csv / tcx

* GeoTracker : gpx / kml


MyTracks에서 내보낸 gpx 파일엔 위도/경도/고도/시각 정보만 포함되어 있어서 속도/방위각 정보를 보려면 csv 형식으로 내보내면 좋고, GeoTracker에서는 csv를 지원하지 않는 대신 gpx 파일에 속도/방위각 정보까지 모두 포함되어 있다.


분석

실제 데이터를 보자. 


파이썬 등 프로그래밍 언어를 사용하면 데이터에 접근이 더 쉽겠지만 아 그런건 모르겠고 그냥 되게 해줘! 라고 하면 그냥 csv export 가능한 앱을 쓰자. (MyTracks 등)



이제까지 기록된 건 요정도.. 사실 더 많았던 거 같은데 아마 중간에 이 앱 저 앱 쓰다가 보니까 데이터가 누락된 거 같다. 그래도 장거리가 세개에 중거리 하나 있으니까 뭐 그럭저럭 되겠지 싶어서 해봤다.


지도

대략 탔던 코스들... 제일 힘들었던 건 역시 새재자전거길 ㅋㅋㅋ 처음 갔을 때 진짜 죽을 뻔



통계

먼저 히스토그램 몇개를 보자. 구간은 100개, 세로축은 구간의 비율 (%) 이다.



제일 중요한 속도 히스토그램! 데이터 노이즈가 너무 심해서 LPF (Low Pass Filter)를 좀 심하게 걸었다는 걸 먼저 말해두고... 최고속도도 사실 60 kph가 넘는데 필터가 걸려서 60 kph 넘는 데이터들은 짤려나갔다. 대략 20 kph 근처에서 제일 많이 탄다. 생각보다 느리다는 느낌... 역시 감각은 그다지 믿을게 못 되나보다. 평소에 기록하면서 간간히 속도 볼 때는 항상 25 kph 정도는 됐었던 거 같은데 실제로는 그렇지 않았나보다.



고도는 우리나라가 그렇게 고산지대가 아닌지라, 해발고도 200m 내에서 대체로 모두 탔고, 아무래도 강변을 탄 게 많이 기록돼 있어서 100m 이내에 봉우리가 두개 솟아있는 듯..? 쩌기 600m 근처까지 데이터가 있는 건 이화령 때문에. ㅋㅋ 다음엔 대관령이다!!



그다음엔 경사도 그래프... 양수는 오르막, 음수는 내리막이다. 이건 사실 믿을 건 못되지만 걍 재미로 보자. 왜냐하면...


경사도라는 건 다음과 같이 구해진다.


수직이동거리/수평이동거리*100 (%) 


경사도 표지판


위의 경사도 표지판이 이런 식으로 구한 경사도를 %로 나타낸 것. 이때 수직이동거리와 수평이동거리는 각각 다음과 같다.


* 수직이동거리 = 시간당 고도차이

* 수평이동거리 = 초당 이동거리 (속도) 


앞서 말했듯이 속도는 노이즈 투성이. 근데 고도는 그거보다 더했으면 더했지 절대 덜하지 않다...


노이즈를 노이즈로 빼고 나누고 막 그러니까 엉망진창.... ㅋㅋㅋㅋ 계산을 하고 나니까, 문득 예전에 교수님 앞에서 가속도 센서를 이용해서 가속도를 적분해서 거리를 구하겠다고 했다가 개처럼 깨진 기억이 난다. 가속도 센서가 노이즈가 얼마나 심한데 그걸 적분하고 또 적분해서 거리를 구하냐 너는 생각이 있는 애냐 없는 애냐 요새 뭐 딴생각하냐... ㅋㅋㅋㅋㅋㅋ ㅠㅠ 어휴 지금도 이불킥.. 진짜 아오!! 이거 쓰다가 또 생각났네 으아아아아아!!!


그... 그래서 위의 경사도는 사실 최대 경사도가 이화령 내리막에서 10% 였을 때일 텐데 데이터에는 경사도 40%도 막 나오고 그런다. ㅋㅋㅋㅋ 말이 돼?? 히말라얀줄...  쨌든 비율로만 보면 얼추 맞긴 한데 뭐 딱히 의미는 없다. 나같은 게 당연히 평지에서 제일 많이 타지.... ㅋㅋㅋ



마지막으로 고도차에 따른 속도 분포 그래프. 사실 이게 제일 재미있었는데... 원래는 경사도에 따른 속도 분포를 할려다가, 아까 말했듯이 경사도는 너무 노이즈가 심해서 못 써먹겠고, 단순히 기록된 데이터들 사이의 고도차이와 속도의 상관관계를 보았다. 고도차가 양수이면 오르막, 음수이면 내리막이며, 세로축의 단위는 km/h 이다. 고도차 데이터도 노이즈가 심하기 때문에 단순히 가볍게 상대적인 크기 비교 정도로만 생각하는 게 나을 듯...


전체적으로 반비례 그래프의 형태를 띈다. 당근... 오르막에서 느리고 내리막에서 빠르다. 따로 구한 전체 라이딩의 평속은 20.4 km/h 이며 위의 히스토그램에서 평지에서 자전거를 가장 많이 탄다고 했으므로 그 영역에 데이터가 집중되어 있다. 역시나 이화령 다운힐/업힐 구간의 데이터가 양 끝에서 독자적인 영역을 구축하고 있고...ㅋㅋ 저런 extreme한 구간이 데이터를 더 재미있게 만든다. 좌측에 심한 내리막에서 속도가 0에 가까운 부분들은 아마 노이즈 때문에 제대로 계산되지 않은 부분인 거 같다. 저런 신나는 내리막에서 저렇게 느리게 움직일 리가 없지... 무시!


기록된 총 거리 621.79 km. 아직 갈 길이 멀다... 올해도 슬슬 자전거 철이 되었으니 자전거길 시동 걸어야지 ㅋㅋ

댓글