fasterRaster: "fasterRaster": Faster raster and spatial vector processing...

fasterRasterR Documentation

"fasterRaster": Faster raster and spatial vector processing using "GRASS GIS"

Description

fasterRaster: Processing of large-in-memory/-on disk rasters and spatial vectors in using GRASS GIS. Most functions in the terra and sf packages are recreated. Processing of medium-sized and smaller spatial objects will nearly always be faster using terra or sf. To use most of the functions you must have the stand-alone version of GRASS GIS version 8.3 or higher (not the OSGeoW4 installer version). Note that due to differences in how GRASS, terra, and sf were implemented, results will not always be strictly comparable between functions for the same operation.

Most useful tutorials and functions:

  • The quick-start guide to getting started with fasterRaster , accessible using vignette("getting_started", package = "fasterRaster")

  • The vignette on types of GRasters, accessible using vignette("GRasters", package = "fasterRaster")

  • The vignette on how to speed up fasterRaster, accessible using vignette("faster_fasterRaster", package = "fasterRaster")

  • faster(): Set the directory where GRASS is installed on your system, and set or get other package-wide options. This function must be run once before using most fasterRaster functions.

  • fast(): Convert a SpatRaster, SpatVector, or sf vector to fasterRaster's raster format (GRasters) or vector format (GVectors), or load one from a file

  • rast(), vect(), and st_as_sf(): Convert GRasters and GVectors to SpatRasters, SpatVectors, or sf vectors

  • writeRaster() and writeVector(): Save GRasters or GVectors to disk

Properties of GRasters

  • crs(): Coordinate reference system

  • datatype(): Data type

  • dim() and dim3d(): Number of rows, columns, and depths

  • ext(), N(), S(), E(), W(), top(), and bottom(): Spatial extent

  • freq(): Frequencies of cell values in a raster

  • is.2d() and is.3d(): Is an object 2- or 3-dimensional?

  • is.int(), is.cell(), is.float(), is.doub(): GRaster data type (integer/float/double)

  • is.factor(): Does a raster represent categorical data?

  • is.lonlat(): Is an object projected (e.g., in WGS84)?

  • levels(): Names of levels in a categorical GRaster

  • minmax(): Minimum and maximum values across all non-NA cells

  • names(): GRaster names

  • ncol(): Number of columns

  • nacell(): Number of NA cells

  • ncell(): Number of cells

  • ncell3d(): Number of cells of a 3D GRaster

  • ndepth(): Number of depths of a 3D GRaster

  • nlyr(): Number of layers

  • nonnacell(): Number of non-NA cells

  • nrow(): Number of rows

  • nlevels(): Number of categories

  • res(), xres(), yres(), and zres(): Spatial resolution

  • sources(): Name of the GRaster in GRASS

  • zext(): Vertical extent

  • zres(): Vertical resolution

Functions that operate on or create GRasters

  • Arithmetic: Mathematical operations on GRasters: +, -, *, /, ^, %% (modulus), %/% (integer division)

  • Logical comparisons: <, <=, ==, !=, >=, and >, plus %in% and %notin% (for categorical rasters only)

  • Logical operators: |and &

Single-layer mathematical functions (applied to each layer of a GRaster):

  • Working with NAs: is.na(), not.na(), and maskNA()

  • Trigonometry: sin(), cos(), tan(), asin(), acos(), atan(), atan2()

  • Logarithms and powers: exp(), log(), ln(), log1p(), log2(), log10(), sqrt()

  • Rounding: round(), floor(), ceiling(), trunc()

  • Signs: abs()

Multi-layer functions (applied across layers of a "stack" of GRasters):

  • Numeration: sum(), count()

  • Central tendency: mean(), mmode(), median()

  • Dispersion: stdev(), var(), varpop(), nunique(), range(), quantile(), skewness(), kurtosis()

  • Extremes: min(), max(), which.min(), which.max()

