biofetchR

biofetchR is an R package for building reproducible biodiversity occurrence-data workflows. It helps users download, clean, classify, enrich, audit and export occurrence records for ecological, macroecological and invasion-biology analyses.

The package is designed around GBIF-based occurrence processing, with workflows for terrestrial, freshwater and marine systems. It is especially useful for projects that need to process many species, countries or species-country combinations in a consistent way, while retaining clear audit trails for taxonomic resolution, coordinate filtering, spatial attribution, native-range evidence and invasion-status classification.

biofetchR links occurrence records to biologically, environmentally and geographically meaningful spatial contexts. These include administrative units, freshwater basins and ecoregions, protected-area layers, terrestrial ecoregions, marine regions, EEZ-style units and marine ecoregional overlays. It also supports native-range and invasion-status evidence from sources such as GBIF, WoRMS, SInAS and GRIIS, helping users distinguish native, non-native and invasive records where supporting evidence is available.

biofetchR is not a plotting package. The figures below illustrate examples of spatial summaries that can be produced from biofetchR outputs using standard R spatial and visualisation tools such as sf, dplyr and ggplot2.

Visual workflow examples

Terrestrial occurrence workflows

The terrestrial workflow focuses on assigning cleaned GBIF records to land-based spatial units. Users can summarise records by administrative boundaries, terrestrial ecoregions, protected areas and other landscape-context layers, depending on the spatial question being asked.

The example above shows invasive species richness summarised across subnational administrative units. In this case, biofetchR provides the cleaned and spatially attributed occurrence table; the map is then produced separately from that output.

Typical terrestrial use cases include:

Freshwater occurrence workflows

Freshwater workflows focus on occurrence records whose ecological context is best described by inland-water systems, including rivers, lakes, reservoirs, wetlands, catchments and freshwater ecoregions. In biofetchR, occurrence records can be attributed to freshwater ecoregions, basins, river and lake layers, reservoirs, wetlands, Ramsar sites and related hydrological overlays.

The example above summarises occurrence records against Freshwater Ecoregions of the World (FEOW). This is useful when the main question concerns drainage systems, freshwater biogeographic units, catchments or inland-water habitats, rather than broader terrestrial landscape contexts.

Typical freshwater use cases include:

Marine occurrence workflows

Marine workflows are designed to retain and interpret coastal, island and offshore records that may be excluded, misclassified or poorly summarised by land-focused occurrence workflows. In biofetchR, these records can be assigned to supported marine layers including EEZ-style units, Marine Regions products, IHO sea areas, Marine Ecoregions of the World and Large Marine Ecosystem (LME) polygons.

The example above shows marine records summarised across offshore and coastal grid cells. This provides a simple visual summary of where records occur, while the same workflow can also be used with named marine overlays when the question concerns jurisdictions, ecoregions, seas, shelves, islands, ports or other coastal and ocean contexts.

Typical marine use cases include:

What biofetchR does

biofetchR is built around input tables that define the taxa and places to be processed, usually with one row per species-country combination and columns such as species and iso2c. For each row, the package can request matching GBIF occurrence records, import the completed download, clean and standardise the records, attach spatial context, add native-range or invasion-status evidence, and write processed outputs with diagnostic summaries.

Core workflow steps include:

biofetchR keeps the main processing decisions visible. During a run, users can inspect how many records were returned, which records were removed during cleaning, where spatial joins succeeded or failed, and which evidence sources were used when assigning native, introduced or invasive status.

The resulting outputs are designed to be checked before analysis, rather than accepted as a single final table. This makes them suitable for biodiversity, macroecological, conservation and invasion-biology projects where occurrence records need to be cleaned, spatially attributed and interpreted consistently across many taxa or regions.

Installation

Install biofetchR outside package checks, following the installation instructions provided with the source repository.

Then load the package:

library(biofetchR)

Workflow summary

Most biofetchR workflows start from an input table of species-country combinations, usually with species and iso2c columns. Each row is treated as a processing unit: the package resolves the taxon, requests or reads the matching GBIF records for that country, applies the selected cleaning and spatial steps, and writes outputs to the chosen folder.

Workflow Use when Main output
Terrestrial Records need to be interpreted using land-based boundaries or landscape-context layers Cleaned occurrence records joined to the selected terrestrial overlays
Freshwater Records are associated with inland-water systems or freshwater biogeographic units Cleaned occurrence records joined to the selected freshwater overlays
Marine Records are coastal, island-associated or offshore Cleaned occurrence records joined to the selected marine overlays
Origin and status evidence A workflow needs native-range, introduced-status or invasive-status information Evidence fields that help interpret species-country origin and invasion status
Export options Results need to be inspected, reused or split across a large batch Combined outputs, diagnostic summaries and optional per-species-country files

