Field margins as ecological corridors: Uncovering connectivity in agricultural landscapes using high-resolution tracking data and translocation experiments
Data files
Jul 07, 2025 version files 204.85 MB
-
Field_Margins_Bulbul.zip
204.84 MB
-
README.md
8.36 KB
Abstract
Ecological corridors are key for reducing habitat fragmentation, yet their designation often relies on structural connectivity analysis based on expert opinion, land uses, and species occurrence rather than actual movement analysis, limiting our understanding of their effectiveness. This study aims to explore and experimentally test how different habitats facilitate or impede species movement in an intensive agricultural landscape designated as ecological corridors.
Using a cutting-edge tracking system (ATLAS), we monitored the movement of 68 white-spectacled bulbuls (Pycnonotus xanthopygos) at high resolution (4 or 8-second intervals) and explored fine-scale habitat selection through integrated step selection analysis, focusing on movement segments while excluding static periods. To validate our observational findings, we conducted a translocation experiment with 64 bulbuls across three habitat treatments: natural, arable fields, and arable fields intersected by a main paved road. We compared return time, number of stops, the movement straightness of return flights across treatments, and the habitat selection during these flights.
Bulbuls avoided arable fields, which significantly impeded their movement through the agricultural landscape. This was further confirmed in the translocation experiment, where bulbuls from the 'arable field' treatment took the longest to return, made the most stops, and followed the most tortuous paths.
Bulbuls demonstrated a strong preference for vegetative features, such as narrow field-margins, which comprised only 2.2% of the study area, underscoring their importance as movement corridors. The translocation experiment reinforced this result, with bulbuls consistently selecting field-margins regardless of their treatment group. Additionally, bulbuls from the ‘natural’ treatment returned the fastest and followed the most direct paths.
Synthesis and applications: Our study demonstrates that field-margins can play a major role in maintaining connectivity and enhancing ecological corridor functionality in intensive agriculture landscapes, even for habitat generalist species like the bulbul. The use of high-resolution movement data enabled fine-scale habitat analysis, revealing the key role of these vegetative features in facilitating movement. Conservation efforts should prioritize maintaining these small-scale elements to enhance corridor effectiveness in agricultural landscapes.
Dataset DOI: 10.5061/dryad.wwpzgmsxg
The data in this repository were collected as part of a study investigating the fine-scale habitat selection of the white-spectacled bulbul (Pycnonotus xanthopygos) within an intensively managed agricultural landscape. The study integrated high-resolution GPS tracking with experimental translocation to assess habitat selection and movement behaviour.
The file Field_Margins_Bulbul.zip
contains an R project (fieldMargins.Rproj
) with all relevant data files, analysis scripts, and custom functions used to generate the results presented in the associated manuscript.
Description of the data and file structure
Files
iSSA.tags.Info.RData
: Metadata associated with each tracked bulbul used in iSSA.
iSSA.data.list.RData
: A list containing individual-level data frames of subsampled observed movement steps and matched simulated available steps used for integrated step selection analysis (iSSA).trans_info.RData
: A data frame containing metadata and movement summaries for experimentally translocated bulbuls.return.routes.list.RData
: A list of return trajectories from experimentally translocated bulbuls.beeLine_habitats.RData
: A data frame quantifying the length of each land-use type along the straight-line (beeline) path between capture and release locations for each translocated bulbul.colorsCostum.RData
: A character vector of custom hexadecimal color codes used to represent individual birds in plots.
Files content
iSSA.tags.Info.RData
*tag: *Unique identifier for each bulbul individual.
sample_rate: Sampling rate of the ATLAS tags.
raw.data: Total number of raw fixes collected.
valid.data: Number of valid fixes after data filtering.
translocation: Indicator of whether the bulbul was experimentally translocated (0 = no, 1 = yes).
bird.weight: Body weight of the bulbul (in grams).
sex: Sex of the bulbul (M = male, F = female, NA = unknown).
capture.location: Name of the capture site.
iSSA.unique.dates: Number of unique days with data used in iSSA.
iSSA.total.locs: Total number of fixes used in the iSSA analysis.
Variables iSSA.data.list.RData
(per individual)
id: Unique identifier for each bulbul.
burst_: Segment identifier for a continuous sequence of movement.
x1_,* y1_*: Coordinates (x, y) of the start location of the step.
x2_, y2_: Coordinates (x, y) of the end location of the step.
sl_: Step length, the distance between consecutive fixes (in meters).
direction_p: Direction of the step in radians.
ta_: Turning angle , change in direction from previous step (in radians).
t1_: Timestamp at the start of the step (POSIXct).
t2_: Timestamp at the end of the step (POSIXct).
dt_: Time interval between steps (in seconds).
step_id_: Identifier for each unique movement step.
case_: Indicates whether the step was used (TRUE) or available (FALSE).
cos_ta_: Cosine of the turning angle.
log_sl_: Log-transformed step length.
landUseStart: Numeric code for the land-use category at the start of the step.
landUseEnd: Numeric code for the land-use category at the end of the step.
landUse_start: Land-use category name at the start of the step.
landUse_end: Land-use category name at the end of the step.
trans_info.RData
tag: Unique identifier for each translocated bulbul.
sex: Sex of the bird (M = male, F = female).
birdWeight: Body weight at the time of capture (in grams).
treatment: Description of the release habitat type (e.g., Natural, Arable field & road).
captureLoc: Name of the capture location.
releaseSite: Name/code of the site where the bird was released.
releaseDist: Distance between capture and release sites (in kilometers).
returnDur: Duration of the return journey (in hours).
stops: Total number of stops recorded during the return.
si: Straightness index of the return trajectory (0 = low straightness, 1 = high).
startEndLine: Straight-line distance between start and end points of the return path (in kilometers).
log_returnDur: Natural log of the return duration.
log_stops: Natural log of the number of stops.
birdWeight_scaled: Z-transformed bird weight.
releaseDist_scaled: Z-transformed release distance.
Variables in return.routes.list
(per individual)
Used in analysis
TAG: Unique identifier for each bulbul.
landUse: Land-use category at the fix location (e.g., Natural Habitats).
case_: Logical (TRUE = real point, FALSE = not used; all TRUE in this list).
ADP.ID: Identifier for stationary segments.
Additional variables (not used in analysis)
TIME: Raw time value in milliseconds since epoch (Unix time).
X, Y: Easting and northing coordinates (EPSG:2039, Israel TM Grid, in meters).
dateTime: Timestamp of the fix (in POSIXct format).
date: Calendar date of the fix.
DAY: Day index of the trajectory.
distance: Step length to the next point (in meters).
dT: Time interval to the next fix (in seconds).
spd: Speed between consecutive fixes (meters per second).
angl: Turning angle relative to previous step (in degrees).
timeGapBurst: Burst index assigned based on time gaps between consecutive fixes.
pointInBurst: Number of fixes within the current burst.
ADP.ID, ADP.X, ADP.Y, ADP.start, ADP.end, ADP.duration, ADP.qlt: Fields for identifying and describing stationary behavior segments.
seg.ID: Identifier for movement segments.
Sun_angle: Sun angle above the horizon (in degrees).
inDay: Logical (TRUE/FALSE) indicating if the fix occurred during the day.
changeDay: Logical indicator of a date transition in the tracking data.
dayIndex: Sequential day index within the return period.
distFromRelease: Distance from the release site to current fix (in meters).
distFromCapture: Distance from the original capture location to current fix (in meters).
landUse: Land-use category at the fix location.
LON: Longitude coordinate (WGS84).
LAT: Latitude coordinate (WGS84).
case_: Logical (TRUE = real point, FALSE = not used; all TRUE in this list).
beeLine_habitats
tag: Unique identifier for each translocated bulbul.
landUse: Land-use category along the beeline path.
habitat_length: Total length of land-use type intersected by the beeline path (in meters).
beeLine_length: Total length of the straight-line (beeline) path between capture and release locations (in meters).
Scripts
iSSA.R
: Main script for conducting integrated Step Selection Analysis (iSSA).
The script performs the following steps:
- Fits individual-level iSSA models to assess habitat selection.
- Summarizes model outputs at both individual and population levels.
- Visualizes relative selection strength (RSS) across habitats.
- Updates and compares step length and turning angle distributions by habitat.
- Compares habitat selection patterns between translocated and non-translocated birds.
- Produces model output tables and plots included in the manuscript and supplementary materials.
Translocation_analysis.R
: Script for analyzing translocation experiment data.
The analysis includes:
- Fitting mixed-effects models to assess treatment effects on return time, number of stops, and path straightness.
- Producing summary tables and diagnostic outputs (Table 1).
- Visualizing return behavior metrics across treatment groups (Figure 4).
- Comparing habitat use along actual return routes to habitat availability along straight-line (bee-line) paths using Wilcoxon tests (Table S3).
- Visualizing log-transformed habitat selection ratios (ln(used/bee-line)) across land-use types (Figure 5).
functions.R
: Contains custom functions used in both scripts.
Code/software
The analysis was conducted in the R programming environment. All scripts are written in R and include explicit calls to load the required R packages.
The analysis was conducted using R (version 4.5.0) within the RStudio integrated development environment. All scripts are written in R and include explicit calls to load the required packages.