Quick Start¶
Basic Usage¶
Extract GPS data from a GoPro video:
from gpmf import io, gps
# Extract GPMF stream from video file
stream = io.extract_gpmf_stream("GOPR0001.MP4")
# Extract GPS blocks
gps_blocks = list(gps.extract_gps_blocks(stream))
# Parse GPS data from blocks
for block in gps_blocks:
gps_data = gps.parse_gps_block(block)
print(f"Lat: {gps_data.latitude[0]:.6f}, Lon: {gps_data.longitude[0]:.6f}")
Export to GPX¶
Export GPS track to GPX format for use in Strava, Garmin Connect, etc.:
import gpxpy
from gpmf import io, gps
# Extract and parse GPS data
stream = io.extract_gpmf_stream("GOPR0001.MP4")
gps_blocks = [gps.parse_gps_block(b) for b in gps.extract_gps_blocks(stream)]
# Create GPX
gpx = gpxpy.gpx.GPX()
track = gpxpy.gpx.GPXTrack()
gpx.tracks.append(track)
segment = gps.make_pgx_segment(gps_blocks)
track.segments.append(segment)
# Save to file
with open("track.gpx", "w") as f:
f.write(gpx.to_xml())
Visualize GPS Track¶
Plot GPS track on an interactive map:
from gpmf import gps_plot, io
# Extract stream
stream = io.extract_gpmf_stream("GOPR0001.MP4")
# Plot track on map
gps_plot.plot_gps_trace_from_stream(
stream,
output_file="gps_track.png",
title="My GoPro Track"
)
Command Line Interface¶
Extract GPS data using the CLI:
# Extract GPS to CSV
python -m gpmf extract GOPR0001.MP4 --output gps_data.csv
# Export to GPX
python -m gpmf export GOPR0001.MP4 --format gpx --output track.gpx
# Visualize track
python -m gpmf plot GOPR0001.MP4 --output track.png