These workflow components can be used separately or combined. For example, a species-country table can be processed through the terrestrial workflow, enriched with origin and status evidence, and exported either as one combined table or as separate files for each species-country combination.

The choice of workflow depends on the study system and the spatial question. A terrestrial analysis may require administrative units, a freshwater analysis may require hydrological context, and a marine analysis may require offshore or jurisdictional marine layers. The sections below show these options in more detail.

Terrestrial and freshwater workflows

Terrestrial and freshwater workflows usually start from a species-country input table. The simplest format is one row per species-country combination, with a species column and an ISO2 country code in iso2c.

terrestrial_input <- data.frame(
  species = c(
    "Xenopus laevis",
    "Trachemys scripta"
  ),
  iso2c = c(
    "FR",
    "GB"
  ),
  stringsAsFactors = FALSE
)

terrestrial_input
#>             species iso2c
#> 1    Xenopus laevis    FR
#> 2 Trachemys scripta    GB

The terrestrial example below requests GBIF records for each species-country combination, applies the selected cleaning and thinning settings, and assigns retained records to GADM level-1 administrative units.

result <- process_gbif_terrestrial_freshwater_pipeline(
  # Input table with one row per species-country combination.
  df = terrestrial_input,

  # Folder where processed records, summaries and diagnostics will be written.
  output_dir = file.path(example_output_root, "terrestrial_gadm"),

  # GBIF credentials. These are best stored as environment variables.
  user = Sys.getenv("GBIF_USER"),
  pwd = Sys.getenv("GBIF_PWD"),
  email = Sys.getenv("GBIF_EMAIL"),

  # Spatial overlay settings. Here, records are joined to GADM level-1 units.
  region_source = "gadm",
  gadm_unit = 1,

  # Record-cleaning settings.
  apply_cleaning = TRUE,
  apply_thinning = TRUE,
  dist_km = 5,

  # Output settings. For larger batches, write results to disk instead of
  # keeping all records in memory.
  export_summary = TRUE,
  store_in_memory = FALSE,
  return_all_results = FALSE
)

For freshwater analyses, the same input table can be processed with a freshwater-specific region_source. In this example, records are assigned to Freshwater Ecoregions of the World (FEOW).

freshwater_result <- process_gbif_terrestrial_freshwater_pipeline(
  df = terrestrial_input,

  output_dir = file.path(example_output_root, "freshwater_feow"),

  user = Sys.getenv("GBIF_USER"),
  pwd = Sys.getenv("GBIF_PWD"),
  email = Sys.getenv("GBIF_EMAIL"),

  # Use a freshwater overlay instead of an administrative boundary.
  region_source = "feow",

  apply_cleaning = TRUE,
  apply_thinning = TRUE,
  dist_km = 5,

  export_summary = TRUE,
  store_in_memory = FALSE,
  return_all_results = FALSE
)
freshwater_result <- process_gbif_terrestrial_freshwater_pipeline(
  df = terrestrial_input,

  output_dir = file.path(example_output_root, "freshwater_feow"),

  user = Sys.getenv("GBIF_USER"),
  pwd = Sys.getenv("GBIF_PWD"),
  email = Sys.getenv("GBIF_EMAIL"),

  # Use a freshwater overlay instead of an administrative boundary.
  region_source = "feow",

  apply_cleaning = TRUE,
  apply_thinning = TRUE,
  dist_km = 5,

  export_summary = TRUE,
  store_in_memory = FALSE,
  return_all_results = FALSE
)

For larger batches, store_in_memory = FALSE writes results to the output folder instead of holding them as one large R object. This is useful when users want outputs saved separately for individual species-country combinations.

Marine workflows

Marine workflows use a separate pipeline for coastal, offshore and other marine occurrence records. Unlike the terrestrial and freshwater examples above, the marine input can be a species table without a country column.

marine_input <- data.frame(
  species = c(
    "Carcinus maenas",
    "Undaria pinnatifida"
  ),
  stringsAsFactors = FALSE
)

marine_input
#>               species
#> 1     Carcinus maenas
#> 2 Undaria pinnatifida

The example below assigns marine occurrence records to EEZ-style polygons. Other supported marine overlays can be selected by changing the overlay argument.

