Data and code for: Urban rooftops act as suboptimal incubation habitats: fewer off-bouts yet poorer hatching success in Larus argentatus (Herring Gull)
Data files
Apr 14, 2026 version files 27.83 MB
-
1._Identifying_on-_and_off-bouts.Rmd
14.87 KB
-
2._create_data_table_for_analysis.Rmd
10.69 KB
-
2024_Data_FS2_eggs.csv
13.97 KB
-
20250521_data_avg_day_filtered.csv
118.50 KB
-
3._Data_analysis_OA.Rmd
40.39 KB
-
bouts_data_20250207.csv
41.37 KB
-
Data_FS1_eggs.csv
8.80 KB
-
incubation_data_2023_2024.csv
5.61 KB
-
initial_size_reald0_20250521.csv
7.63 KB
-
Pair_IDs_OO.csv
2.63 KB
-
Pair_IDs_ZB.csv
1.88 KB
-
raw_temperature_data.zip
27.55 MB
-
README.md
16.15 KB
Abstract
Urbanization is transforming the breeding habitats of many bird species and may alter incubation conditions, particularly for open-nesting birds. Parents may adjust incubation behavior to buffer embryos against these conditions, but whether this suffices to maintain reproductive success remains unclear. We investigated the effects of rooftop breeding on incubation behavior and reproductive success in Larus argentatus by comparing rooftop- and ground-nesting pairs across two breeding seasons in Belgium. Using temperature loggers placed in artificial eggs, we quantified daily off-bout frequency and duration with the incR package in 78 nests (2023: 11 ground, 15 rooftop; 2024: 22 ground, 30 rooftop). We also assessed reproductive output by comparing hatching success and chick size at hatching. Egg volume was compared between habitats as a proxy for parental quality, and local ambient temperatures around nests were measured to verify whether heating risks differed between environments. Rooftop-breeding pairs took fewer off-bouts, while off-bout duration did not differ, thereby limiting egg exposure to environmental conditions. However, hatching success was lower in rooftop nests, even after excluding egg predation or breakage. Hatchling size was comparable across environments, suggesting that differences in reproductive success were driven mainly by embryo mortality rather than altered embryonic growth. These findings suggest that urban rooftops impose incubation-stage challenges, altering incubation dynamics and breeding outcomes in open-nesting birds.
Dataset DOI: 10.5061/dryad.08kprr5hf
Description of the data and file structure
The data were collected during field studies conducted in the 2023 and 2024 breeding seasons (April–July) in coastal Belgium. The study investigated how breeding environment influences incubation behavior and reproductive success in Larus argentatus by comparing rooftop-nesting and ground-nesting pairs.
Ground nests were monitored in a mixed-species gull colony at the outer port of Zeebrugge, while rooftop nests were located on flat roofs of public and commercial buildings in Ostend. Nests were visited three times per week to record laying dates, egg fate and chick measurements at hatching. Egg length and width were measured to calculate egg volume, and hatchlings were weighed and measured on the day of hatching.
Incubation behavior was quantified using temperature loggers inserted in artificial eggs, which were placed in the nests multiple times throughout the incubation period. Egg and ambient temperatures were recorded at 1-min intervals (10-sec intervals in 2023, later downsampled). Temperature time series were used to infer off-bouts, using the R package incR, from which off-bout frequency and duration were calculated.
The dataset includes information on nest identity, breeding environment (rooftop or ground), breeding year, incubation behavior metrics derived from temperature recordings, egg measurements, hatching success and chick morphometrics at hatching, as well as nest-level ambient temperature measurements. These data were used to evaluate whether rooftop breeding alters incubation behavior and whether such behavioral adjustments are associated with differences in reproductive success.
Files and variables
File: raw_temperature_data.zip
Description: Folder containing the raw temperature recordings from all data loggers deployed during the 2023 and 2024 breeding seasons. Each file corresponds to a single deployment and includes time-stamped measurements of egg temperature (from artificial eggs placed in nests) and ambient temperature (from shielded sensors placed near the nest).
Files may contain the following variables:
- #: sequential measurement index, increments by 1 for each row
- Date_Time: timestamp of the measurement in MM/DD/YY hh:mm:ss AM/PM (12-hour clock) format
- Incubation_temp: temperature (°C) measured by the sensor inside the artificial egg, incubated by the gulls
- Ambient_temp: temperature (°C) measured by the sensor placed near the nest
- Started: indicates when logging begins; value is "Logged" at the start time, otherwise empty
- Good battery: indicates when a battery check was performed; value is "Logged" at the time of the check (typically at logger start), otherwise empty
- Button Down: indicates when the logger button is pressed; value is "Logged" at the time of button press (typically marking logger retrieval), otherwise empty
- Button Up: indicates when the logger button is released; value is "Logged" at the time of release, otherwise empty
- Host Connected: indicates when the logger is connected to a host device for data readout; value is "Logged" at the time of connection, otherwise empty
- Stopped: indicates when logging ends; value is "Logged" at the end time, otherwise empty
- End Of File: End-of-file indicator; value is "Logged" at the last entry, otherwise empty
Note: Many columns contain empty values due to event-based logging ("Logged"). Only the first four columns are used for analysis and are fully and consistently populated; all other columns are removed at the start of the analysis script.
File: incubation_data_2023_2024.csv
Description: File containing information on clutch size, laying dates and end date of the incubation period for each nest.
Variables
- Nest_ID: unique identifier per nest
- Nr_eggs: clutch size
- Laying_date_first_egg: Date of laying of the first egg in the clutch in dd/mm/yyyy format
- Laying_date_last_egg: Date of laying of last egg in the clutch in dd/mm/yyyy format
- End_Date_Incubation: End date of the incubation period (date of hatching first chick) in dd/mm/yyyy format
- Clutch_size_end: Clutch size at the end of the incubation period
Note: The column 'End_Date_Incubation' contains empty values when hatch dates are unknown or when eggs did not hatch
File: Pair_IDs_OO.csv
Description: File containing unique ID's for each pair in Ostend. Resampled pairs across years have the same Pair_ID.
Variables
- Nest_ID: unique identifier per nest
- Year: study year
- Ring_1: Colour-ring code of first partner
- Ring_2: Colour-ring code of second partner
- Roof: Company or institution name of the building where the nest is located
- Pair_ID: unique identifier per pair
Note: Columns 'Ring_1' and 'Ring_2' contain empty values when one or both partners were unringed.
File: Pair_IDs_ZB.csv
Description: File containing unique ID's for each pair in Zeebrugge. Resampled pairs across years have the same Pair_ID.
Variables
- Nest_ID: unique identifier per nest
- Year: study year
- Ring_1: Colour-ring code of first partner
- Ring_2: Colour-ring code of second partner
- Nest_location: code to identify the location of the nests in the ground colony
- Pair_ID: unique identifier per pair
Note: Columns 'Ring_1' and 'Ring_2' contain empty values when one or both partners were unringed.
File: 20250521_data_avg_day_filtered.csv
Description: File containing a processed dataset derived from the raw temperature logger data. It includes daily summaries per nest (e.g., mean, variance, minimum and maximum incubation and ambient temperatures) for days with near-complete 24-hours recordings. The dataset excludes nest visit days, large data gaps, and known sensor issues, and integrates additional information such as incubation day, breeding environment, and incubation behavior metrics (daily off-bout frequency and duration). This file was created to streamline analyses without repeatedly reprocessing the raw temperature files.
Variables:
- Nest_ID: unique identifier per nest
- Date: Date in yyyy-mm-dd format
- Year: year, either 2023 or 2024
- Location: "OO" for Ostend, "ZB" for Zeebrugge
- Incubation_day: Number of days since the start of incubation (defined as the day the last egg was laid)
- avg_inc_temp: average incubation temperature (°C) for the given day
- var_inc_temp: variance of incubation temperature for the given day
- sd_inc_temp: standard deviation of incubation temperature for the given day
- min_inc_temp: minimum incubation temperature (°C) recorded on the given day
- max_inc_temp: maximum incubation temperature (°C) recorded on the given day
- avg_amb_temp: average ambient (°C) temperature for the given day
- var_amb_temp: variance of ambient temperature for the given day
- sd_amb_temp: standard deviation of ambient temperature for the given day
- min_amb_temp: minimum ambient temperature (°C) recorded on the given day
- max_amb_temp: maximum ambient temperature (°C) recorded on the given day
- file_name: name of the raw data file containing temperature recordings for the given day
- Date_last_egg: Date on which the last egg in the nest was laid, indicating the start of incubation (yyyy-mm-dd format)
- year_day: Day-of-year representation of the Date column (1 = January 1)
- breeding_type: nesting habitat type; "roof" for nests on rooftops in Ostend, "ground" for nests in the ground colony of Zeebrugge
- nr_on: number of on-bouts recorded for the given day
- nr_off: number of off-bouts recorded for the given day
- avg_off_duration: average duration in seconds of the recorded off-bouts for the given day
- total_time_off: Total time spent off the nest per day in seconds (sum of all off-bout durations)
- avg_temp_on_bouts: average temperature (°C) of the artificial egg during on-bouts
- avg_temp_off_bouts: average temperature (°C) of the artificial egg during off-bouts
- mean_head: Average head + bill length in mm of chicks in the corresponding nest measured at hatching
Note: column 'avg_temp_off_bouts' containts missing values when there were no off-bouts for the given day. Column 'mean_head' contains empty values when no chick of the corresponding nest was measured on the hatch day.
File: bouts_data_20250207.csv
Description: File containing a processed dataset derived from the raw temperature logger recordings, in which incubation on- and off-bouts were identified using the incR package. The dataset provides daily incubation metrics per nest, including the number of on- and off-bouts and average off-bout duration. Automated off-bout detection was visually checked and manually corrected where necessary to ensure accurate classification of incubation behavior.
Variables:
- Date: Date in yyyy-mm-dd format
- Nest_ID: unique identifier per nest
- nr_on: number of on-bouts recorded for the given day
- nr_off: number of off-bouts recorded for the given day
- avg_off_duration: average duration in seconds of the recorded off-bouts for the given day
- total_time_off: total time spent off the nest per day in seconds (sum of all off-bout durations)
- avg_temp_on_bouts: average temperature (°C) of the artificial egg during on-bouts
- avg_temp_off_bouts: average temperature (°C) of the artificial egg during off-bouts
File: initial_size_reald0_20250521.csv
Description: File containing information on the size and body mass of chicks measured on their hatching day.
Variables:
- Metal_ring: Unique identifier code of the metal ring assigned to each chick; if no metal ring was applied, this column contains the Egg_ID or the temporary identifier from the Festival_ID column
- Nest_ID: unique identifier per nest
- Egg_ID: Unique identifier per egg, composed of Nest_ID and laying order separated by an underscore
- Festival_ID: temporary identifier for each chick used before metal ringing, based on numbered bands or coloured tape. Value is either the unique code of the band, or Nest_ID plus the colour of the tape, separated by an underscore
- Colour_ring: Unique identifier code of the colour ring assigned to each chick
- Date: Date of measurement of the chick (yyyy-mm-dd format)
- Chick_Weight_gram: Weight of the chick in grams
- Tarsus_Length_mm: Tarsus length of the chick in mm
- Head_Length_mm: Head + bill length of the chick in mm
- Wing_Length_mm: Wing length of the chick in mm
- Food: Marks occurrences and identification of regurgitated food during handling
- Remarks: Notes on any relevant observations made during chick measurements
- Hatch_Date: date of hatching of the chick in yyyy-mm-dd format
- Chick_age: age of the chick in days
Note: The column 'Egg_ID' contains empty values when the chick could not be confidently assigned to a specific egg at hatching. The column 'Colour_ring' is empty or marked with "/" when no colour ring was applied. 'Wing_Length_mm' contains missing values as measurements were only taken when chicks were approximately 30 days old. 'Food' is empty when no regurgitation occurred during handling. 'Remarks' is empty when no additional notes were recorded.
File: 2024_Data_FS2_eggs.csv
Description: File containing information about the length, width, volume and fate of each egg during the 2024 breeding season.
Variables
- Nest_ID: unique identifier per nest
- Egg_ID: unique identifier per egg, composed of Nest_ID and laying order separated by an underscore
- Egg_Length_mm: Length of the egg in mm.
- Egg_Width_mm: Width of the egg (at the widest point) in mm.
- Egg_Volume: Egg volume, calculated from the formula: 0.476 x egg length x egg width^2 / 1000
- Hatched_successfully: 'yes' if the egg produced a live chick, 'no' if it did not. NA if the egg was collected.
- Frozen? (yes/no/location): 'no' if the egg was not collected for use in a different study. Otherwise, the location is indicated.
- predated: 'yes' if the egg was predated during the incubation period (prior to hatching), 'no' if it was not.
- broken: 'yes' if the egg was broken during the incubation period (prior to hatching), 'no' if it was not.
- hatching_failure: 'yes' if the egg failed to hatch, 'no' if it hatched.
Note: columns 'Egg_Length_mm', 'Egg_Width_mm' and 'Egg_Volume' contain empty values when eggs were not measured.
File: Data_FS1_eggs.csv
Description: File containing information about the length, width, volume and fate of each egg during the 2023 breeding season.
Variables
- Nest_ID: unique identifier per nest
- Egg_ID: unique identifier per egg, composed of Nest_ID and laying order separated by an underscore
- Egg_Length_mm: Length of the egg in mm.
- Egg_Width_mm: Width of the egg (at the widest point) in mm.
- Egg_Volume: Egg volume, calculated from the formula: 0.476 x egg length x egg width^2 / 1000
- Hatched_successfully: 'yes' if the egg produced a live chick, 'no' if it did not. NA if the egg was collected.
- Frozen? (yes/no/location): 'no' if the egg was not collected for use in a different study. Otherwise, the location is indicated.
- predated: 'yes' if the egg was predated during the incubation period (prior to hatching), 'no' if it was not.
- broken: 'yes' if the egg was broken during the incubation period (prior to hatching), 'no' if it was not.
- hatching_failure: 'yes' if the egg failed to hatch, 'no' if it hatched.
Note: columns 'Egg_Length_mm' and 'Egg_Width_mm' contain empty values when eggs were not measured. 'Egg_Volume' is empty because it is calculated in the script '3. Data analysis OA.Rmd'.
File: 1._Identifying_on-_and_off-bouts.Rmd
Description: This R Markdown script processes raw incubation temperature data to identify on- and off-bouts using the incR package. It includes steps for data preparation, subsampling, removal of nest visit days, temperature-based scoring of on- and off-bouts, manual adjustments for missed or unusual events, and summarizing bout statistics (number, duration and average temperatures). The output includes a processed bouts_data table ready for further analysis.
File: 2._create_data_table_for_analysis.Rmd
Description: This R Markdown script processes raw nest temperature data to generate a daily summary per nest. It includes steps for data preparation, subsampling, removal of nest visit days, and calculating daily summary statistics for incubation and ambient temperature. The output includes a cleaned and enriched dataset ready for further analysis.
File: 3._Data_analysis_OA.Rmd
Description: This R Markdown script performs all statistical analyses for the study, starting from processed incubation and egg data. It includes:
- comparison of off-bout frequency and duration between rooftop and ground nests.
- modelling the effects of rooftop breeding and incubation behavior on hatching success, both including and excluding nests affected by egg predation or breakage.
- analysis of chick head size at hatching and parental quality (egg volume) accross habitats and years.
- comparison of ambient temperatures between habitats and years
The script includes data preparation, model selection, model diagnostics and visualization of key results.
Code/software
Software
R version 4.2.2 was used to run all analysis scripts, together with RStudio version 2026.1.1.403.
Microsoft Excel was used for opening CSV/Excel data files
R workflow and packages
All R scripts include the full list of required packages.
Scripts included
Each script is a fully reproducible workflow. Running the scripts in order (1. Identifying on- and off-bouts, 2. create data table for analysis, 3. Data analysis OA) follows a logical workflow. However, each script can also be run independently, since the output generated by the first two scripts is provided separately. The scripts specify all package dependencies.
