readRAST | R Documentation |
Read GRASS raster files from GRASS into R terra "SpatRaster"
or sp "SpatialGridDataFrame"
objects, and write single columns of terra "SpatRaster"
or sp "SpatialGridDataFrame"
objects to GRASS. When return_format="terra"
, temporary binary files and r.out.bin and r.in.bin are used for speed reasons. read_RAST()
and write_RAST()
by default use "RRASTER"
files written and read by GDAL.
read_RAST(vname, cat=NULL, NODATA=NULL,
return_format="terra", close_OK=return_format=="SGDF",
flags=NULL, Sys_ignore.stdout = FALSE, ignore.stderr=get.ignore.stderrOption())
write_RAST(x, vname, zcol = 1, NODATA=NULL, flags=NULL,
ignore.stderr = get.ignore.stderrOption(), overwrite=FALSE, verbose=TRUE)
vname |
A vector of GRASS raster file names in mapsets in the current search path, as set by “g.mapsets”; the file names may be given as fully-qualified map names using “name@mapset”, in which case only the mapset given in the full path will be searched for the existence of the raster; if more than one raster with the same name is found in mapsets in the current search path, an error will occur, in which case the user should give the fully-qualified map name. If the fully-qualified name is used, |
cat |
default NULL; if not NULL, must be a logical vector matching vname, stating which (CELL) rasters to return as factor |
return_format |
default |
Sys_ignore.stdout |
Passed to |
ignore.stderr |
default taking the value set by |
close_OK |
default TRUE - clean up possible open connections used for reading metadata; may be set to FALSE to avoid the side-effect of other user-opened connections being broken |
x |
A terra |
zcol |
Attribute column number or name |
NODATA |
by default NULL, in which case it is set to one less than |
overwrite |
default FALSE, if TRUE inserts |
flags |
default NULL, character vector, for example |
verbose |
default TRUE, report how writing to GRASS is specified |
read_RAST
by default returns a SpatRaster object, but may return a legacy SpatialGridDataFrame object if return_format="SGDF"
. write_RAST
silently returns the object being written to GRASS.
Roger S. Bivand, e-mail: Roger.Bivand@nhh.no
run <- FALSE
if (nchar(Sys.getenv("GISRC")) > 0 &&
read.dcf(Sys.getenv("GISRC"))[1,"LOCATION_NAME"] == "nc_basic_spm_grass7") run <- TRUE
GV <- Sys.getenv("GRASS_VERBOSE")
Sys.setenv("GRASS_VERBOSE"=0)
ois <- get.ignore.stderrOption()
set.ignore.stderrOption(TRUE)
if (run) {
meta <- gmeta()
location_path <- file.path(meta$GISDBASE, meta$LOCATION_NAME)
previous_mapset <- meta$MAPSET
example_mapset <- "RGRASS_EXAMPLES"
execGRASS("g.mapset", "c", mapset = example_mapset)
}
if (run) {
unlist(strsplit(execGRASS("g.mapsets", flags="p", intern=TRUE), " "))
}
if (run) {
execGRASS("g.list", type="raster", pattern="soils", flags="m", intern=TRUE)
}
if (run) {
execGRASS("g.list", type="raster", pattern="soils@PERMANENT", mapset=".", flags="m", intern=TRUE)
}
if (run) {
execGRASS("g.list", type="raster", pattern="soils", mapset="PERMANENT", flags="m", intern=TRUE)
}
run <- run && require("terra", quietly=TRUE)
if (run) {
v1 <- read_RAST("landuse", cat=TRUE, return_format="terra")
v1
inMemory(v1)
}
if (run) {
write_RAST(v1, "landuse1", flags=c("o", "overwrite"))
execGRASS("r.stats", flags="c", input="landuse1")
execGRASS("g.remove", flags="f", name="landuse1", type="raster")
}
Sys.setenv("_SP_EVOLUTION_STATUS_"="2")
run <- run && require("sp", quietly=TRUE)
if (run) {
nc_basic <- read_RAST(c("geology", "elevation"), cat=c(TRUE, FALSE),
return_format="SGDF")
print(table(nc_basic$geology))
}
if (run) {
execGRASS("r.stats", flags=c("c", "l", "quiet"), input="geology")
}
if (run) {
boxplot(nc_basic$elevation ~ nc_basic$geology)
}
if (run) {
nc_basic$sqdem <- sqrt(nc_basic$elevation)
}
if (run) {
write_RAST(nc_basic, "sqdemSP", zcol="sqdem", flags=c("quiet", "overwrite"))
execGRASS("r.info", map="sqdemSP")
}
if (run) {
print(system.time(sqdemSP <- read_RAST(c("sqdemSP", "elevation"),
return_format="SGDF")))
}
if (run) {
print(system.time(sqdem <- read_RAST(c("sqdemSP", "elevation"),
return_format="terra")))
}
if (run) {
names(sqdem)
}
if (run) {
sqdem1 <- read_RAST(c("sqdemSP@RGRASS_EXAMPLES", "elevation@PERMANENT"))
}
if (run) {
names(sqdem1)
}
if (run) {
execGRASS("g.remove", flags="f", name="sqdemSP", type="raster")
execGRASS("r.mapcalc", expression="basins0 = basins - 1", flags="overwrite")
execGRASS("r.stats", flags="c", input="basins0")
}
if (run) {
basins0 <- read_RAST("basins0", return_format="SGDF")
print(table(basins0$basins0))
}
if (run) {
execGRASS("g.remove", flags="f", name="basins0", type="raster")
}
if (run) {
execGRASS(cmd = "r.mapcalc", expression="test_t=66000", flags="overwrite")
execGRASS("r.info", flags = "r", map = "test_t", intern = TRUE) # #82
}
if (run) {
(tt = read_RAST(vname = "test_t"))
}
if (run) {
execGRASS("g.remove", flags="f", name="test_t", type="raster")
}
if (run) {
execGRASS("g.mapset", mapset = previous_mapset)
if (example_mapset != previous_mapset) {
unlink(file.path(location_path, example_mapset), recursive = TRUE)
}
}
Sys.setenv("GRASS_VERBOSE"=GV)
set.ignore.stderrOption(ois)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.