The operators $ and [[ can be used to subset or remove specific layers of a GRaster. The [<- operator can be used to replace values of cells of a GRaster. The assign operators, $<-, [[<-, and add<-, can be used to replace specific layers of a GRaster.

  • as.int(), as.float(), as.doub(): Change data type (integer/float/double)

  • as.lines(): Convert a GRaster to a "lines" vector

  • as.points(): Convert a GRaster to a "points" vector

  • as.polygons(): Convert a GRaster to a "polygons" vector

  • aggregate(): Aggregate values of GRaster cells into larger cells

  • bioclims(): BIOCLIM rasters (classic set and extended set)

  • buffer(): Create a buffer around non-NA cells

  • app(): Apply a user-defined function to multiple layers of a GRaster (with helper functions appFuns() and appCheck())

  • c(): "Stack" two or more rasters

  • cellSize(): Cell area

  • classify(): Partition cell values into strata

  • clump(): Group adjacent cells with similar values

  • combineCats(): Combine values from two or more categorical and/or integer rasters

  • combineLevels(): Combine the "levels" tables of two or more categorical GRasters

  • crop(): Remove parts of a GRaster

  • denoise(): Remove "noise" from a GRaster using a principal components analysis (PCA)

  • distance(): Distance to non-NA cells, or vice versa

  • extend(): Add rows and columns to a GRaster

  • extract(): Extract values from a GRaster at locations of a GVector

  • fillNAs(): Fill NA cells

  • focal(): Calculate cell values based on values of nearby cells

  • fragmentation(): Landscape fragmentation class from Riitters et al. (2020)

  • global(): Summary statistics across cells of each GRaster layer

  • hist(): Histogram of GRaster values

  • interpIDW(): Interpolate values at points to a GRaster

  • kernel(): Kernel density estimator of points

  • layerCor(): Correlation or covariance between two or more GRaster layers

  • longlat(): Create longitude/latitude rasters

  • mask(): Remove values in a GRaster based on values in another GRaster or vector

  • maskNA(): Mask all non-NA cells or all NA cells

  • match(), %in%, and %notin%: Find which cells of a GRaster match or do not match certain values

  • merge(): Combine two or more rasters with different extents and fill in NAs names<-: Assign names to a GRaster

  • noise(): Remove coarse-scale trends from a GRaster, leaving just fine-scale "noise"

  • pairs(): Plot correlations between GRaster layers

  • pca(): Apply a principal components analysis (PCA) to a GRaster

  • pcs(): Retrieve a principal components model from a PCA GRaster generated using pca()

  • plot(): Display a GRaster

  • plotRGB(): Display a multispectral GRaster using red, blue, green, and alpha channels

  • project(): Change coordinate reference system and cell size

  • predict(): Make predictions to a GRaster from a linear model or generalized linear model

  • resample(): Change cell size

  • reorient(): Convert degrees between 'north-orientation' and 'east orientation'

  • scale(), scalepop(), and unscale(): Subtract means and divide by standard deviations, or inverse of that

  • selectRange(): Select values from rasters in a stack based on values in another GRaster

  • spatSample(): Randomly points from a GRaster

  • subst(): Re-assign cell values

  • thinLines(): Reduce linear features on a GRaster so linear features are 1 cell wide

  • tiles(): Divide a GRaster into spatially exclusive subsets (though with possible overlap)

  • trim(): Remove rows and columns from a GRaster that are all NA

  • zonal(): Statistics (mean, sum, etc.) on areas of a GRaster defined by sets of cells with the same values in another GRaster, or by geometries in a GVector

  • zonalGeog(): Geographic statistics (area, perimeter, fractal dimension, etc.) for sets of cells with the same values

Functions for creating GRasters de novo

  • fractalRast(): Create a fractal GRaster

  • rnormRast(): A random GRaster with values drawn from a normal distribution

  • rSpatialDepRast(): Create a random GRaster with or without spatial dependence

  • runifRast(): A random GRaster with values drawn from a uniform distribution

  • sineRast(): Sine wave rasters

Functions for analysis of terrain and flow of water across landscapes

  • as.contour(): Contour lines from a GRaster

  • flow(): Identify watershed basins and direction and accumulation of flow

  • flowPath(): Path of water flow across a landscape

  • geomorphons(): Identify terrain feature types

  • hillshade(): Create a hillshade GRaster

  • horizonHeight(): Horizon height

  • sun(): Solar radiance and irradiance

  • ruggedness(): Terrain Ruggedness Index

  • streams(): Create stream network

  • terrain(): Slope, aspect, curvature, and partial slopes

  • wetness(): Topographic wetness index

Functions operating on categorical (factor) rasters

%in%, and %notin%: Mask cells that match or do not match a given category

  • activeCat() and activeCats(): Column(s) that defines category labels activeCat<-: Set column that defines category labels

  • addCats(): Add new columns to a "levels" table addCats<-: Add new rows (levels) to a "levels" table

  • categories(): Set "levels" table for specific layers of a categorical raster

  • catNames(): Column names of each "levels" table

  • cats(): "Levels" table of a categorical raster

  • combineCats(): Combine categories from two or more categorical rasters

  • combineLevels(): Combine the "levels" tables of two or more categorical GRasters

  • complete.cases(): Find rows of a categorical GRaster's "levels" table that have no NAs in them

  • droplevels(): Remove one or more levels

  • freq(): Frequency of each category across cells of a raster

  • is.factor(): Is a raster categorical?

  • levels(): "Levels" table of a categorical raster levels<-: Set "levels" table of a categorical raster

  • match(), %in%, and %notin%: Find which cells of a GRaster match or do not match certain category labels

  • minmax(): "Lowest" and "highest" category values of categorical rasters (when argument levels = TRUE)

  • missing.cases(): Find rows of a categorical GRaster's "levels" table that have at least one NA in them

  • missingCats(): Values that have no category assigned to them

  • nlevels(): Number of levels

  • subst(): Re-assign category levels

  • zonalGeog(): Geographic statistics (area, perimeter, fractal dimension, etc.) for sets of cells with the same values

Functions for analysis of remote sensing rasters

  • compositeRGB(): Combine red, green, and blue color bands to make a composite GRaster

  • plotRGB(): Display a multispectral GRaster using red, blue, green, and alpha channels

  • vegIndex(): Vegetation indices from surface reflectance

Functions that operate on terra SpatRasters
  • bioclims(): BIOCLIM rasters (classic set and extended set)

  • fragmentation(): Landscape fragmentation class from Riitters et al. (2020)

Properties of GVectors

  • crs(): Coordinate reference system

  • datatype(): Data type of fields

  • dim(): Number of geometries and columns

  • expanse(): Area of polygons or length of lines

  • ext(), N(), S(), E(), W(), top(), and bottom(): Spatial extent

  • geomtype(): Type of vector (points, lines, polygons)

  • is.2d() and is.3d(): Is an object 2- or 3-dimensional?

  • is.lonlat(): Is an object projected (e.g., in WGS84)?

  • is.points(), is.lines(), is.polygons(): Does a GVector represent points, lines, or polygons?

  • names(): Names of GVector fields

  • ncol(): Number of fields

  • ngeom(): Number of geometries (points, lines, polygons)

  • nrow(): Number of rows in a vector data table

  • nsubgeom(): Number of subgeometries (points, lines, polygons that make up single- and multipart geometries)

  • sources(): Name of the vector in GRASS

  • zext(): Vertical extent

Functions that operate on or create GVectors

The [ operator can be used to subset geometries of a GVector. The $ and [[ operators can be used to get columns of a GVector's data table. The $<- operator can be used to replace specific columns of a GVector's data table or to add columns. addTable<-: Add a data table to a GVector

  • aggregate(): Combine GVector geometries

  • as.data.frame(): Convert a GVector's attribute table to a data.frame

  • as.data.table(): Convert a GVector's attribute table to a data.table

  • as.points(): Extract vertex coordinates from a "lines" or "polygons" GVector

  • buffer(): Create a polygon around/inside a GVector

  • clusterPoints(): Identify clusters of points

  • colbind(): Add columns to the data table of a GVector

  • complete.cases(): Find rows of a GVector's data table that have no NAs in them

  • connectors(): Create lines connecting nearest features of two GVectors

  • convHull(): Minimum convex hull

  • crds(): Extract coordinates of a GVector

  • crop(): Remove parts of a GVector

  • delaunay(): Delaunay triangulation

  • disagg(): Separate multipart geometries into singlepart geometries

  • distance(): Distance between geometries in two GVector, or from a GVector to cells of a GRaster

  • dropTable(): Remove the data table from a GVector

  • erase() or -: Remove part of a GVector that overlaps with another

  • expanse(): Area of polygons or length of lines

  • extract(): Extract values from a GVector at specific points

  • grid(): Create a grid GVector

  • head(): First rows of a GVector's data table

  • hexagons(): Create a hexagonal grid

  • interpIDW(): Interpolate values at points to a GRaster using inverse-distance weighting

  • interpSplines(): Interpolate values at points to a GRaster using splines

  • intersect() or *: Intersection of two GVectors.

  • kernel(): Kernel density estimator of points.

  • missing.cases(): Find rows of a GVector's data table that have at least NA in them names<-: Assign names to columns of a GVectors data table

  • project(): Change coordinate reference system

  • rasterize(): Convert a GVector to a GRaster

  • rbind(): Combine GVectors

  • simplifyGeom(): Remove vertices

  • smoothGeom(): Remove "angular" aspects of features

  • st_as_sf(): Convert a GVector to a sf vector

  • st_buffer(): Create a polygon around/inside a GVector

  • tail(): Last rows of a GVector's data table

  • thinPoints(): Reduce number of points in same raster cell

  • union() or +: Combine two GVectors

  • xor() or ⁠/``: Select parts of polygons not shared by two ⁠GVector's

Functions for fixing issues with GVectors

(See also tools that can be used during GVector creation/loading in fast().)

  • breakPolys(): Break topologically clean areas

  • fillHoles(): Fill "holes" of a GVector

  • fixBridges(): Change "bridges" to "islands"

  • fixDangles(): Change "dangles" hanging off boundaries to lines

  • fixLines(): Break lines at intersections and lines that form closed loops

  • remove0(): Remove all boundaries and lines with a length of 0

  • removeAngles(): Collapse lines that diverge at an angle that is computationally equivalent to 0

  • removeBridges(): Remove "bridges" to "islands"

  • removeDangles(): Remove "dangling" lines

  • removeDupCentroids(): Remove duplicated area centroids

  • removeDups(): Remove duplicated features and area centroids

  • removeSmallPolys(): Remove small polygons

  • snap(): Snap lines/boundaries to each other

Converting between data types

  • as.contour(): Convert a GRaster to a GVector representing contour lines

  • as.doub(): Convert a GRaster to a double-floating point raster (GRASS data type DCELL)

  • as.data.frame(): Convert GVector to a data.frame

  • as.data.table(): Convert GVector to a data.table

  • as.float(): Convert a GRaster to a floating-point raster (GRASS data type FCELL)

  • as.int(): Convert a GRaster to an integer raster (GRASS data type CELL)

  • as.points(), as.lines(), and as.polygons(): Convert a GRaster to a GVector

  • fast(): Convert a SpatRaster to a GRaster; a SpatVector, sf vector, numeric vector, matrix, data.frame, or data.table to a GVector; or load a vector or raster from a file

  • categories() and levels<-: Convert an integer raster to a categorical ("factor") raster.

  • rast(): Convert a GRaster to a SpatRaster

  • rasterize(): Convert a GVector to a GRaster

  • st_as_sf(): Convert a GVector to a sf vector

  • vect(): Convert a GVector to a SpatVector

General purpose functions

  • compareGeom(): Determine if geographic metadata is same between GRasters and/or GVectors

  • dropRows(): Remove rows from a data.frame or data.table

  • grassInfo(): GRASS version and citation

  • mow(): Remove unused rasters and vectors from the GRASS cache

  • reorient(): Convert degrees between 'north-orientation' and 'east orientation'

  • replaceNAs(): Replace NAs in columns of a data.table or data.frame, or in a vector

  • seqToSQL(): Format a numeric series into an SQL value call

  • update(): Refresh metadata in a GRaster or GVector object

Data objects

  • appFunsTable (see also appFuns()): Functions usable by the app() function

  • madChelsa: Climate rasters for of a portion of eastern Madagascar

  • madCoast0, madCoast4, and madCoast: Borders of an eastern portion of Madagascar

  • madCover: Land cover raster

  • madCoverCats: Table of land cover classes

  • madDypsis: Specimens records of species in the genus Dypsis

  • madElev: Elevation raster

  • madForest2000 and madForest2014: Forest cover in 2000 and 2014

  • madLANDSAT: Surface reflectance in 2023

  • madPpt, madTmin, madTmax: Rasters of mean monthly precipitation, and minimum and maximum temperature

  • madRivers: Rivers vector

  • vegIndices: Vegetation indices that can be calculated using vegIndex().

Esoteric tutorials and arcane notes

Comparisons between GRegions can be performed using the == and != operators. Vignette on GRASS "projects/locations" and "mapsets": ⁠vignette("projects_mapsets", package = "fasterRaster"⁠) Vignette on GRASS "regions": vignette("regions", package = "fasterRaster") Vignette on fasteRaster hidden functions: vignette("hidden_functions", package = "fasterRaster")

  • grassStarted(): Has a connection GRASS been made within the current R session?

Author(s)

Adam B. Smith

See Also

Useful links:


adamlilith/fasterRaster documentation built on Sept. 23, 2024, 1:28 a.m.