Extracting GoPro GPS and other Telemetry Data
With its application in GIS
Every time I watch GoPro video on YouTube showing the telemetry data like speed, position, longitude, latitude, etc. (see the video below) it always raises the question “How to extract those data from GoPro to .csv file?”
Actually, there is a website that you can use to extract the telemetry data ( https://goprotelemetryextractor.com/free/). But, in this article, I’ll share with you the manual procedure on how to extract the telemetry data from the video, which is recorded by GoPro (GoPro Hero 7).
This article also relates to my last article about road crack detection as the extracted GPS location will point to the road crack location on the map. I don’t create the procedures by myself, as I only summarize references I found into simple steps to follow.
The links below are the references I found:
Link 1
Link 2
Step 1
Download FFmpeg (For Windows 10) -> Extract the file -> Rename it (FFmpeg-20191111–20c5f4d-win64-static to FFmpeg) -> Save the folder on Documents.
Step 2
Open C:\Users\lesuryana\Documents\ffmpeg\bin (adjust with your computer name) and copy the videos you had recorded into the bin folder.
Step 3
Type cmd on the folder location until it opens a command prompt window. Furthermore, type and run the command below:
ffmpeg -y -i xxxx.MP4 -codec copy -map 0:3 -f rawvideo xxxx.bin
*) fill the xxxx with your video’s name
If you do that properly, you will find a .bin file after the command executed.
Step 4
We will use a library created by Juan Irache to transform the .bin into .csv. But, because it is written in the Go language, we need to install the Go language first.
Download GoLang (For Windows 10) and install it.
Step 5
After the installation process, open C:\Go\src and create a new folder with the name github.com
Inside the github.com folder, create a new folder with the name JuanIrache.
Step 6
Open JuanIrache repository on https://github.com/JuanIrache/gopro-utils and download it as a zip.
Unzip the file on your download folder, and rename it (gopro-utils-master to gopro-utils). Save in C:\Go\src\github.com\JuanIrache.
Step 7
Open C:\Go\src\github.com\JuanIrache\gopro-utils\bin\gpmd2csv and you will find a file named gpmd2csv.go
Type cmd on the folder location until it opens a command prompt window. Furthermore, type and run the command below:
go build
After you run the command, it will create a gpmd2csv.exe
Step 8
For the last step, copy the .bin you created on Step 3 into C:\Go\src\github.com\JuanIrache\gopro-utils\bin\gpmd2csv
Type cmd on the folder location until it opens a command prompt window. Furthermore, type and run the command below:
gpmd2csv -i GH020095.bin -o GOPR0001.csv
If you do that properly, you will find four .csv files:
- GOPRO001-accl.csv
- GOPRO001-gps.csv
- GOPRO001-gyro.csv
- GOPRO001-temp.csv
GPS-Gyroscope Data Application with GIS
After we get the telemetry data, we will try to analyze the data with the help of the GIS application. Before that, we need to clean and merge some of the data.
With the new acquired GPS and Gyroscope data, we will try to analyze with a GIS application, and the results are shown by the figures below.
To get more understanding about what yaw is, we could see the picture below. Yaw is a movement around the z-axis, a roll is a movement around the x-axis, and a pitch is a movement around the y-axis.
By understanding what yaw is, from the Yaw analysis figure, we could see that there is an abnormality on a point where suddenly the yaw value grows fast. By referring back to the 2nd videos above (watch in the 1:34 minute -> 94105 milliseconds = 94 seconds), we could see that there is a sudden change in the GoPro position causing the sudden growth of yaw value.
The combination of tabular data, GIS application, and video will help us to see what others can't.
#Location Analytics
#ArcGIS