Learn R Programming

reproducible (version 1.1.1)

fixErrors: Do some minor error fixing

Description

These must be very common for this function to be useful. Currently, the only meaningful method is on SpatialPolygons, and it runs rgeos::gIsValid. If FALSE, then it runs a buffer of width 0.

This uses raster::buffer(..., width = 0) internally, which fixes some failures to rgeos::gIsValid

Usage

fixErrors(
  x,
  objectName,
  attemptErrorFixes = TRUE,
  useCache = getOption("reproducible.useCache", FALSE),
  ...
)

# S3 method for default fixErrors( x, objectName, attemptErrorFixes = TRUE, useCache = getOption("reproducible.useCache", FALSE), ... )

# S3 method for Raster fixErrors( x, objectName, attemptErrorFixes = TRUE, useCache = getOption("reproducible.useCache", FALSE), ... )

# S3 method for SpatialPolygons fixErrors( x, objectName = NULL, attemptErrorFixes = TRUE, useCache = getOption("reproducible.useCache", FALSE), ... )

# S3 method for sf fixErrors( x, objectName = NULL, attemptErrorFixes = TRUE, useCache = getOption("reproducible.useCache", FALSE), ... )

Arguments

x

A SpatialPolygons* or sf object.

objectName

Optional. This is only for messaging; if provided, then messages relayed to user will mention this.

attemptErrorFixes

Will attempt to fix known errors. Currently only some failures for SpatialPolygons* are attempted. Notably with raster::buffer(..., width = 0). Default TRUE, though this may not be the right action for all cases.

useCache

Logical, default getOption("reproducible.useCache", FALSE), whether Cache is used on the internal raster::buffer command.

...

Passed to methods. None currently implemented.

Examples

Run this code
# NOT RUN {
# Add a study area to Crop and Mask to
# Create a "study area"
library(sp)
library(raster)
ow <- setwd(tempdir())

# make a SpatialPolygon
coords1 <- structure(c(-123.98, -117.1, -80.2, -100, -123.98, 60.9, 67.73, 65.58, 51.79, 60.9),
                     .Dim = c(5L, 2L))
Sr1 <- Polygon(coords1)
Srs1 <- Polygons(list(Sr1), "s1")
shpEcozone <- SpatialPolygons(list(Srs1), 1L)
crs(shpEcozone) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"

# make a "study area" that is subset of larger dataset
coords <- structure(c(-118.98, -116.1, -99.2, -106, -118.98, 59.9, 65.73, 63.58, 54.79, 59.9),
                    .Dim = c(5L, 2L))
Sr1 <- Polygon(coords)
Srs1 <- Polygons(list(Sr1), "s1")
StudyArea <- SpatialPolygons(list(Srs1), 1L)
crs(StudyArea) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
#'
#'
##########
shpEcozonePostProcessed <- postProcess(shpEcozone, studyArea = StudyArea)
#'
# Try manually, individual pieces
shpEcozoneReprojected <- projectInputs(shpEcozone, StudyArea)
shpEcozoneCropped <- cropInputs(shpEcozone, StudyArea)
shpEcozoneClean <- fixErrors(shpEcozone)
shpEcozoneMasked <- maskInputs(shpEcozone, StudyArea)

setwd(ow)
# }

Run the code above in your browser using DataLab