Skip to content

Commit 4315f94

Browse files
authored
fasterRaster 8.4.1.0 (2025-06-17)
fasterRaster 8.4.1.0 (2025-06-17) ### Code-breaking changes o `rnormRast()` is now `rNormRast()`. o `runifRast()` is now `rUnifRast()`. ### New functions and functionality 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. ### Minor fixes o Rebranding as per **GRASS** re-brand (haromonized logo with **GRASS** April 2025 branding guidelines, "GRASS GIS" --> just "GRASS", "modules" --> "tools).
2 parents 497d4a9 + 28b8cea commit 4315f94

168 files changed

Lines changed: 1614 additions & 559 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.vscode/settings.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"CRS",
55
"Dypsis",
66
"Epanechnikov",
7+
"geostatistical",
78
"mapset",
89
"unprojected"
910
]

DESCRIPTION

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
Package: fasterRaster
22
Type: Package
3-
Title: Faster Raster and Spatial Vector Processing Using 'GRASS GIS'
4-
Version: 8.4.0.7
5-
Date: 2025-04-24
3+
Title: Faster Raster and Spatial Vector Processing Using 'GRASS'
4+
Version: 8.4.1.0
5+
Date: 2025-06-19
66
Authors@R:
77
c(
88
person(
@@ -15,12 +15,12 @@ Authors@R:
1515
)
1616
Maintainer: Adam B. Smith <adam.smith@mobot.org>
1717
Description: Processing of large-in-memory/large-on disk rasters and spatial
18-
vectors using 'GRASS GIS' <https://grass.osgeo.org/>. Most functions in
19-
the 'terra' package are recreated. Processing of medium-sized and smaller
18+
vectors using 'GRASS' <https://grass.osgeo.org/>. Most functions in the
19+
'terra' package are recreated. Processing of medium-sized and smaller
2020
spatial objects will nearly always be faster using 'terra' or 'sf', but
2121
for large-in-memory/large-on-disk objects, 'fasterRaster' may be faster.
2222
To use most of the functions, you must have the stand-alone version (not
23-
the 'OSGeoW4' installer version) of 'GRASS GIS' 8.0 or higher.
23+
the 'OSGeoW4' installer version) of 'GRASS' 8.0 or higher.
2424
Depends:
2525
R (>= 4.0.0)
2626
Imports:

NAMESPACE

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@ export(faster)
99
export(grassHelp)
1010
export(grassInfo)
1111
export(grassStarted)
12+
export(installAddon)
1213
export(is.polygons)
1314
export(mow)
1415
export(pcs)
1516
export(print)
17+
export(removeAddon)
1618
export(seqToSQL)
1719
export(st_coordinates)
1820
export(st_crs)
@@ -172,12 +174,15 @@ exportMethods(minmax)
172174
exportMethods(missing.cases)
173175
exportMethods(missingCats)
174176
exportMethods(mmode)
177+
exportMethods(multivarEnvSim)
175178
exportMethods(nacell)
176179
exportMethods(names)
177180
exportMethods(ncell)
178181
exportMethods(ncell3d)
179182
exportMethods(ncol)
180183
exportMethods(ndepth)
184+
exportMethods(neighborhoodMatrix)
185+
exportMethods(neighbourhoodMatrix)
181186
exportMethods(ngeom)
182187
exportMethods(nlevels)
183188
exportMethods(nlyr)
@@ -194,7 +199,10 @@ exportMethods(predict)
194199
exportMethods(princomp)
195200
exportMethods(project)
196201
exportMethods(quantile)
202+
exportMethods(rNormRast)
197203
exportMethods(rSpatialDepRast)
204+
exportMethods(rUnifRast)
205+
exportMethods(rWalkRast)
198206
exportMethods(range)
199207
exportMethods(rast)
200208
exportMethods(rasterize)
@@ -212,10 +220,8 @@ exportMethods(replaceNAs)
212220
exportMethods(res)
213221
exportMethods(res3d)
214222
exportMethods(resample)
215-
exportMethods(rnormRast)
216223
exportMethods(round)
217224
exportMethods(ruggedness)
218-
exportMethods(runifRast)
219225
exportMethods(rvoronoi)
220226
exportMethods(sampleRast)
221227
exportMethods(scale)