marine_result <- process_gbif_marine_pipeline(
  df = marine_input,

  output_dir = file.path(example_output_root, "marine_eez"),

  user = Sys.getenv("GBIF_USER"),
  pwd = Sys.getenv("GBIF_PWD"),
  email = Sys.getenv("GBIF_EMAIL"),

  # Choose the marine overlay used for spatial attribution.
  overlay = "eez",
  overlay_cache_dir = file.path(example_cache_root, "marine_overlays"),

  apply_cleaning = TRUE,
  apply_thinning = TRUE,
  dist_km = 5,

  export_summary = TRUE,
  store_in_memory = FALSE,
  return_all_results = FALSE
)

Choose the marine overlay according to the spatial question. EEZ-style layers are useful for jurisdictional marine areas, Large Marine Ecosystem (LME) polygons for broad ecosystem regions, MEOW for coastal marine biogeography, and IHO sea areas for named seas or hydrographic regions.

Origin and invasive-status evidence

biofetchR can add origin and invasive-status fields to processed occurrence outputs before users decide whether to filter records. This separates occurrence processing from biological interpretation: a record can be cleaned and spatially attributed first, then assessed using the available evidence for whether the species is native, introduced, invasive or unresolved in that location.

The evidence sources used depend on the workflow and settings selected. GBIF, WoRMS and SInAS can contribute native-range or origin information, while GRIIS-style species-country records can support introduced or invasive-status classification. Because these sources differ in coverage, terminology and spatial resolution, biofetchR treats them as evidence fields that can be inspected rather than as a single automatic decision.

origin_result <- process_gbif_terrestrial_freshwater_pipeline(
  df = terrestrial_input,

  output_dir = file.path(example_output_root, "terrestrial_origin_audit"),

  user = Sys.getenv("GBIF_USER"),
  pwd = Sys.getenv("GBIF_PWD"),
  email = Sys.getenv("GBIF_EMAIL"),

  region_source = "gadm",
  gadm_unit = 1,

  # Add GRIIS-style introduced or invasive-status evidence, but do not
  # restrict the first run to invasive-only records.
  use_griis = TRUE,
  filter_griis_invasive = FALSE,

  # Add native-range evidence and export it for inspection.
  use_native_range = TRUE,
  use_native_web = TRUE,
  native_web_sources = c("sinas", "gbif"),
  native_filter_mode = "audit_only",

  # Combine available origin/status fields into a clearer audit output.
  reconcile_origin_evidence = TRUE,
  export_origin_audit = TRUE,

  apply_cleaning = TRUE,
  apply_thinning = TRUE,
  dist_km = 5,

  export_summary = TRUE,
  store_in_memory = FALSE,
  return_all_results = FALSE
)

In this example, the first run is evidence-based rather than filter-first. GRIIS-style information is attached, native-range evidence is queried, and the combined origin/status fields are exported for review. This lets users check which species-country combinations have consistent, conflicting or unresolved evidence before applying stricter filtering rules.

Typical origin and status use cases include:

For publication-facing workflows, users should report which evidence sources were used, whether they were used for inspection or filtering, and how uncertain or conflicting classifications were handled.

Outputs and diagnostics

Most high-level biofetchR workflows write a gbif_summary.csv file to the selected output_dir. This file gives a row-by-row overview of the run, including which species-country combinations succeeded, which failed or returned no records, how many records were retained after processing, and where the exported files were saved.

The summary file is the best place to start after a batch run. It helps users spot failed downloads, missing output files, unexpectedly low record retention, or large differences between raw, cleaned and thinned record counts without opening every occurrence table individually.

Common gbif_summary.csv fields include:

Field Meaning
species Species name processed by the workflow
status Whether the row succeeded, failed, returned no records or was skipped
fail_stage Processing step where a failure occurred, where relevant
fail_reason Short explanation of the failure or issue
n_total Number of records returned before cleaning
n_cleaned Number of records retained after coordinate cleaning
n_thinned Number of records retained after optional spatial thinning
output_file Path to the exported occurrence file for that row
download_key GBIF download key, where available
doi GBIF download DOI, where available
region_source Spatial overlay used for attribution
gadm_unit GADM administrative level, where relevant
notes Additional processing notes, where generated

For larger analyses, useful files to keep include the original input table, gbif_summary.csv, exported occurrence files, origin-evidence outputs, spatial-attribution diagnostics, failed-row logs, GBIF download keys or DOIs, overlay-source metadata and sessionInfo() output.

A simple output folder might look like this:

