o Added vignette "3-dimensional objects".
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).
- Changed uses of class() t* inherits()... fixes bug in fasterFocal() (and elsewhere?)
- fasterRaster can now use objects from terra and sf packages! Thanks for the suggestion, Miika!
- Fixed bug in fasterHorizon(). Thanks, Forest!
- Fixed bug in fasterTerrain(). Thanks, ankitsagar1!
- Added path t* GRASS directory for Mac in examples
- Updated documentation of example data sets
- Fix bug with workers not stopping when using fasterFocal() on a Mac
- Add generic function faster() that call most GRASS modules easily
- Add fasterContour(): Contours from rasters
- Add fasterConvertDegree(): Convert degrees
- Add fasterMapcalc(): Raster calculation
- Add fasterSun(): Solar irradiation and radiation
- Add fasterSurfFractal(): Fractal raster
- Add fasterTopoidx(): Topographic wetness index
- Revealed initGrass(): Now you can use it, too!
- User can provide names of objects created by GRASS in most functions
- Update PROJ4 strings in data objects
- Update help a lot
- Add fasterContour()
- Updated for GRASS 7.8.
- Worked for Open Source Geospatial (OSGeo) GRASS 7.4