% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/00d_GRaster_class.r
\name{makeGRaster}
\alias{makeGRaster}
\title{Create a GRaster from a GRASS raster}
\usage{
makeGRaster(src, names = "raster", levels = "", ac = NULL, fail = TRUE)
}
\arguments{
\item{src}{Character: The name of the raster in \strong{GRASS}.}

\item{names}{Character: Name of the raster (cf. \code{\link[=names]{names()}}).}

\item{levels}{\code{NULL} (default), a \code{data.frame}, \code{data.table}, an empty string (\code{""}), or a list of \code{data.frame}s, \code{data.table}s, and/or empty strings: These become the raster's \code{\link[=levels]{levels()}}. If \code{""}, then no levels are defined.}

\item{ac}{Vector of numeric/integer values >=1, or \code{NULL} (default): Active category column (offset by 1, so 1 really means the second column, 2 means the third, etc.). A value of \code{NULL} uses an automated procedure to figure it out.}

\item{fail}{Logical: If \code{TRUE} (default), and the raster either has a 0 east-west or north-south extent, then exit the function with an error. If \code{fail} is \code{FALSE}, then display a warning and return \code{NULL}.}
}
\value{
A \code{GRaster}.
}
\description{
Create a \code{GRaster} from a raster existing in the current \strong{GRASS} session.
}
\examples{
if (grassStarted()) {

# Setup
library(sf)
library(terra)

# Example data
madElev <- fastData("madElev") # integer raster
madCover <- fastData("madCover") # categorical raster
madCoast4 <- fastData("madCoast4") # polygons vector
madRivers <- fastData("madRivers") # lines vector
madDypsis <- fastData("madDypsis") # points vector

### Create GRasters from SpatRasters

# Create an integer raster:
elev <- fast(madElev)
elev

# Create a categorical raster:
cover <- fast(madCover)
madCover
levels(madCover) # category levels

# Create a GRaster from a file on disk:
rastFile <- system.file("extdata", "madForest2000.tif", package = "fasterRaster")
forest2000 <- fast(rastFile)
forest2000

# Create a 1's raster that spans the world:
ones <- fast(rastOrVect = "raster", crs = "epsg:4326")
ones

### Create GVectors

# Create a GVector from an sf vector:
coast4 <- fast(madCoast4)
coast4

# Create a GVector from a SpatVector:
madRivers <- vect(madRivers)
class(madRivers)
rivers <- fast(madRivers)
rivers

# Create a GVector from a vector on disk:
vectFile <- system.file("extdata/shapes", "madCoast.shp",
   package = "fasterRaster")
coast0 <- fast(vectFile)
coast0

# Import only Dypsis occurrences in a restricted area:
ant <- coast4[coast4$NAME_4 == "Antanambe"]
dypsisRestrict <- fast(madDypsis, extent = ant)
dypsis <- fast(madDypsis)

plot(coast4)
plot(ant, col = "gray80", add = TRUE)
plot(dypsis, add = TRUE)
plot(dypsisRestrict, col = "red", add = TRUE)

# Create a generic GVector that spans the world:
wallToWall <- fast(rastOrVect = "vector", crs = "epsg:4326") # WGS84
wallToWall

# Create a GVector from a numeric vector
pts <- c(-90.2, 38.6, -122.3, 37.9)
pts <- fast(pts, crs = "epsg:4326") # WGS84

# Create a GVector from a matrix (can also use data.frame or data.table):
mat <- matrix(c(-90.2, 38.6, -122.3, 37.9), ncol = 2, byrow = TRUE)
mat <- fast(mat, crs = "epsg:4326", keepgeom = TRUE) # WGS84

}
}
\seealso{
\code{\link[=makeGVector]{makeGVector()}}
}