outputs/
├── gbif_summary.csv
├── occurrence_files/
│   ├── Xenopus_laevis_FR.csv
│   └── Trachemys_scripta_GB.csv
├── audits/
│   ├── origin_evidence_audit.csv
│   ├── spatial_attribution_audit.csv
│   └── failed_rows.csv
├── cache/
│   ├── gbif/
│   └── spatial_overlays/
└── sessionInfo.txt

These files make the processing history easier to check and reuse. They show which input rows were processed, which records were retained or removed, which spatial layers were applied, and which origin or invasive-status evidence was attached. For publication-facing analyses, they should be kept with the main analysis outputs rather than treated as temporary files.

The package includes user guides for the main biofetchR workflows. These are best used as worked examples: they show how to structure inputs, choose settings, run pipelines and inspect the files written to the output folder.

Guide File Start here when you want to…
Batch pipelines biofetchR-batch-pipelines.Rmd run terrestrial or freshwater GBIF workflows for species-country tables
Origin evidence biofetchR-origin-evidence.Rmd add native-range, introduced-status or invasive-status evidence
Spatial overlays biofetchR-spatial-overlays.Rmd join cleaned records to administrative, ecological or contextual layers
Marine workflows biofetchR-marine-workflows.Rmd process coastal and offshore records with marine-region overlays
Auditing and scaling biofetchR-auditing-and-scaling.Rmd inspect outputs, diagnose failed rows and manage larger batches

New users should usually begin with the batch-pipelines guide, because it introduces the standard species-country input format and the main terrestrial and freshwater pipeline. The origin-evidence and spatial-overlays guides can then be used when a workflow needs biological status fields or additional spatial context. The marine guide covers the separate marine pipeline, and the auditing-and-scaling guide is useful before running larger input tables.

After installing biofetchR, all guides can be opened from R with:

browseVignettes("biofetchR")

Individual guides can also be opened directly:

vignette("biofetchR-batch-pipelines", package = "biofetchR")
vignette("biofetchR-origin-evidence", package = "biofetchR")
vignette("biofetchR-spatial-overlays", package = "biofetchR")
vignette("biofetchR-marine-workflows", package = "biofetchR")
vignette("biofetchR-auditing-and-scaling", package = "biofetchR")

Function-level help is available through the usual R help system:

?process_gbif_terrestrial_freshwater_pipeline
?process_gbif_marine_pipeline

Optional workflow dependencies

Most packages needed for standard biofetchR workflows are installed with the package. A smaller number of packages are only needed for particular features, such as raster-based overlays, geometry repair, OpenStreetMap layers, Natural Earth helpers or WoRMS queries.

These packages are treated as optional because not every user will need every provider or spatial-data source. For example, a basic GBIF occurrence workflow does not necessarily require packages used for raster layers, marine-origin lookups or OpenStreetMap-derived context.

If a selected workflow needs an optional package that is not installed, biofetchR will report the missing package. Install it, then rerun the workflow.

biofetchR::install_optional_deps()
#>               package                                         purpose available
#> 1           geosphere     Distance calculations and spatial utilities      TRUE
#> 2             ggplot2          Plotting examples and visual summaries      TRUE
#> 3                httr        HTTP requests for optional web workflows      TRUE
#> 4              lwgeom Geometry repair and advanced spatial operations      TRUE
#> 5  mapme.biodiversity            Optional biodiversity context layers      TRUE
#> 6             osmdata         OpenStreetMap-based contextual overlays      TRUE
#> 7              readxl                      Reading spreadsheet inputs      TRUE
#> 8       rnaturalearth               Natural Earth contextual overlays      TRUE
#> 9             stringi                       String encoding utilities      TRUE
#> 10            stringr                   String manipulation utilities      TRUE
#> 11              terra                        Raster context workflows      TRUE
#> 12              tidyr                        Data reshaping utilities      TRUE
#> 13             worrms      World Register of Marine Species workflows      TRUE

Common optional packages include:

Package Used for
terra Raster-based layers and selected spatial-data operations
lwgeom Geometry repair and additional sf geometry operations
osmdata OpenStreetMap-derived contextual layers
rnaturalearth Natural Earth country, land and boundary layers
worrms WoRMS taxonomic or marine-origin lookups

Some external spatial resources are large, provider-dependent or updated outside the package. These files may be downloaded during a workflow, stored in a local cache, or supplied by the user when a provider source is unavailable.

For larger or repeatable analyses, it is useful to define cache folders explicitly. This avoids repeated downloads and makes it easier to reuse the same overlay files across runs.

