Data and code for fin whale diel dive patterns in a shallow foraging habitat
Data files
Sep 11, 2026 version files 12.98 MB
-
bathymetry_data.zip
20.17 KB
-
Behavioral_States.zip
93.40 KB
-
depth_bins.zip
11.24 KB
-
gps.zip
12.36 KB
-
NAFW_divepatterns.Rmd
25.85 KB
-
README.md
27.57 KB
-
shipping_map_overlays.zip
12.79 MB
Abstract
Predators select foraging habitats to maximise energetic gains. However, habitat fragmentation can lead to increased costs from disturbances in high-traffic urban environments. Understanding behavioural drivers of movement ecology is crucial for minimizing conflict between evolutionarily selected foraging behaviours and novel anthropogenic stressors. In this study, 27 high-resolution biologging tags were deployed on fin whales in a shallow inner-shelf habitat south of the US east coast, where water depth can be less than the body length of the animal. The vertical movement patterns of the whales from diving overlapped with major shipping traffic. The whales spent >67% of their time at depths shallower than the drafts of large ships (~10 m). The whales fed primarily during the day and remained very shallow at night (mean 5 m) while resting and traveling, possibly due to diel changes in vertical prey distribution. This natural behavioural pattern has become maladaptive with the introduction of anthropogenic traffic and puts them at extreme risk of injury and mortality in commercial shipping lanes at night, when mariners have limited visibility to detect them. These results underscore the importance of understanding baseline vertical movement patterns and behavioural trends to inform conservation efforts in fragmented environments.
Corresponding code and data for the manuscript "Fin whale (Balaenoptera physalus) diel dive patterns in a shallow fragmented foraging habitat."
Research was conducted under NMFS Permits 27272-01, 23644-0,3 and 22156-04, with IACUC approval from Syracuse University.
Corresponding author: Dana Adcock, Syracuse University — dladcock@syr.edu
Citation and related works
Adcock, Dana; Nowacek, Douglas; Parks, Susan (2026). Data and code for fin whale diel dive patterns in a shallow foraging habitat [Dataset]. Dryad. https://doi.org/10.5061/dryad.n2z34tnd3
Associated publication:
Adcock, D., Nowacek, D., & Parks, S. 2026. "Fin whale (Balaenoptera physalus) diel dive patterns in a shallow fragmented foraging habitat." Ecology and Evolution. https://doi.org/10.1002/ece3.74313
Overview
This repository contains the processed biologging, telemetry, and geospatial data used to describe diel patterns in fin whale dive behaviour in two shallow, fragmented foraging areas off the northeastern United States: Southern New England (SNE) and the New York Bight (NYB).
Suction-cup archival biologging tags were deployed on fin whales in July–August 2023 and July 2024. Each tag record was processed into a pitch–roll–heading (PRH) file, from which individual dives and surface periods were extracted and assigned a behavioural state and a diel period (day, night or twilight). Satellite and quick-fix GPS tags deployed on the same or nearby animals provide horizontal positions. Bathymetry rasters were used to characterise water depth in the two study areas, and annual AIS vessel-transit rasters were used to place whale positions in the context of commercial shipping.
Repository contents
├── Behavioral_States.zip Behavioural state classification for each dive and surface period
│ └── Behavioral States/
│ └── sun_<deployment>_divestates_datetime.csv (27 files)
│
├── depth_bins.zip Time spent in 5 m depth bins, per deployment
│ └── depth bins/
│ └── <deployment>_depthtimes.csv (27 files)
│
├── gps.zip Horizontal positions from satellite and GPS tags
│ └── gps/
│ ├── 2023 gps/
│ │ ├── filteredbp23_<deployment>_argos.csv (4 files, Argos/FastGPS)
│ │ └── filteredbp23_<deployment>.csv (7 files, quick-fix GPS)
│ └── 2024 lotek/
│ └── bp24_<deployment>_<tag>_<download>.csv (9 files, Lotek GPS)
│
├── bathymetry_data.zip GEBCO 2024 bathymetry for the two study areas
│ └── bathymetry data/
│ ├── gebco_2024_n41.23_s40.76_w-71.91_e-70.64.tif Southern New England
│ └── gebco_2024_n39.88_s39.77_w-73.21_e-73.1.tif New York Bight
│
├── shipping_map_overlays.zip 2023 AIS vessel transit-count rasters
│ └── shipping map overlays/
│ ├── CargoVesselTransit.tif
│ └── TankerVesselTransit.tif
│
└── NAFW_divepatterns.Rmd R Markdown script for all data processing, analysis and figures
Conventions used throughout
Deployment identifiers
Every data file is named for the deployment it came from, using the form bpYY_DDDx:
bp— Balaenoptera physalusYY— year (23= 2023,24= 2024)DDD— day of year of the deploymentx— a lowercase letter distinguishing multiple deployments on the same day
For example, bp23_212d is the fourth deployment made on day 212 of 2023 (31 July 2023). The same identifier is used across Behavioral_States.zip, depth_bins.zip and gps.zip, so files can be joined on it.
A deployment identifier is not an individual identifier. Several deployments were made on the same animal, and some deployments were made on animals travelling together. These groupings are hard-coded in NAFW_divepatterns.Rmd (see the case_when blocks that create the Individual and GroupID variables) and are used as random effects in the mixed-effects models. Likewise, the Tag_ID recorded inside the GPS files identifies the tag, not the whale — the satellite tag, for example, was redeployed across four different 2023 deployments.
Time zone
Time zones differ between the behavioural files and the positional files. Please read this before combining them.
| Data | Time zone | Format |
|---|---|---|
Behavioral_States.zip |
EDT (local time, UTC−4) | ISO 8601-style, e.g. 2023-07-24T07:31:09Z |
depth_bins.zip |
(elapsed durations only; no timestamps) | — |
gps.zip, 2023 Argos files |
UTC | M/D/YYYY and HH:MM:SS in separate columns |
gps.zip, 2023 quick-fix files |
UTC | YYYY-MM-DD HH:MM:SS |
gps.zip, 2024 Lotek files |
UTC | M/D/YYYY and HH:MM:SS in separate columns |
The trailing Z on the timestamps in Behavioral_States.zip is an artefact of the export routine and does not indicate UTC. Those timestamps are Eastern Daylight Time. To align behavioural records with positions, add four hours to the behavioural timestamps (or subtract four hours from the GPS timestamps).
Diel period (Period) was assigned from local solar times at the deployment location, which is why the behavioural files are held in local time.
Coordinates
All latitudes and longitudes are decimal degrees on WGS 84 (EPSG:4326). Southern hemisphere and western hemisphere values are negative; all longitudes in this dataset are negative.
Missing values and empty cells
Missing values in the CSV files are coded as follows.
| Code | Meaning | Where it occurs |
|---|---|---|
NA |
Not applicable. The field is not part of the record type on that row, so no value could ever exist for it. | The four 2023 Argos files, filteredbp23_205a_argos.csv, filteredbp23_206c_argos.csv, filteredbp23_206f_argos.csv and filteredbp23_212c_argos.csv. |
null |
Not available. The field applies to that record type, but the tag did not transmit a value for it. This code is written by the tag manufacturer's export software and has been left unchanged. | Two rows only: the CNR and TimeOn(s) fields of the FastGPS records (LQ = G) in filteredbp23_206f_argos.csv and filteredbp23_212c_argos.csv. |
Why NA appears where it does: each row of a 2023 Argos file is a single satellite message, and the Argos system transmits several different message types. Which columns carry a value is determined entirely by the message type, as follows.
| Record type | How to recognise it | Fields populated | Fields set to NA |
|---|---|---|---|
| Deployment position | First row of each file; LQ is NA |
Tag_ID, UTC_Date, UTC_Time, Latitude, Longitude |
all remaining fields |
| Argos Doppler location | LQ is 0, A or B |
Tag_ID, date, time, position, LQ, ErrorRadius, SemiMajor, SemiMinor, Orientation |
GPS quality fields (HDOP, CNR, Sats, TimeOn(s), eRes) and sensor fields (TempDeg, MinVolt, Curr(mA)) |
| FastGPS location | LQ is G |
Tag_ID, date, time, position, LQ, HDOP, CNR, Sats, TimeOn(s), eRes |
Argos error-ellipse fields (ErrorRadius, SemiMajor, SemiMinor, Orientation) and sensor fields |
| Sensor/status message | Latitude and Longitude are NA |
Tag_ID, date, time, TempDeg, MinVolt, Curr(mA) |
all location and location-quality fields |
So an NA in Latitude means the message was a sensor/status transmission that carried no position, not that a position was recorded and then lost. An NA in HDOP means the message was an Argos Doppler location, for which HDOP is undefined.
A note on zeros: in depth_bins.zip, a Time_Spent_sec of 0 is a genuine measurement — the whale spent no time in that depth bin — and is not a missing value. Every deployment has a complete set of 20 bins, so zeros are expected and common (238 of the 580 rows). Similarly, Lunge_y_n = 0 in Behavioral_States.zip means "no lunge detected", not "unknown".
Deployments with no positional data
Nine deployments have behavioural and/or depth-bin data but no file in gps.zip: bp23_205d, bp23_207b, bp23_207c, bp23_212a, bp23_213c, bp24_205a, bp24_205d, bp24_209d and bp24_210c. For seven of these, no satellite or GPS tag was deployed on the animal, and a single tagging position recorded by hand from the vessel is the only location available; these hand-recorded positions are entered directly in NAFW_divepatterns.Rmd (the manual_2023 and manual_2024 tibbles) rather than being stored as files. bp24_205a and bp24_210c have depth-bin records only.
Description of the data and file structure
1. Behavioral_States.zip
Extracts to a folder Behavioral States/ containing files named sun_<deployment>_divestates_datetime.csv.
Each row is one dive or one surface period, in chronological order. Surface periods are marked SU in State; every other value is a dive.
| Column | Type | Units | Description |
|---|---|---|---|
State |
character | — | Behavioural state assigned to the record. See the code table below. |
Time |
datetime | EDT | Start of the record rounded down to the minute; used to assign the diel period. |
Period |
character | — | Diel period at Time: Day, Night or Twilight. |
Lunge_y_n |
integer | 0 / 1 | 1 if one or more feeding lunges were detected within the record, 0 if none were. |
Dive_Start |
datetime | EDT | Start of the dive or surface period, to the second. |
Dive_End |
datetime | EDT | End of the dive or surface period, to the second. |
Dive_Max |
numeric | metres | Maximum depth reached during the dive. For surface periods (State = SU) this field is set to the constant 1 and is not a measurement — it is a placeholder written by the dive-detection routine. Surface periods are excluded from all depth analyses. |
Duration |
numeric | seconds | Length of the record. Equals Dive_End − Dive_Start to sub-second precision; Dive_Start and Dive_End are rounded to the second, so the two may differ by up to one second. |
Behavioural state codes
| Code | State |
|---|---|
F |
Feeding |
EF |
Exploratory Foraging |
T |
Traveling |
R |
Resting |
SU |
Surface |
S |
Unknown |
SU denotes a period spent at the surface between dives rather than a behaviour, and is excluded from the dive-depth models in NAFW_divepatterns.Rmd. S denotes a dive whose behavioural state could not be determined.
2. depth_bins.zip
Extracts to a folder depth bins/ containing 27 CSV files, one per deployment, named <deployment>_depthtimes.csv. Each file has exactly 20 rows covering 0–100 m in 5 m increments (580 rows in total).
| Column | Type | Units | Description |
|---|---|---|---|
Depth_Lower |
integer | metres | Shallow edge of the depth bin (inclusive): 0, 5, 10, … 95. |
Depth_Upper |
integer | metres | Deep edge of the depth bin (exclusive): 5, 10, 15, … 100. |
Time_Spent_sec |
numeric | seconds | Total time the animal spent within this depth bin over the whole deployment. 0 means no time was spent in the bin (see "A note on zeros" above). |
Source_File |
character | — | Name of the PRH (pitch–roll–heading) MATLAB file from which the depth record was derived. |
The PRH files themselves are not archived here — they are large intermediate products, and every quantity derived from them is included in this repository.
3. gps.zip
Extracts to a folder gps/ with two sub-folders. The three groups of files below have three different formats.
3a. gps/2023 gps/*_argos.csv — Argos satellite tag (4 files)
filteredbp23_205a_argos.csv, filteredbp23_206c_argos.csv, filteredbp23_206f_argos.csv, filteredbp23_212c_argos.csv. All four are transmissions from the same tag, 6883:198608redeployed on four different animals.
Each row is one satellite message; see "Missing values and empty cells" above for which fields apply to which message type.
| # | Column | Type | Units | Description |
|---|---|---|---|---|
| 1 | Tag_ID |
character | — | Argos programme and platform transmitter number, 6883:198608. Identifies the tag, not the animal. |
| 2 | UTC_Date |
date | UTC | Date of the message, M/D/YYYY. |
| 3 | UTC_Time |
time | UTC | Time of the message, HH:MM:SS. |
| 4 | Latitude |
numeric | decimal degrees | Latitude, WGS 84. |
| 5 | Longitude |
numeric | decimal degrees | Longitude, WGS 84. |
| 6 | LQ |
character | — | Location quality. 3, 2, 1, 0, A, B and Z are standard Argos Doppler location classes in decreasing order of accuracy; G indicates a FastGPS (GPS snapshot) location. Only classes 0, A, B and G occur in this dataset. |
| 7 | HDOP |
numeric | — | Horizontal dilution of precision of the FastGPS fix. FastGPS records only. |
| 8 | CNR |
numeric | dB-Hz | Carrier-to-noise ratio of the received GPS signal. FastGPS records only. |
| 9 | Sats |
integer | count | Number of GPS satellites used in the FastGPS fix. FastGPS records only. |
| 10 | TimeOn(s) |
numeric | seconds | Receiver time-on required to acquire the FastGPS fix. FastGPS records only. |
| 11 | eRes |
numeric | metres | Estimated residual error of the FastGPS fix. FastGPS records only. |
| 12 | TempDeg |
numeric | °C | Tag-recorded temperature. Sensor/status messages only. |
| 13 | MinVolt |
numeric | volts | Minimum battery voltage since the previous status message. Sensor/status messages only. |
| 14 | Curr(mA) |
numeric | milliamps | Transmitter current draw. Sensor/status messages only. |
| 15 | ErrorRadius |
numeric | metres | Radius of the Argos error ellipse. Argos Doppler locations only. |
| 16 | SemiMajor |
numeric | metres | Semi-major axis of the Argos error ellipse. Argos Doppler locations only. |
| 17 | SemiMinor |
numeric | metres | Semi-minor axis of the Argos error ellipse. Argos Doppler locations only. |
| 18 | Orientation |
numeric | degrees | Orientation of the semi-major axis of the Argos error ellipse, clockwise from north. Argos Doppler locations only. |
"filtered" in the file name indicates that the raw tag output was screened before archiving; the screening criteria are described in the Methods section of the manuscript.
3b. gps/2023 gps/filteredbp23_*.csv (no _argos suffix) — quick-fix GPS tag (7 files)
filteredbp23_205c.csv, filteredbp23_206b.csv, filteredbp23_211a.csv, filteredbp23_212d.csv, filteredbp23_212e.csv, filteredbp23_213a.csv, filteredbp23_214b.csv. These files have a header row with quoted field names and contain 45 positions in total.
| # | Column | Type | Units | Description |
|---|---|---|---|---|
| 1 | POS_T |
numeric | days | Position timestamp as a MATLAB datenum (days since 0 January of year 0). Equivalent to datetime. |
| 2 | datetime |
datetime | UTC | Position timestamp, YYYY-MM-DD HH:MM:SS. |
| 3 | tagtime |
datetime | UTC | Timestamp on the tag's internal clock, YYYY-MM-DD HH:MM:SS. Differs from datetime by the tag's clock offset, which is between −1 and +3 seconds throughout this dataset. |
| 4 | Latitude |
numeric | decimal degrees | Latitude, WGS 84. |
| 5 | Longitude |
numeric | decimal degrees | Longitude, WGS 84. |
| 6 | Satellites |
integer | count | Number of GPS satellites used in the fix (4–8 in this dataset). |
| 7 | Residual_Error |
numeric | metres | Residual error of the fix as reported by the tag's positioning software. Smaller values indicate a better-constrained fix. |
3c. gps/2024 lotek/*.csv — Lotek GPS tag (9 files)
Nine files, 331 positions in total, one per deployment for nine deployments.
These files have no header row. They are the PRIMARY position export from the Lotek tag software, and are read in NAFW_divepatterns.Rmd with col_names = FALSE; the columns are defined here instead.
| # | Type | Units | Description |
|---|---|---|---|
| 1 | character | — | Tag serial number (0198609, 0198613, 0198614 or 0263829). Leading zeros are significant — read this column as character. Identifies the tag, not the animal; three of the four tags were redeployed. |
| 2 | character | — | Record type. PRIMARY (a primary position record) on every row in this dataset. |
| 3 | date | UTC | Date of the fix, M/D/YYYY. |
| 4 | time | UTC | Time of the fix, HH:MM:SS. |
| 5 | numeric | decimal degrees | Latitude, WGS 84. Used as Latitude in the analysis code. |
| 6 | numeric | decimal degrees | Longitude, WGS 84. Used as Longitude in the analysis code. |
| 7 | numeric | metres | Receiver-reported altitude of the fix relative to the WGS 84 ellipsoid. Ranges from −252.9 to 267.7 m in this dataset; because all fixes are at the sea surface, the spread reflects vertical GPS error and is a useful indicator of fix quality. |
| 8 | integer | count | Number of GPS satellites used in the fix (4–8). |
| 9 | integer | count | Number of GPS satellites in view (4–8). |
| 10 | character | — | Fix type; D on every row in this dataset. |
4. bathymetry_data.zip
Extracts to a folder bathymetry data/ containing two GeoTIFF rasters, one per study area, downloaded from the GEBCO 2024 Grid (GEBCO Compilation Group, 2024).
| File | Study area | Extent (W, E, S, N) | Grid size | Cell size |
|---|---|---|---|---|
gebco_2024_n41.23_s40.76_w-71.91_e-70.64.tif |
Southern New England | −71.91, −70.64, 40.76, 41.23 | 304 × 113 | 15 arc-seconds |
gebco_2024_n39.88_s39.77_w-73.21_e-73.1.tif |
New York Bight | −73.21, −73.10, 39.77, 39.88 | 26 × 26 | 15 arc-seconds |
5. shipping_map_overlays.zip
Extracts to a folder shipping map overlays/ containing two GeoTIFF rasters of 2023 annual AIS vessel transit counts, one for cargo vessels and one for tankers, derived from MarineCadastre.gov AIS Vessel Transit Counts (2023) (Bureau of Ocean Energy Management and NOAA Office for Coastal Management).
| File | Vessel class |
|---|---|
CargoVesselTransit.tif |
Cargo vessels |
TankerVesselTransit.tif |
Tanker vessels |
6. NAFW_divepatterns.Rmd
A single R Markdown document containing all data processing, statistical analysis, and figure generation, in the order in which the results appear in the manuscript:
- Bathymetry of the study areas — mean and range of ocean depth for Southern New England and the New York Bight from the GEBCO rasters.
- Behavioural state proportions by diel period — proportion of total duration spent in each behavioural state during day and night; stacked bar chart; χ² test of independence, Cramér's V with a bootstrapped 95% confidence interval (R = 1,000), and Bonferroni-corrected pairwise proportion tests.
- Mixed-effects model: state and depth —
lmer(log(Dive_Max + 1) ~ State + (1 | Individual) + (1 | GroupID)), with model diagnostics, ω², marginal and conditional R², profile confidence intervals, AIC model comparison and anafex_plotof back-transformed marginal means. - Mixed-effects model: period and depth — the same model structure with
Periodas the fixed effect. - Time spent at depth — per-deployment and pooled proportions of time in each 5 m depth bin, drawn as a heat map.
- Map of GPS positions, AIS traffic and wind-farm development — a Leaflet map overlaying whale positions on the cargo and tanker transit rasters.
Before running the script, replace each "path" placeholder with the location of the corresponding extracted folder on your own machine. The placeholders appear at lines 18, 43, 75, 244, 391, 532, 683, 701, 743, and 744. Chunks 2–4 expect the path to the extracted Behavioral States/ folder, chunk 5 the depth bins/ folder, and chunk 6 the two gps/ sub-folders and the shipping map overlays/ folder.
Software. The analysis was run in R (RStudio). The following packages are required:
ncdf4, raster, terra, sf, dplyr, tidyr, readr, purrr, lubridate, ggplot2, ggpubr, viridis, scales, DescTools, boot, lme4, lmerTest, afex, easystats, MuMIn, AICcmodavg, leaflet, mapview, htmlwidgets.
Data sources
- Bathymetry — GEBCO Compilation Group (2024). GEBCO 2024 Grid. doi:10.5285/1c44ce99-0a0d-5f4f-e063-7086abc0ea0f. https://www.gebco.net/
- Vessel traffic — Bureau of Ocean Energy Management and National Oceanic and Atmospheric Administration Office for Coastal Management. AIS Vessel Transit Counts, 2023. MarineCadastre.gov. https://marinecadastre.gov/ais/
Funding
This material is based upon work supported by the U.S. Department of Energy's Office of Energy Efficiency and Renewable Energy (EERE) and the Bureau of Ocean Energy Management (BOEM) under the Wind Energy Technologies Office (WETO) Award Number DE-EE0010287.
This material is based upon work supported by the Air Force Office of Scientific Research under award number FA9550-23-F-0014, in support of Dana Adcock's National Defense Science and Engineering Graduate Fellowship.
License and reuse
All data files and code in this repository are released under a Creative Commons Zero (CC0 1.0 Universal) public domain dedication. You may copy, modify, and redistribute this material, including for commercial purposes, without asking permission. Attribution is not legally required, but a citation to the dataset and the associated publication (see Citation and related works above) is appreciated and helps others trace the work.
The GEBCO bathymetry and MarineCadastre AIS rasters redistributed here are third-party products; see Data sources below for their originators and their own terms of use.
Contact
Please address questions about these data to the corresponding author, Dana Adcock, at dladcock@syr.edu.
