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 GVector
s 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.table
s 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
GVector
s.
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 GRaster
s (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 GVector
s (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 module.
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
GVector
s.
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 GRaster
s) 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 GRaster
s 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 GRaster
s 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
GRaster
s and SpatRaster
s!
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 GRaster
s.
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 GVector
s or a GVector
and
itself.
o + extract()
and +
spatSample()
: Changed default value of cats
argument to TRUE
.
o fragmentation()
is much faster for
SpatRaster
s and for both SpatRaster
s and
GRaster
s, 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
GRaster
s. 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 GRaster
s 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 module 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
module).
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 GRaster
s can now be multiplied by, divide by, added to,
or subtracted from numeric
s in scientific notation
format.
o hist()
now works with factor
GRaster
s.
o plot()
relies on writeRaster()
for
datatype
(which is better).
o writeRaster()
saves all-NA
rows and
columns.
o [
now works for large GVector
s (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 GRaster
s.
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
GVector
s 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
GVector
s!!!!!
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 GVector
s 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
GRaster
s.
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
GVector
s.
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).