dir.create(example_cache_root, recursive = TRUE, showWarnings = FALSE)
dir.create(file.path(example_cache_root, "spatial_overlays"), recursive = TRUE, showWarnings = FALSE)
dir.create(file.path(example_cache_root, "marine_overlays"), recursive = TRUE, showWarnings = FALSE)
dir.create(file.path(example_cache_root, "native_range"), recursive = TRUE, showWarnings = FALSE)

Users should also keep a record of the package versions and external resources used in an analysis. At minimum, save sessionInfo() with the output folder and keep any overlay metadata or provider notes alongside the processed occurrence files.

writeLines(
  capture.output(sessionInfo()),
  file.path(example_output_root, "sessionInfo.txt")
)

Reproducibility

Reproducibility is central to biofetchR workflows. Occurrence datasets can change through time, spatial products can be updated, and cleaning or filtering settings can strongly affect the final records retained for analysis. For this reason, users should treat the exported occurrence tables and audit files as part of the analysis record, not as temporary intermediate files.

For publication-facing analyses, users should report:

A minimal reproducibility record can be saved with:

writeLines(
  capture.output(sessionInfo()),
  file.path(example_output_root, "sessionInfo.txt")
)

For larger analyses, users should also keep a copy of the exact input table and the main workflow summary file:

dir.create(file.path(example_output_root, "reproducibility"), recursive = TRUE, showWarnings = FALSE)

file.copy(
  from = "input_species_list.csv",
  to = "outputs/reproducibility/input_species_list.csv",
  overwrite = TRUE
)

file.copy(
  from = "outputs/gbif_summary.csv",
  to = "outputs/reproducibility/gbif_summary.csv",
  overwrite = TRUE
)

When external spatial overlays are used, the source and version should be recorded alongside the output files. This is important because administrative boundaries, protected-area layers, freshwater datasets and marine-region products may be revised over time.

overlay_metadata <- data.frame(
  overlay_name = c("GADM", "FEOW", "Marine Regions"),
  product = c("Administrative boundaries", "Freshwater ecoregions", "Marine overlay"),
  version = c("record_version_here", "record_version_here", "record_version_here"),
  access_date = as.character(Sys.Date()),
  source_url = c("record_url_here", "record_url_here", "record_url_here"),
  stringsAsFactors = FALSE
)

write.csv(
  overlay_metadata,
  file = "outputs/reproducibility/spatial_overlay_metadata.csv",
  row.names = FALSE
)

The aim is that another user, or the same user later, can reconstruct which records were downloaded, which records were removed, which spatial units were used, which evidence sources were applied, and which settings produced the final analysis-ready dataset.

Reproducibility

biofetchR outputs are designed to be kept with the analysis they support. A completed GBIF download can be linked back to its download key and DOI where available, while the package version and selected workflow settings show how the downloaded records were cleaned, filtered, spatially attributed and interpreted.

Rerunning the same species-country query later may create a new GBIF download if the workflow is submitted again. For this reason, users should keep the download key or DOI from the original run rather than relying only on the query that generated it.

For spatial attribution, users should record the workflow type and overlay used. For package-managed overlays, the biofetchR version is usually the most important reference point. If external, cached or user-supplied spatial files are used, any available source, version and access-date metadata should also be kept with the outputs.

For publication-facing analyses, useful details to report include:

Item What to record
Input data Input table, species names and country or region fields used
GBIF data Download key, DOI where available and download or access date
Cleaning Coordinate-cleaning settings and record filters applied
Thinning Whether thinning was used and the thinning distance
Spatial attribution Workflow type, selected overlay and relevant overlay settings
Origin/status evidence Evidence sources used and whether they were used for audit or filtering
External resources Source, version or access-date metadata for cached or user-supplied files
Software biofetchR version, R version and package session information

A minimal reproducibility folder can be created inside the output directory:

dir.create(file.path(example_output_root, "reproducibility"), recursive = TRUE, showWarnings = FALSE)

writeLines(
  capture.output(sessionInfo()),
  file.path(example_output_root, "reproducibility", "sessionInfo.txt")
)

Users should also keep the original input table and the main workflow summary. Together, these files show what was submitted to the workflow and what happened to each input row.

file.copy(
  from = "input_species_list.csv",
  to = file.path(example_output_root, "reproducibility", "input_species_list.csv"),
  overwrite = TRUE
)

file.copy(
  from = file.path(example_output_root, "gbif_summary.csv"),
  to = file.path(example_output_root, "reproducibility", "gbif_summary.csv"),
  overwrite = TRUE
)

