Page 1 of 1

Swift AI GPS Backfill Tool for MacDive

Posted: Thu Feb 26, 2026 3:45 am
by Bollar
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.

Code: Select all

python3 macdive_gps_backfill.py          # preview
python3 macdive_gps_backfill.py --apply  # write changes
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.
Screenshot 2026-02-26 at 5.47.57 AM.jpg
Screenshot 2026-02-26 at 5.48.11 AM.png

Re: Swift AI GPS Backfill Tool for MacDive

Posted: Thu Feb 26, 2026 6:15 am
by nick
Clever workaround.

I am picking up one of these this weekend, will likely do some dives with it in a month or so, and then do an update to support it.