o rnormRast() is now rNormRast().
o runifRast() is now rUnifRast().
o addons() now reports the names of all installed addons
or whether a given addon is installed.
o installAddon() installs an addon.
o removeAddon() deletes an addon.
o centroids() now calculates centroids of clumps in a
GRaster.
o multivarEnvSim() calculates multivariate environmental
similarity (MESS).
o neighborhoodMatrix() generates a neighborhood matrix from
a polygons GVector.
o rWalkRast() creates a raster with the path of random
walkers.
o ruggedness() now allows for calculation of the terrain
ruggedness index across user-defined windows with distance-based
weighting.
o Rebranding as per GRASS re-brand (haromonized logo with GRASS April 2025 branding guidelines, “GRASS GIS” –> just “GRASS”, “modules” –> “tools).
o Removed dependency on rpanel because its
dependency on tclk did not work with
Docker images. Replaced with version dependency on
omnibus’s screenRes() function.
o faster(debug = TRUE) displays the
GRASS command for each GRASS tool
called in a fasterRaster function.
o GVector[i] works for cases with long
is.
o Fixes to help pages.
o Added vignette “3-dimensional objects”.
o [ is faster.
o %in% and match() work when
faster(useDataTable = FALSE) and table
argument is a character.
o extract() is faster.
o fast() has better error catching for vectors.
o spatSample() is faster when values or
cats is TRUE.
o Fixes issues when linking to rgrass and
terra documentation noted by R Bivand and R Hijmans.
o Many minor fixes for CRAN submission!
o Comparison between a string and a categorical GRaster
using logical operators like < or ==
returns a categorical raster.
o as.factor() is now properly exported.
o centroids() has the option to exit gracefully if the
addons check fails.
o crds() now works for GVectors that lacked an
internal GRASS database. Hidden function
.crds() accepts a cats argument, making it
potentially faster.
o fast() correctly defines region on import of
raster.
o mow() example works.
o spatSample() works when sampling by
stratum.
o .rbind() is a hidden function which accepts a
cats argument that concatenates vectors faster than
rbind().
o Issues with some examples were fixed.
o Fixed issues from CRAN R CMD precheck.
o By default, fasterRaster now uses
data.frames, not data.tables from the
data.table package (see ?faster).
o Removed option clean from faster(). Files
are now removed from the GRASS cache as needed.
o mow() can delete a single GRaster or
GVector, a list of rasters and/or vectors, or all objects
in a particular environment.
o centroids() locates the center of
GVectors.
o coordRef() returns information about an object’s
coordinate reference system.
o project() is now much faster when projecting a
GRaster using the terra or
fallback values for res.
o spatSample() is faster.
o Support for GRASS addons and methods based on
them!!!
o GVector[i] does not fail when all geometries are
selected.
o Comparison with categorical GRasters (e.g.,
<, ==, etc.) does not fail when
faster('useDataTable') is FALSE.
o droplevels() does not fail when
faster('useDataTable') is FALSE.
o levels() does not fail when
faster('useDataTable') is FALSE.
o segregate() works when setting useDataTable
is FALSE.
o subset() no longer fails.
o subst() does not fail when
faster('useDataTable') is FALSE.
o grassHelp() can show the GRASS manual
“table of contents” (argument "toc").
o longlat() can now return rasters with cell values equal
to their coordinates in map units (previously, only coordinates in
degrees were returned).
o For functions that are complicated or have extended references, added
a note to the @seealso tag to see the respective
GRASS manual page using grassHelp().
o project() correctly restores the user’s “location” to
that of the newly projected GRaster.
o Test examples with GRASS 8.4 and update functions as needed. Upgrade to fasterRaster 8.4.X.X.
o addLocationProject() adds either a
project or location argument to a
list to be passed to
rgrass::execGRASS().
o project() work with GRASS 8.4.
o .vAttachDatabase() no longer has the "o"
flag when calling v.db.connect when running
GRASS >=8.4.
o aggregate() no longer has the dissolve
argument for GVectors (polygons will always be
dissolved).
o combineCats() has been renamed concats() to
align with terra.
o intercept(), slope(), r2(), and
tvalue() have been replaced by the single function
regress() to align with terra.
o pca() has been renamed princomp().
o extract() now automatically projects a
GVector to match the CRS of a GRaster from
which extraction is being made.
o grassGUI() allows users to start the
GRASS GUI.
o grassHelp() shows the manual page for a
GRASS tool.
o layerIndex() allows a negate argument to get
the “opposite” indices of a GRaster.
o init() assigns to GRaster cells the value of
their coordinates, rows, columns, or values in a regular or
chessboard-like pattern.
o regress() replaces individual functions
intercept(), slope(), r2(), and
tvalue().
o subset() subsets layers of a GRaster or
rows/geometries of a GVector.
o segregate() creates one layer per unique value in an
input GRaster, with values in the output coded 1 or 0
depending on whether cells in the input had the unique value or not.
o appFuns() succeeds in opening a shiny
table with app() functions.
o categories() correctly assigns active category
column.
o crds() correctly returns coordinates from a “points”
GVector.
o distance() correctly parses distance matrix.
o simplifyGeom() works for 2-dimensional
GVectors.
o flow() creates a scratch folder when none is
provided.
o global() does not fail when multiple values of
fun and probs are used and fun
includes quantile.
o rasterize() works when by is not
NULL.
o .layerIndex() (called by categories() and
other functions related to categorical GRasters) does not
fail.
o .vHasDatabase() correctly detects if a vector has a
database attached to it.
o Removed all instances of sQuote().
o Recompile pkgdown
o Main task: Port tutorials to vignettes
o bioclims() calculates BIO55-60.
o bioclims() displays progress more satisfyingly.
o Added pkgdown site!!! (Experimental…)
o bioclims() calculates BIO07 even when BIO05 and BIO06
were not explicitly called.
o faster() accepts a names list as an argument.
o Fix all issues arising from check().
o Examples in all help files have been checked and, if needed, either they or the calling function(s) have been fixed. See “Bug fixes and speed-ups” below.
o dim3d() returns the “region’s” dimensions when called
with no arguments.
o global() calculates quantiles much faster (minutes
vs. weeks) for very large rasters.
o layerCor() by default calculates
inter-GRaster correlation.
o reorient() converts facing angles between north and east
orientations.
o terrain() can return slope and aspect in radians, and
allows a custom value to be set for undefined aspects.
o Default value of memory in faster() is now 2
GB.
o global() argument prob changed to
probs because it can accommodate more than one value.
o horizonHeight() function now uses argument
step instead of directions. o Removed
sd() and sdpop() and replaced with
stdev().
o atan2() works!
o extract() extracts!
o fast() can convert a SpatRaster with one or
more layers that are a subset of a larger SpatRaster into a
GRaster without error.
o fractalRast() is faster.
o freq() work when the input is a categorical
GRaster.
p interpSplines() bug causing lambda values to not be
returned fixed.
o horizonHeight() returns GRasters that can be
used directly in sun().
o plotRGB() is no longer stuck in an infinite loop an
infinite loop an infinite loop an infinite loop an infinite loop an
infinite loop an infinite loop.
o rSpatialDepRast() is faster.
o replace_double_square_brackets works!
o simplifyGeom() works when using the “dp” or “dpr”
methods.
o spatSample() works when
byStratum = TRUE.
o subset_dollar bug fixed related to rationalization of
dim() and res().
o subset_double_square_brackets works for
i = missing and j = not missing.
o subset_single_bracket works for x[i, j] when
neither i nor j are missing.
o sun() works with GRasters from
horizonHeight().
o terrain() works when all methods (v = '*')
are called.
o update() retains a GVector’s data
table.
o vegIndex() fixed bug parsing index.
o zonal() works when zones are set by a
GVector.
o Renamed terrainRuggednessIndex() to
ruggedness().
o Renamed topoWetnessIndex() to wetness().
o [ (subset_single_bracket) can use a
GRaster inside the [] to specify what cells in
a GRaster to subset.
o [<- (replace_single_square_bracket) can
use a GRaster inside the [] to specify what
cells in a GRaster are re-assigned.
o bioclims() is a new function that calculates the
“classic” and “extended” set of BIOCLIM rasters. It works on
GRasters and SpatRasters!
o faster() now has option clean, which enables
automatic deletion of temporary files created by functions.
o mow() is a new function that removes unused raster and
vector files from the GRASS cache.
o project() now has a verbose argument for
displaying progress.
o sineRast() now accepts arguments for amplitude.
o tiles() is a new function that creates spatially
exclusive subsets from GRasters.
o spatSample() now works when
values = TRUE.
+: Denotes potentially code-breaking changes
o sineRast(): Creates sine wave rasters.
o distance() now works for calculation of distances
between two GVectors or a GVector and
itself.
o + extract() and +
spatSample(): Changed default value of cats
argument to TRUE.
o fragmentation() is much faster for
SpatRasters and for both SpatRasters and
GRasters, can display progress.
o + plot() is faster for very large
rasters. Replaced argument maxcell with
simplify.
o show() displays long raster names properly.
o not.na(): Fixed bug causing incorrect answer.
+: Denotes potentially code-breaking changes
o + spatSample(): Much faster
(though not actually fast…) for large samples taken from
GRasters. Removed argument seed for
GRaster signature, and added argument verbose
to give you something to watch.
o freq(): Added `function-specific example.
o global(): Fixed bug arising when called by other
functions and main argument was a sources() name.
+: Denotes potentially code-breaking changes
o rast(): Attaches the GRaster’s levels
table to the SpatRaster output.
o + rasterize(): Rewritten to perform
(nearly) the same as terra::rasterize().
o predict(): Can accommodate models with two-way
interactions between categorical rasters and between a categorical
predictor and a scalar.
o scalepop(): Scales GRasters by population
standard deviation.
o Stops with a somewhat informative error when a GRaster
fails to be created (in hidden function .makeGRaster())
o writeRaster(): Correctly assign datatype
to CELL rasters.
O + cor() and cov() removed
and incorporated into layerCor()
o activeCat() and activeCats(): Fixed bug
introduced by previous fix.
o activeCat(): Correct output when
names = TRUE.
o expanse(): Expanded list of units; correct assignation of
units to GRASS unit format.
o extract(): Extracting from a GRaster to a
lines or polygons GVector
works.
o fast(): Fixed bug arising when reading vector saved by
writeRaster().
o + global(): Removed functions "countNA" and
"countNonNA" from global() since
GRASS tool r.report can be mistaken.
o nacell() and nonnacell(): Correct (but
slow~~~) reporting of NA and non-NA cells
(workaround of error in GRASS’s r.report
tool).
o Added streams() for calculating location of stream
channels from a DEM.
o Added terrainRuggednessIndex() for calculating the
terrain ruggedness index.
o unscale() can skip unscaling of rasters by supplying
NA in the center and/or scale
vectors.
o writeRaster() will now automatically choose the
“least-lossy” datatype for a stack of rasters.
o More robust checking of whether a vector is topologically valid or not
when using fast(), and added option to aggregate or
disaggregate polygons to overcome the issue.
o crop() correctly sets westernmost coordinate (was
inappropriately too far west, in some cases).
o extend() works when the “extension” factor is a
integer.
o GRasters can now be multiplied by, divide by, added to,
or subtracted from numerics in scientific notation
format.
o hist() now works with factor
GRasters.
o plot() relies on writeRaster() for
datatype (which is better).
o writeRaster() saves all-NA rows and
columns.
o [ now works for large GVectors (i.e.,
>1M geometries).
o Fixed behind-scenes issue arising when a CRS string couldn’t be parsed
to a shorter version (.locationCreate() and related).
o Added function flow() for calculating flow of water
across a landscape.
o Added function flowPath() for calculating flow of water
from specific points on a landscape.
o freq() inserts category labels into results for for
categorical GRasters.
o Added function geomorphons() for identifying
geomorphological features.
o Added function maskNA() for converting
non-NA cells or NA cells to a user-defined
value.
o plot() displays of levels of categorical rasters.
o Can save layer-by-layer with writeRaster().
o Added ability to create points GVectors from
numeric, matrices, or data frames using fast().
o Improved auto-assessment of raster datatype in
writeRaster().
o Updated README for 8.3.0.7013!
o [ works consistently for
GVectors!!!!!
o Hidden function .makeGVector() now catches cases with
zero extent for polygons.
o Fixed installation issue related to activeCat()<- and
addCats()<- (thank you, @kbondo1!)
o Fixed bug in arithmetic when determining data type of an
input raster.
o crds() works when the GRASS vector has
an attribute table.
o extract() extracts values from GVectors for
large numbers of points without crashing.
o plot() works! (Previous issue arose from changing output
of writeRaster() to GRaster).
o rast() correctly returns a SpatRaster.
o vect() correctly returns a SpatVector.
o Removed rasterPrecision option and now use internal
function .getPrec() to ascertain the proper precision of
rasters.
o Option to fail in creation of GRaster or a
polygons GVector if it would have a zero
extent.
o complete.cases() and missing.cases()
return logical vectors for vectors with no data tables (was integer
vectors).
o Added function classify().
o Added function subst().
o Added function combineLevels().
o Added hidden function .plot().
o For functions and cases where it is appropriate, the “levels” table of
an input GRaster is passed to the output.
o fragmentation() works for windows sizes > 3 and for
GRasters.
o writeRaster() correctly assigns levels to categorical
rasters with >1 layer.
o Fixed bug in [[<- that passed incorrect dimensions
(then failed).
o [ selects geometries from a GRaster,
overcoming mis-selection by GRASS
o Removed datatype() method for signature
SpatRaster
rbind() and cbind() work for
GVectors.
o Fix bug setting extent for new raster in crop()
Alpha release of new, intuitive fasterRaster emulating and interoperable with terra!!!
Nearly nothing is the same in the new version of fasterRaster compared to version 0.7 and lower. All of the functions in previous versions have been removed.
fasterRaster is now compatible with terra and sf and shares functions with the same names that do (almost always) the same things (esp. with terra, less so with sf).