Buadhai
Contributor
AFAIK there are now two iOS apps to export data gathered by the Oceanic+ app on the Apple Watch Ultra:
AWU2UDDF grabs its data from Apple's Health (HealthKit) app. Oceanic+ doesn't share much data with HealthKit, so what you get is limited to date, time, depth and water temperature. Enough if all you need is a look at your dive profile.
Here are some fragments from a UDDF file produced by AWU2UDDF:
Note: temperature is in degrees Kelvin.
The current version exports each dive into a separate UDDF (XML) file. The author said that a future release will allow exporting batches of dives.
Dive Converter grabs data directly from the Oceanic+ app as long as you created your Oceanic+ profile using a username and password. If you used "Sign in with Apple", then you'll need to create a username/password account and transfer your existing dives into the new account. The author has created a method to do this which is not yet in general release. I tested it and it worked just fine.
This data is quite comprehensive and detailed. Here are some fragments from the UDDF file produced by Dive Converter.
Each dive has some dive site info including, I believe, the GPS coordinates for the location of your descent. Oceanic+ names dives by date and time which you can edit to include a dive site name or, whatever:
Each dive also has a pre-dive section which includes date, time, surface interval and more:
Link ref is the code for the site id
Each dive also has a post-dive section which includes logbook type entries that you made in the Oceanic+ app after the dive:
There is also an entry for tank data for each dive
I guess I forgot to enter beginning tank pressure. The link ref refers to the definition for the mix id:
There is also "Application Data which contains information that is not part of the UDDF specs, including exit GPS location.
And, finally, there are waypoints for each 15 second interval of the dive:
I'm sure I've made some mistakes here and left stuff out. Please correct what I missed.
- AWU2UDDF by Douglas Junkins
- Dive Converter by Carsten Heinelt
AWU2UDDF grabs its data from Apple's Health (HealthKit) app. Oceanic+ doesn't share much data with HealthKit, so what you get is limited to date, time, depth and water temperature. Enough if all you need is a look at your dive profile.
Here are some fragments from a UDDF file produced by AWU2UDDF:
Code:
<dive id="2023-02-24T01:27:44Z">
<informationbeforedive>
<datetime>2023-02-24T08:27:44+0700</datetime>
</informationbeforedive>
<waypoint>
<depth>10.981</depth>
<divetime>167.278</divetime>
<temperature>301.2</temperature>
</waypoint>
Note: temperature is in degrees Kelvin.
The current version exports each dive into a separate UDDF (XML) file. The author said that a future release will allow exporting batches of dives.
Dive Converter grabs data directly from the Oceanic+ app as long as you created your Oceanic+ profile using a username and password. If you used "Sign in with Apple", then you'll need to create a username/password account and transfer your existing dives into the new account. The author has created a method to do this which is not yet in general release. I tested it and it worked just fine.
This data is quite comprehensive and detailed. Here are some fragments from the UDDF file produced by Dive Converter.
Each dive has some dive site info including, I believe, the GPS coordinates for the location of your descent. Oceanic+ names dives by date and time which you can edit to include a dive site name or, whatever:
Code:
<site id="728496CD-6853-4214-B576-621FC56C595D">
<name>Richelieu 24/02/23 at 15:24</name>
<geography>
<address>
<country>Thailand</country>
</address>
<location>Richelieu 24/02/23 at 15:24</location>
<latitude>9.363209145686826</latitude>
<longitude>98.02213922816198</longitude>
<altitude>4.8339972496032715</altitude>
<timezone>7.0</timezone>
</geography>
</site>
Each dive also has a pre-dive section which includes date, time, surface interval and more:
Code:
<informationbeforedive>
<datetime>2023-02-24T15:24:30+07:00</datetime>
<link ref="728496CD-6853-4214-B576-621FC56C595D" />
<internaldivenumber>641f9fef80261f3bc7120b86</internaldivenumber>
<divenumber>9</divenumber>
<divenumberofday>1</divenumberofday>
<altitude>4.8339972496032715</altitude>
<surfaceintervalbeforedive>
<passedtime>8820.0</passedtime>
</surfaceintervalbeforedive>
</informationbeforedive>
Link ref is the code for the site id
Each dive also has a post-dive section which includes logbook type entries that you made in the Oceanic+ app after the dive:
Code:
<informationafterdive>
<diveduration>3435.0</diveduration>
<greatestdepth>19.808015823364258</greatestdepth>
<lowesttemperature>301.3400005340576</lowesttemperature>
<current>very-mild-current</current>
<notes>
<para>Juvenile Sweetlips. Spiderman worm. Gobi. </para>
</notes>
<rating>
<ratingvalue>7</ratingvalue>
</rating>
<visibility>21.507608890533447</visibility>
<equipmentused>
<link ref="B295F22B-6A88-4339-BA03-328D6A15894C" />
</equipmentused>
</informationafterdive>
There is also an entry for tank data for each dive
Code:
<tankdata id="C0D40091-F15B-4A99-96C0-A753CD5B2789">
<tankpressurebegin>0.0</tankpressurebegin>
<link ref="EE38063B-95C6-43EA-8A65-89AD49B4DA48" />
</tankdata>
I guess I forgot to enter beginning tank pressure. The link ref refers to the definition for the mix id:
Code:
<mix id="EE38063B-95C6-43EA-8A65-89AD49B4DA48">
<name>Air</name>
<o2>0.21</o2>
<n2>0.79</n2>
</mix>
There is also "Application Data which contains information that is not part of the UDDF specs, including exit GPS location.
Code:
<applicationdata>
<oceanic>
<minimumascentspeed>0.17822147905826569</minimumascentspeed>
<averageascentspeed>4.21</averageascentspeed>
<maximumascentspeed>13.671116828918457</maximumascentspeed>
<surfaceconditions>0.0</surfaceconditions>
<exitlongitude>97.64604777333568</exitlongitude>
<exitlatitude>8.56685459123547</exitlatitude>
<initialtimestamp>1677402216.0</initialtimestamp>
<timeinterval>15.0</timeinterval>
</oceanic>
</applicationdata>
And, finally, there are waypoints for each 15 second interval of the dive:
Code:
<waypoint>
<depth>17.328426361083984</depth>
<divetime>473.0</divetime>
<temperature>301.4400009155273</temperature>
<nodecotime>4238.00537109375</nodecotime>
<ascentrate>-7.122725486755371</ascentrate>
</waypoint>
<waypoint>
<depth>17.382091522216797</depth>
<divetime>488.0</divetime>
<temperature>301.5399993896484</temperature>
<nodecotime>4519.25537109375</nodecotime>
<ascentrate>-0.5572483539581299</ascentrate>
</waypoint>
I'm sure I've made some mistakes here and left stuff out. Please correct what I missed.