Learn R Programming

⚠️There's a newer version (1.1.0) of this package.Take me there.

GeoThinneR

Overview

GeoThinneR is an R package designed for spatial thinning of species occurrences and other types of geospatial point data. It offers a collection of thinning methods, including distance-based, grid-based, and precision-based algorithms. Whether you’re working on species distribution models (SDMs), ecological niche modeling, or managing biodiversity datasets, GeoThinneR provides tools that can help you correct sampling bias, reduce spatial autocorrelation, and improve model performance. Users can choose between different thinning algorithms depending on their specific needs, including the ability to perform thinning using a grouping variable, to specify a target number of points, or to apply preference filtering based on uncertainty or other criteria.

Installation

You can install GeoThinneR from CRAN using the following command:

install.packages("GeoThinneR")

To install the development version of GeoThinneR from GitHub, use:

# install.packages("devtools")
devtools::install_github("jmestret/GeoThinneR")

Optionally, to use R-trees you need to install:

devtools::install_github("jmestret/rtree")

How to Use GeoThinneR

The documentation can be found at https://jmestret.github.io/GeoThinneR/. Below are some examples demonstrating how to use the package for different spatial thinning methods.

Example 1: Distance-based thinning

In this example, we will use the brute force method to thin points based on a specified distance:

library(GeoThinneR)

# Simulated data (longitude, latitude)
set.seed(1234)
sim_data <- data.frame(long = runif(100, -76, -75), lat = runif(100, 39, 40))


# Thinning the points with a distance of 30 km
thin_distance <- thin_points(
  data = sim_data,
  method = "brute_force",
  thin_dist = 15,
  trials = 50,
  seed = 1234
)

# View the number of kept points
nrow(thin_distance[[1]])
#> [1] 29

Example 2: Grid-based thinning with a raster file

In this example, we will use a grid sampling method with a raster file to thin the data:

library(GeoThinneR)
library(terra)

# Create a raster object
rast_obj <- rast(xmin = -20, xmax = 20, ymin = -10, ymax = 10, res = 2)

# Simulated data (longitude, latitude)
set.seed(1234)
sim_data <- data.frame(long = runif(300, -20, 20), lat = runif(300, -10, 10))

# Perform grid-based thinning
thin_grid <- thin_points(
  data = sim_data,
  method = "grid",
  raster_obj = rast_obj,
  trials = 50,
  seed = 1234
)

# View the number of kept points
nrow(thin_grid[[1]])
#> [1] 149
#> Linking to GEOS 3.11.2, GDAL 3.8.2, PROJ 9.3.1; sf_use_s2() is TRUE

Example 3: Precision-based thinning with grouping variable

In this example, we will perform precision-based thinning while considering a grouping variable:

library(GeoThinneR)

# Simulated data with a grouping variable
set.seed(1234)
sim_data <- data.frame(
  long = runif(100, 10.5, 11),
  lat = runif(100, 10.5, 11),
  group = sample(c("species_1", "species_2"), 100, replace = TRUE)
)

# Perform precision-based thinning with grouping
thin_precision <- thin_points(
  data = sim_data,
  method = "precision",
  precision = 1,  # rounding precision
  group_col = "group",  # grouping variable
  trials = 50,
  seed = 1234
)

# View the number of kept points
nrow(thin_precision[[1]])
#> [1] 51

For more details on the various methods available in GeoThinneR and additional functionalities like keeping an exact number of points or filtering according to a preference variable, please refer to the package website or the documentation.

Contributing

We welcome contributions! If you have suggestions for improvements or new features, please open an issue or submit a pull request on our GitHub repository.

How to cite GeoThinneR

The GeoThinneR paper is currently in progress. Meanwhile, you can reference the GitHub repository as follows:

Mestre-Tomás, J. (2024). GeoThinneR: An R package for simple spatial thinning methods in ecological and spatial analysis. R package version 1.0.0, https://github.com/jmestret/GeoThinneR

Copy Link

Version

Install

install.packages('GeoThinneR')

Monthly Downloads

701

Version

1.0.0

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Jorge Mestre-Tomás

Last Published

September 2nd, 2024

Functions in GeoThinneR (1.0.0)

r_tree_thinning

Perform R-Tree Thinning
caretta

Loggerhead Sea Turtle (Caretta caretta) Occurrences in the Mediterranean Sea
brute_force_thinning

Perform Brute Force Thinning
kd_tree_thinning

Perform K-D Tree ANN Thinning
assign_coords_to_grid

Assign Geographic Coordinates to Grid Cells
rounding_hashing_thinning

Rounding Hashing Thinning
precision_thinning

Precision Thinning of Spatial Points
max_thinning_algorithm

Thinning Algorithm for Spatial Data
long_lat_to_cartesian

Convert Geographic Coordinates to Cartesian Coordinates
grid_thinning

Perform Grid-Based Thinning of Spatial Points
thin_points

Spatial Thinning of Points