A test of the species-sorting hypothesis in avian communities along temperature and longitudinal gradients across North America
Data files
Apr 08, 2026 version files 69.24 MB
-
README.md
9.49 KB
-
rproj_sp-sorting.zip
69.23 MB
Abstract
Aim / Background
Abiotic and biotic factors have long been investigated as drivers of ecological community structure. However, few studies that investigate the drivers of community structure use dynamic and stochastic modeling techniques to evaluate how seasonal extremes in climatic harshness may drive species turnover at large spatial scales across North America. Here we use the species sorting hypothesis, modified with parameters from Neutral Theory, to evaluate if avian community turnover can be explained by seasonal harshness gradients at large spatial scales in North America.
Location
North America
Time Period
2019
Major Taxa Studied
North American avifauna
Methods
Using North American Breeding Bird Survey data, we simulated varying rates of post-dispersal environmental filtering (referred to here as immigration) from a metacommunity to local communities, determined the rate of immigration that best modeled observed rates of community diversity for each community, then explored how rates of immigration changed with averaged minimum winter temperate across three ecoregions in North America. We also found that mean low temperatures from the winter of 2018 – 2019 was not especially harsh or mild when compared to previous or subsequent years, reducing the likelihood that unusually harsh weather may have impacted our investigation of environmental filtering.
Results
Contrary to the species sorting hypotheses, we found a strong negative correlation between rates of immigration and average minimum winter temperature in western North America, particularly within the Mediterranean California and marine west coast forest ecoregions. We found that a linear relationship between rates of immigration and average minimum winter temperature did not differ from null models in two other ecoregions representing the great plains and eastern temperature forest ecoregions. However, after grouping immigration values into broader eastern and western regions, we found stronger correlations with immigration values and longitude, with immigration values increasing from the geographical center of North America towards western and eastern coastal regions. Linear models describing the relationship between immigration and longitude explained 4 and 11% of linear model variation. Lastly, we found that the winter prior to the one used in our analysis (2018 – 2019) was not especially harsh or mild, reducing the likelihood that above-average harsh weather effected our results. We find low support that minimum winter temperature as a measure of harshness can explain community turnover within ecoregions. Instead, we find evidence that community turnover is better explained by longitudinal harshness gradients, suggesting that terrestrial ecological communities may be structured by climatic harshness only along extreme harshness gradients like the one observed longitudinally in North America, a result that underscores the importance of the gradient selection process when conducting ecological studies.
Main Conclusions
We find low support that environmental harshness gradients can explain community turnover across latitudes. Instead, we find evidence that community turnover is better explained by longitudinal harshness gradients, suggesting that avian communities are structured by climatic harshness only along extreme harshness gradients like the one observed longitudinally in North America, a result that underscores the importance of the gradient selection process when conducting ecological studies.
Introduction
Included in this zip file are all datasets and R scripts used for analysis. It is important that the file 01_main-analysis_20260203 is run first, as subsequent files (e.g. 02_ten-year-tmin_20260218) require datasets from the main analysis to be loaded. At a minimum, the R object “together-data” should be loaded into the R environment (“data-processed/together-data”) as this is the main file used to generate our results.
For more information and metadata on Breeding Bird Survey (BBS) data, as well as the 2019 release used in our analysis, see https://www.sciencebase.gov/catalog/item/5d65256ae4b09b198a26c1d7
Misc. Files
- rproj_sp-sorting.zip
- R project file used to organize analysis
Scripts
- 01_main-analysis_20260203
- core of analysis; contains code describing main packages used, uploading of project files, filtering of BBS data, creation of metacommunities for each ecoregion, running of ecolottery to generate community models, ABC analysis and output, graphs and modeling, figure creation, and misc. calculations.
- 02_ten-year-tmin_20260218
- script used to download daymetR climate data, generate box/violin plots of long-term climate data
- 03_checking-BBS-averages_20260102
- script containing comparison of adjusted and unadjusted BBS abundance values, including graphical and modeling output.
Raw Data
We have submitted our raw data (folder: data-raw), consisting of the following files.
- BBS_1993-2019_expanded_trend_best
Processed Data
We have also submitted processed data (folder: data-processed), consisting of the following files.
- abc.example.output
- bbs-assistant_spplist
- bbs-data-appended
- bbs-routes-appended
- bbs-weather-appended
- ebird-st-data
- tmin
- together-data
Descriptions
- BBS_1993-2019_expanded_trend_best
- adjusted abundance values from Sauer et al.’s (2019) BBS abundance analysis
- data used in analysis of how adjusted abundance values compare to “raw” BBS abundance data used in our analysis (script 03_checking-BBS-averages_20260102)
- only the column Relative.Abundance was used in our analysis. this represents the result of a hierarchical model-selection process that accounts for observer effect and annual variation to generate adjusted BBS abundance values
- in general, the following credibility measures use letters to denote data quality: “R” = Red, indicating data with an important deficiency; “Y” = Yellow, data with some deficiency; “G” = Green, sufficient sample size and/or precision; ” ” (no code) = adequate sample sizes to estimate relative abundance, moderate precision, etc.
- Sample.Size: sample size of credibility measure
- Precision: precision of credibility measure
- Abundance: relative abundance component of credibility measure
- Significance: variable that denotes if abundance estimate exceeds the 95% credible interval
- Region: Bird Conservation Region (BCR)
- Model: model type used for analysis
- N.Routes: number of routes used to calculate adjusted abundance value
- Trend annual trend in population metrics
- X2.5.CI/X97.5.CI: upper/lower credible intervals for relative abundance estimates
- for full metadata and more information, see https://www.sciencebase.gov/catalog/item/5f1836a482cef313ed843104
- abc.example.output
- example output of approximate Bayesian computation (ABC) analysis used to determine modeled communities that best match real-world BBS communities.
- used to analyze and view ABC output, (01_main-analysis_20260203)
- note that this “example” output contains information for only 10 routes (100 routes were used in our final analysis)
- mean: mean of accepted immigration values
- sd: standard deviation of accepted immigration values
- var: variance of accepted immigration values
- lower.ci: lower confidence interval of accepted immigration values
- upper.ci: upper confidence interval of accepted immigration values
- bbs-assistant_spplist
- a file that contains English names, AOU codes, taxonomic data, and scientific names for North American avifauna.
- this file was used to match and extract data between eBird status and trends data and BBS data, as the two datasets do not use the same species identifiers.
- note that this file was included as part of the bbsAssistant package, which is no longer functional as of R version 4.5.2.
- source: https://github.com/trashbirdecology/bbsAssistant
- bbs-data-appended
- BBS data used in our analysis to generate a metacommunity, as well as for comparison of modeled communities to real-world communities. appended with route totals and route codes.
- note that this file was extracted from the bbsAssistant package, which is no longer functional as of R version 4.5.2.
- source: https://github.com/trashbirdecology/bbsAssistant
- bbs-routes-appended
- BBS survey route data, including route numbers, route names, and appended with route coordinate information.
- initially extracted using the bbsAssistant package, which is no longer functional as of R version 4.5.2.
- Year: year survey was conducted
- AOU American Ornithological Union species identifier number
- Stop XX (e.g. “Stop1”, through “Stop50”): number of individuals counted at each stop along a BBS route. in our analysis we considered a full route (all 50 stops) as representative of a local community.
- CS/CSR: route code, appended from other columns within the dataframe (C = CountryNum, S = StateNum, R = Route)
- route_totals: row sums of individuals seen along all 50 stops of each route
- bbs-weather-appended
- BBS weather and survey-quality data, used to filter data used in our analysis to only include data with the highest quality rating.
- initially extracted using the bbsAssistant package, which is no longer functional as of R version 4.5.2.
- RunType: representative of survey quality; RunType = 1 means survey data meets highest quality standards (the standard used to filter data for our analysis)
- ebird-st-data
- eBird status and trends data (ST), downloaded via https://science.ebird.org/en/status-and-trends/download-data
- used to categorize species as resident or migratory; migratory birds were excluded from our analysis
- note that downloading ebird ST data is no longer facile and requires a login/dedicated R package, so the initial dataset used in our analysis is provided here for ease of use.
- includes species identifiers, resident status, and abundance data (though only a species’ status as migratory or resident was used for the purpose of our analysis)
- tmin (tmin.df)
- dataframe of minimum winter temperature data, downloaded using the daymetR package and processed to correspond with route data
- used in our analysis to generate boxplots of 10-year temperature trends
- start/end: start and end year of minimum winter temperature recording period
- tmin: daily low temperature
- route: BBS route CSR ID (see 03. above)
- ecoregion: ecoregion category of each route (eastern temperate forest (ETF), Great Plains (GP), etc)
- lat/long: latitude and longitude data of each route
- season: winter season, defined as November of one year to February of the following year.
- together-data
- the main dataframe used in our analysis: a relatively “complete” dataframe that contains BBS route data, route lat/long information, spatial points data, and the immigration rate that best modeled each local community.
- (column “mhats”), the species diversity (specnum.obs) and Shannon diversity index (shandiv.obs) of each observed BBS community, and minimum winter temperature averages for each route
- route: route ID (see 03. for CSR info)
- latitude/longitude: coordinate data of each route
- mhats: the immigration rate that best modeled each local community, output of our ABC analysis
- specnum.obs: species diversity of real-world BBS routes
- shandiv.obs: Shannon diversity index of real-world BBS routes
- region_2: broader scale classification of each route within its corresponding ecoregion. in this category, the Mediterranean California ecoregion was grouped with the marine west coast forest ecoregion.
- region: finer scale classification of each route within its corresponding ecoregion. in this category, the Mediterranean California ecoregion was grouped seperately from the marine west coast forest ecoregion.
- geometry: coordinates in sp (spatial points) format used for mapping
- tmin: mean winter temperature data of each route
Code/Software
Annotations provided in script, along with necessary packages and installation procedures (when installing from sources outside the typical R repository). Code also includes figure creation and data loading and cleaning.
