Swift AI GPS Backfill Tool for MacDive
Posted: Thu Feb 26, 2026 3:45 am
I wrote a small utility that extracts GPS coordinates from the Shearwater Swift AI transmitter data already sitting in your MacDive database and backfills them into your dive sites.
If you dive with a Shearwater computer paired with a Swift AI GPS, your dive computer records entry and exit GPS on every dive. MacDive imports the raw data but doesn't extract the embedded coordinates — so those dives end up without map pins. This script fixes that.
What it does:
- Scans your MacDive database for Shearwater dives with raw data but no GPS
- Decompresses the dive computer memory and extracts entry/exit coordinates
- Creates dive sites with map pins at the entry location
- Reverse-geocodes to fill in country and region
- Appends both entry and exit coordinates to your dive notes
- Dry-run by default, automatic backup before any writes
Requirements: Python 3, no dependencies to install. Quit MacDive, run the script, reopen MacDive.
https://github.com/rbollar/macdive-swiftai-gps
If this doesn't work for you, please let me know — I've only tested it on my own database.
I've tried the alternatives and I'm not ready to move on from MacDive yet. This will let me hang on while looking for an alternative, or perhaps writing one myself.
The GPS record format was identified from the https://www.libdivecomputer.org/ open-source library, which added Swift AI GPS support in its Shearwater parser. The decompression algorithm is also from libdivecomputer. Great project — worth knowing about if you're into dive computer data.
If you dive with a Shearwater computer paired with a Swift AI GPS, your dive computer records entry and exit GPS on every dive. MacDive imports the raw data but doesn't extract the embedded coordinates — so those dives end up without map pins. This script fixes that.
What it does:
- Scans your MacDive database for Shearwater dives with raw data but no GPS
- Decompresses the dive computer memory and extracts entry/exit coordinates
- Creates dive sites with map pins at the entry location
- Reverse-geocodes to fill in country and region
- Appends both entry and exit coordinates to your dive notes
- Dry-run by default, automatic backup before any writes
Requirements: Python 3, no dependencies to install. Quit MacDive, run the script, reopen MacDive.
Code: Select all
python3 macdive_gps_backfill.py # preview
python3 macdive_gps_backfill.py --apply # write changesIf this doesn't work for you, please let me know — I've only tested it on my own database.
I've tried the alternatives and I'm not ready to move on from MacDive yet. This will let me hang on while looking for an alternative, or perhaps writing one myself.
The GPS record format was identified from the https://www.libdivecomputer.org/ open-source library, which added Swift AI GPS support in its Shearwater parser. The decompression algorithm is also from libdivecomputer. Great project — worth knowing about if you're into dive computer data.