When external or user-supplied overlays are used, a small metadata table can be saved alongside the processed occurrence files.

overlay_metadata <- data.frame(
  overlay_name = c("custom_overlay_name"),
  source = c("record_source_here"),
  version = c("record_version_here"),
  access_date = as.character(Sys.Date()),
  notes = c("record_any_relevant_processing_or_cache_notes_here"),
  stringsAsFactors = FALSE
)

write.csv(
  overlay_metadata,
  file = file.path(
    "outputs",
    "reproducibility",
    "external_overlay_metadata.csv"
  ),
  row.names = FALSE
)

These records make it easier to rerun the workflow, explain why records were retained or removed, identify which spatial settings were used, and describe how native-range or invasive-status evidence was handled.

README figures

The figures in this README are static PNG files stored in man/figures/:

man/figures/readme-terrestrial-richness.png
man/figures/readme-freshwater-feow.png
man/figures/readme-marine-regions.png

They are included to show examples of the spatial summaries that can be produced after running biofetchR workflows. The package itself does not provide plotting functions. Instead, it writes processed occurrence tables that users can map with standard R tools such as sf, ggplot2, terra or other spatial-visualisation packages.

Using static images keeps the README fast to render and easy to view on GitHub. It also avoids rerunning GBIF downloads, loading large spatial overlays or querying external providers each time the README is built.

The figure files can be regenerated during package development using scripts in:

dev/readme_figures/

These scripts are separate from the exported package functions. They are used only to prepare the README images and may depend on local example data, cached spatial layers or other development files.

To update the README figures, regenerate or replace the PNG files in man/figures/, then rerender the README:

rmarkdown::render("README.Rmd")

If the README is rendered before the PNG files are available, the figure panels should be checked carefully before committing the updated README. The static image files should be committed with the README so that users can view the figures without running the development scripts.

Citation

When using biofetchR, cite the package and the data sources that contributed to the final dataset. biofetchR should be cited for the workflow used to download, clean, classify, enrich and export occurrence records, while external providers should be cited for the occurrence, taxonomic, spatial or status evidence used in the analysis.

For the package itself, cite the version, release or repository commit used in the analysis. Where available, the package citation can be checked from R:

citation("biofetchR")

GBIF-mediated occurrence records should be cited using the GBIF download DOI created for the download used in the analysis. The DOI identifies the downloaded dataset and gives credit to the underlying data publishers. Users do not need to cite each individual occurrence record separately. If a DOI is not available, retain and report the GBIF download key.

Cite external providers only when they were actually used in the workflow. For example, a terrestrial workflow may require a GBIF download DOI and a citation for the boundary layer used for spatial attribution. A marine workflow may also require citation of Marine Regions, WoRMS or another marine data provider. A workflow using native-range or invasive-status evidence should cite the relevant evidence source separately.

Useful citation details include:

Resource What to cite
biofetchR Package version, release or repository commit
GBIF occurrence records GBIF download DOI, or download key if a DOI is unavailable
Spatial overlays Product name, provider, version and access date where relevant
Taxonomic services Source used for taxonomic matching or validation
Origin/status evidence Native-range, introduced-status or invasive-status evidence source
Custom data Any user-supplied occurrence tables or spatial layers used in the workflow

A publication-facing citation record might include:

biofetchR package version or repository commit
GBIF download DOI for occurrence records
Spatial overlay product used for attribution
Taxonomic or marine-origin provider, where applicable
Native-range or invasive-status evidence source, where applicable

Users should avoid citing only biofetchR when the analysis also depends on external occurrence records, spatial products or evidence sources. The clearest approach is to cite biofetchR for the processing workflow and cite each underlying provider for the data used to build the final dataset.

Package status

biofetchR is a developing research software package for biodiversity occurrence-data workflows. The core terrestrial, freshwater, marine, origin evidence and export workflows are being refined through continued testing across additional taxa, regions and spatial data sources.

Future updates may expand spatial-overlay support, improve diagnostics, add new provider options and incorporate additional databases for assessing non-native or invasive status. These additions will build on the existing evidence-based approach, where external sources are used to support interpretation rather than being treated as a single definitive classification.

Users running larger analyses should record the package version or repository commit used, especially when results need to be reproduced later.

packageVersion("biofetchR")

Before rerunning an older analysis with a newer version of the package, users should check whether any relevant arguments, defaults, provider requirements, evidence sources or output formats have changed.

mirror server hosted at Truenetwork, Russian Federation.