knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) fig.path = 'man/figures/'
fasterRaster GRaster
s can represent double-floating point numeric values, integers, or categorical/factor data.
Double-floating point values are accurate to about the 15th to 17th decimal place. These are called "double" rasters in fasterRaster and DCELL
rasters in GRASS. These rasters typically take the most memory. All numeric
values in R are double-floating point values.
Less common that double-floating point rasters, floating point rasters are accurate to about the 7th decimal place. These are called "float" rasters in fasterRaster and FCELL
rasters in GRASS. These rasters typically take less memory than double-floating point rasters.
Rasters that represent integers are called "integer" rasters in fasterRaster and CELL
rasters in GRASS. You can force a raster to be an integer using as.int()
. Some of the functions in app()
function will also return integer-type rasters. Integer rasters typically take the least memory.
Categorical rasters (also called "factor" rasters) are actually integer rasters, but have an associated attribute table that maps each integer value to a category label, such as "wetland" or "forest". The table has at least two columns. The first is integer values, and (by default) the second is category names. This second column is the "active" category column that is used for plotting and in some functions. The active column can be changed using activeCat<-
.
GRaster
as.int()
, as.float()
, and as.doub()
coerce a raster to an integer, float, or double.datatype()
returns the data type of a GRaster
.freq()
: Frequency of each category across cells of a rasteris.factor()
indicates if the raster is a categorical raster.is.int()
, is.float()
, and is.doub()
indicate if values in a a raster are integers, floating-point, or double-floating point precision.GRaster
sactiveCat()
, activeCats()
, and activeCat<-
can be used to see or assign which column in a "levels" table associated with a categorical raster is used as category labels.addCats()
adds information to the "levels" table using data.table::merge()
(same as merge()
).addCats<-
add new levels to a "levels" table.catNames()
reports the column names of the "levels" table of each layer of a raster.cats()
returns the entire "levels" table of a categorical raster.combineLevels()
: Combine the "levels" tables of two or more categorical GRaster
s.complete.cases()
finds rows in the levels table that have no NA
s.concats()
combines levels of two or more categorical or integer rasters by concatenating them.droplevels()
removes "unused" levels in a "levels" table.levels()
returns the "levels" table of a categorical raster (just the value column and the active column).levels<-
and categories()
can be used to assign categories to an integer raster and make it categorical (i.e., a "factor" raster).match()
, %in%
, and $%notin%$
: Find which cells of a GRaster
match or do not match certain category labelsmissing.cases()
finds rows in the levels table that have at least one NA
.missingCats()
finds values in categorical rasters that do not have a category assigned to them.nlevels()
returns the number of levels represented by a categorical raster.subst()
: Re-assign category levelsYou can potentially save substantial space on disk by setting the datatype
argument in writeRaster()
to an appropriate value when saving a raster. This argument allows for finer "divisions" than just integer/float/double-float, so depending on the range of values in your raster, you can optimize file size by selecting the one that best matches the values in the raster. See the documentation for writeRaster()
for more information.
~ FINIS ~
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.