DOI: 10.17882/102544
title: A bio-logging dataset on the diving behaviours of juvenile sea turtles from the southwestern Indian Ocean

description: Abstarct
The Indian Ocean sea Turtles project (IOT, 2018-2021) established a comprehensive sea turtle observation network across the southwestern Indian Ocean using a novel, low-cost, open-source bio-logger system supported by LoRaWAN technology. The project tracked the diving and surface behaviour of 37 juvenile sea turtles (green and hawksbill species) at four key sites: Reunion Island, Mayotte, Europa Island and Aldabra Atoll. The dataset contains over 100,000 records detailing temperature, dive profiles and surface time. The dataset is interoperable with Argos-tag data and provides high-resolution observations that are essential for marine turtle conservation, providing insights into species behaviour and supporting wider ecological applications.
Dataset Overview
The experiments started in May 2021 at Europa Island and were concluded in January 2022 at Reunion Island. A total of 37 individuals were tagged, 9 in the Reunion Island, 10 in Mayotte, 10 in the Aldabra Atoll and 8 in the Europa Island. Of the 37 individuals, 29 were green turtles and 8 were hawksbill turtles.
The initial dataset comprises a total of 100,875 records : 54.6% from Europa Island, 27.5% from Mayotte, 12.6% from Aldabra Atoll, and 5.3% from Reunion Island. The median number of messages received per tag is 1,371 (mean: 2,967; minimum: 63; maximum: 14,566). The median transmission period varies between sites, with a median of 99 days on Europa Island and 15.6 days on Reunion Island. On average, tags transmitted about one message per hour (1.03) but with differences observed between sites (About one message every 25 minutes for Europa Island, about one message every 2.5 hours for Aldabra Atoll).
The original data were enriched with additional explanatory variables derived from the raw dive profiles (dive variability, dive rate of change, number of "activity phases") and with categorical variables to facilitate categorisation by time of day and season (i.e. "dawn", "morning", afternoon", ...) and to facilitate filtering by type of dive/surface events (i.e. "very-shallow" up to "very-deep" for depths or "very-short" up to "very-long" for durations).
Repository Content
Folder data/ contains the four different versions of the dataset discussed above in CSV format. It also includes detailed information about tagged individuals, associated tag names, and the LoRa gateways deployed for the project.
 - File iot_all_turtles_preproc.csv: the initial version of the dataset with data for all tagged individuals across the 4 study sites.
 - File iot_all_turtles_filtered.csv: a cleaned version of the dataset where about 2.3% of entries considered outliers were removed. 
 - File iot_all_turtles_newfeatures.csv: the cleaned version with additional explanatory variables derived from initial measurements of dive duration, surface duration, and raw dive profiles.
 - File iot_all_turtles_labelled.csv: the same version as above but with supplementary categorical variables to facilitate data classification.
 - File tag_info_summary.csv: a synthesis of the capture and tagging process, detailing tag IDs, names, capture and release times and locations, identified species, and morphological parameters.
 - File gw_info_summary.csv: a synthesis of the deployed gateways with correspondence between IDs, names, and precise locations.
Folder photo_id/ contains 4 sub-folders with photos taken to identify turtles tagged for the IOT project. Tagged individuals on Aldabra were not photographed.
Folder output/ contains supplementary CSV files with information and results calculated during the execution of the processing and analysis scripts.
Folder figure/ contains PNG figures generated during the execution of the processing and analysis scripts.
At the root, we have also included Python scripts used to process and analyze the data, named data_analysis_X.py. These scripts are supported by a README file that provides a short description of their operation and usage. A requirements.txt file is also included to easily install all required packages in a Python environment.
Data Description
Description of each columns in the initial dataset as in file iot_all_turtles_preproc.csv.
 - _time: record timestamp. (ISO8601)
 - devEUI: tag 64-bit unique identifier. (hexadecimal string)
 - battLevel_mV: tag battery level. (mV)
 - diveDeepHisto: array of five values representing the time spent inside a specific depth range. Ranges are [0.5, 1, 2, 5] meters. Ranges for tags in Reunion Island are different and equal to [3, 10, 15, 20] meters. (sec)
 - diveID: 16-bit identifier of the dive event. This value is incremented each time the turtle starts diving. (integer)
 - fcnt: 16-bit mandatory LoRaWAN frame counter. This value is incremented each time the LoRa module sends a message. (integer)
 - gatewayID: identifier for the receiving gateway. Correspondence between gateway ID, names, and location is given in file data/gw_info_summary.csv. (integer)
 - profile: raw dive profile represented as an array of 20 depth values with constant time steps specified in variable profile_tstep_s. (dm)
 - rssi: LoRaWAN Received Signal Strength Indicator (RSSI), which represents the received power signal. (dBm)
 - snr: LoRaWAN Signal-to-Noise Ratio (SNR), the ratio between the received power signal and the noise floor power level. (dB)
 - surfaceSensorUseTime: cumulative surface sensor use time, corresponding to the total amount of time the turtle spent on the surface. (sec)
 - temperature: average temperature recorded during the last dive event. (c°C)
 - location: location where the turtle was captured. (string)
 - gatewayCnt: number of LoRa gateways that have received the message, if available. Equals to NaN otherwise. (integer)
 - tdive_s: duration of the last dive event. (sec)
 - profile_tstep_s: time steps of the last dive profile. This value is dynamically adjusted to adapt to longer dive durations. (sec)
 - maxdepth_m: maximum depth recorded in the last dive profile. (m)
 - avgdepth_m: average depth recorded in the last dive profile. (m)
 - profile_m: raw dive profile converted to SI units. (m)
 - Name: tag name. Correspondence between tag ID, name, and turtle morphological measurements is given in file data/tag_info_summary.csv. (string)
 - tsurf_s: time spent at the surface before the last recorded dive event. (sec)
Description of new features, labels and associated bins added in the processed versions of the dataset as in files iot_all_turtles_newfeatures.csv and iot_all_turtles_labelled.csv.
 - tdive_s: duration of the last dive events (sec) Bins: 4 / 16.47 / 67.83 / 279.33 / 1150.30 / 4737 Labels: very-short / short / medium / long / very-long
 - avgdepth_m: average depth recorded of the last dive profile (m) Bins: 0.1 / 0.29 / 0.88 / 2.61 / 7.75 / 23.02 Labels: very-shallow / shallow / medium / deep / very-deep
 - maxdepth_m: max depth recorded of the last dive profile (m) Bins: 0.1 / 0.30 / 0.91 / 2.77 / 8.41 / 25.5 Labels: very-shallow / shallow / medium / deep / very-deep
 - tsurf_postdive_s: time spent at surface after the last recorded dive events (sec) Bins: 2 / 10.95 / 60.04 / 329 Labels: short / medium / long
 - tsurf_predive_s: time spent at surface before the last recorded dive events (sec) Bins: 2 / 10.95 / 60.04 / 329 Labels: short / medium / long
 - dive_activity_phases: number of changes in the direction of the profile (no unit) Bins: 2 / 4.23 / 8.97 / 19 Labels: low / medium / high
 - dive_rate_of_change: mean of the absolute differences between consecutive points in the profile (m/s) Bins: 0.01 / 0.07 / 0.52 / 3.88 Labels: low / medium / high
 - dive_variability: standard deviation of the profile (m) Bins: 0.02 / 0.17 / 1.43 / 11.91 Labels: low / medium / high
 - divetosurf_post_ratio: ratio between post-surface and dive duration (no unit) Bins: 0.12 / 3.27 / 86.83 / 2305 Labels: low / medium / high
 - divetosurf_pre_ratio: ratio between pre-surface and dive duration (no unit) Bins: 0.11 / 3.08 / 85.42 / 2368.5 Labels: low / medium / high