NEWS.md

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,27 @@
1+
# fasterRaster 8.4.1.0 (2025-06-17)
2+
3+
### Code-breaking changes
4+
o `rnormRast()` is now `rNormRast()`.
5+
o `runifRast()` is now `rUnifRast()`.
6+
7+
### New functions and functionality
8+
o `addons()` now reports the names of all installed addons or whether a given addon is installed.
9+
o `installAddon()` installs an addon.
10+
o `removeAddon()` deletes an addon.
11+
o `centroids()` now calculates centroids of clumps in a `GRaster`.
12+
o `multivarEnvSim()` calculates multivariate environmental similarity (MESS).
13+
o `neighborhoodMatrix()` generates a neighborhood matrix from a polygons `GVector`.
14+
o `rWalkRast()` creates a raster with the path of random walkers.
15+
o `ruggedness()` now allows for calculation of the terrain ruggedness index across user-defined windows with distance-based weighting.
16+
17+
### Minor fixes
18+
o Rebranding as per **GRASS** re-brand (haromonized logo with **GRASS** April 2025 branding guidelines, "GRASS GIS" --> just "GRASS", "modules" --> "tools).
19+
120
# fasterRaster 8.4.0.7 (2025-04-24)
221
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.
322

423
# fasterRaster 8.4.0.6 (2025-03-26)
5-
o `faster(debug = TRUE)` displays the **GRASS** command for each **GRASS** module called in a **fasterRaster** function.
24+
o `faster(debug = TRUE)` displays the **GRASS** command for each **GRASS** tool called in a **fasterRaster** function.
625
o `GVector[i]` works for cases with long `i`s.
726
o Fixes to help pages.
827

@@ -84,7 +103,7 @@ o `pca()` has been renamed `princomp()`.
84103
### Enhanced functionality and new functions
85104
o `extract()` now automatically projects a `GVector` to match the CRS of a `GRaster` from which extraction is being made.
86105
o `grassGUI()` allows users to start the **GRASS** GUI.
87-
o `grassHelp()` shows the manual page for a **GRASS** module.
106+
o `grassHelp()` shows the manual page for a **GRASS** tool.
88107
o `layerIndex()` allows a `negate` argument to get the "opposite" indices of a `GRaster`.
89108
o `init()` assigns to `GRaster` cells the value of their coordinates, rows, columns, or values in a regular or chessboard-like pattern.
90109
o `regress()` replaces individual functions `intercept()`, `slope()`, `r2()`, and `tvalue()`.
@@ -238,8 +257,8 @@ o `activeCat()`: Correct output when `names = TRUE`.
238257
o `expanse()`: Expanded list of units; correct assignation of units to **GRASS** unit format.
239258
o `extract()`: Extracting from a `GRaster` to a `lines` or `polygons` `GVector` works.
240259
o `fast()`: Fixed bug arising when reading vector saved by `writeRaster()`.
241-
o + `global()`: Removed functions `"countNA"` and `"countNonNA"` from `global()` since **GRASS** module `r.report` can be mistaken.
242-
o `nacell()` and `nonnacell()`: Correct (but slow~~~) reporting of `NA` and non-`NA` cells (workaround of error in **GRASS**'s `r.report` module).
260+
o + `global()`: Removed functions `"countNA"` and `"countNonNA"` from `global()` since **GRASS** tool `r.report` can be mistaken.
261+
o `nacell()` and `nonnacell()`: Correct (but slow~~~) reporting of `NA` and non-`NA` cells (workaround of error in **GRASS**'s `r.report` tool).
243262

244263
# fasterRaster 8.3.0.7016 (2024-05-27)
245264

R/00e_GVector_class.r

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ methods::setValidity("GVector",
5454
#'
5555
#' @param table A `data.table`, `data.frame`, `GVector` with a table, or character. This can be `data.table(NULL)` or `data.frame(NULL)` if there is no table associated with the vector. If a character, this is interpreted as the name of the table in **GRASS**.
5656
#'
57-
#' @param build Logical: If `TRUE` (default), build topology using **GRASS** module `v.build`.
57+
#' @param build Logical: If `TRUE` (default), build topology using **GRASS** tool `v.build`.
5858
#'
5959
#' @param extensive Logical: If `TRUE`, do extensive topological checks using `v.build`. The default is `FALSE`.
6060
#'

R/01_generics.r

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,8 @@ methods::setGeneric(name = "dropTable", def = function(x, ...) standardGeneric("
128128

129129
methods::setGeneric(name = "E", def = function(x, ...) standardGeneric("E"))
130130
# methods::setGeneric(name = "elide", def = function(x, ...) standardGeneric("elide"))
131-
methods::setGeneric(name = "erase", package = "terra")
132-
methods::setGeneric(name = "ext", package = "terra")
131+
methods::setGeneric(name = "erase", package = "terra")
132+
methods::setGeneric(name = "ext", package = "terra")
133133
methods::setGeneric(name = "extend", package = "terra")
134134
methods::setGeneric(name = "expanse", package = "terra")
135135
methods::setGeneric(name = "extract", package = "terra")
@@ -199,14 +199,17 @@ methods::setGeneric(name = "merge", package = "terra")
199199
#' @importFrom terra median
200200
methods::setGeneric(name = "median", def = function(x, na.rm) standardGeneric("median"))
201201
methods::setGeneric(name = "mmode", def = function(x, ...) package = "omnibus")
202+
methods::setGeneric(name = "multivarEnvSim", def = function(ref, proj, ...) standardGeneric("multivarEnvSim"))
202203

203204
# "names" (in base) is primitive
204205
methods::setGeneric(name = "N", def = function(x, ...) standardGeneric("N"))
205206
methods::setGeneric(name = "ncell", package = "terra")
206207
methods::setGeneric(name = "ncell3d", def = function(x) standardGeneric("ncell3d"))
207208
methods::setGeneric(name = "ncol", def = function(x) standardGeneric("ncol")) # in base
208209
methods::setGeneric(name = "ndepth", def = function(x) standardGeneric("ndepth"))
209-
methods::setGeneric(name = "new", package = "methods")
210+
methods::setGeneric(name = "neighborhoodMatrix", def = function(x, ...) standardGeneric("neighborhoodMatrix"))
211+
methods::setGeneric(name = "neighbourhoodMatrix", def = function(x, ...) standardGeneric("neighbourhoodMatrix"))
212+
methods::setGeneric(name = "new", package = "methods")
210213
methods::setGeneric(name = "nlyr", package = "terra")
211214
methods::setGeneric(name = "nacell", def = function(x, ...) standardGeneric("nacell"))
212215
methods::setGeneric(name = "ngeom", def = function(x, ...) standardGeneric("ngeom"))
@@ -238,7 +241,6 @@ methods::setGeneric(name = "rasterize", package = "terra")
238241
# from https://stackoverflow.com/questions/27886535/proper-way-to-use-cbind-rbind-with-s4-classes-in-package
239242
methods::getGeneric("rbind")
240243
methods::setGeneric(name = "rbind", signature = "...")
241-
242244
methods::setGeneric(name = "regress", package = "terra")
243245
methods::setGeneric(name = "remove0", def = function(x, ...) standardGeneric("remove0"))
244246
methods::setGeneric(name = "removeAngles", def = function(x, ...) standardGeneric("removeAngles"))
@@ -251,10 +253,11 @@ methods::setGeneric(name = "replaceNAs", def = function(x, ...) standardGeneric(
251253
methods::setGeneric(name = "res", package = "terra")
252254
methods::setGeneric(name = "res3d", def = function(x) standardGeneric("res3d"))
253255
methods::setGeneric(name = "resample", package = "terra")
254-
methods::setGeneric(name = "rnormRast", def = function(x, ...) standardGeneric("rnormRast"))
256+
methods::setGeneric(name = "rNormRast", def = function(x, ...) standardGeneric("rNormRast"))
255257
methods::setGeneric(name = "ruggedness", def = function(x, ...) standardGeneric("ruggedness"))
256-
methods::setGeneric(name = "runifRast", def = function(x, ...) standardGeneric("runifRast"))
258+
methods::setGeneric(name = "rUnifRast", def = function(x, ...) standardGeneric("rUnifRast"))
257259
methods::setGeneric(name = "rvoronoi", def = function(x, ...) standardGeneric("rvoronoi"))
260+
methods::setGeneric(name = "rWalkRast", def = function(x, ...) standardGeneric("rWalkRast"))
258261

259262
methods::setGeneric(name = "S", def = function(x, ...) standardGeneric("S"))
260263
methods::setGeneric(name = "sampleRast", def = function(x, ...) standardGeneric("sampleRast"))

R/05_GRaster_functions_by_layer.r

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ setMethod(
383383
)
384384

385385
#' Generic trigonometry function
386-
#' @param fx Character: Name of the function in **GRASS** module `r.series`.
386+
#' @param fx Character: Name of the function in **GRASS** tool `r.series`.
387387
#' @param x A `GRaster`.
388388
#' @noRd
389389
.genericTrig <- function(fx, x) {
@@ -409,7 +409,7 @@ setMethod(
409409
}
410410

411411
#' Generic "arc"-trigonometry function
412-
#' @param fx Character: Name of the function in **GRASS** module `r.series`.
412+
#' @param fx Character: Name of the function in **GRASS** tool `r.series`.
413413
#' @param x A `GRaster`.
414414
#' @noRd
415415
.genericArcTrig <- function(fx, x) {
@@ -435,7 +435,7 @@ setMethod(
435435
}
436436

437437
#' Generic function with one input (the GRaster)
438-
#' @param fx Character: Name of the function in **GRASS** module `r.series`.
438+
#' @param fx Character: Name of the function in **GRASS** tool `r.series`.
439439
#' @param x A `GRaster`.
440440
#' @noRd
441441
.genericRastFx <- function(fx, x) {
@@ -464,7 +464,7 @@ setMethod(
464464
}
465465

466466
#' Generic function with two inputs (GRaster and a numeric)
467-
#' @param fx Character: Name of the function in **GRASS** module `r.series`.
467+
#' @param fx Character: Name of the function in **GRASS** tool `r.series`.
468468
#' @param x A `GRaster`.
469469
#' @param y A numeric.
470470
#' @noRd

0 commit comments

Comments
 (0)