| gdalProject | R Documentation |
gdalwarpgdalProject is a thin wrapper around sf::gdal_utils('gdalwarp', ...) with specific options
set, notably, -r to method (in the ...), -t_srs to the crs of the toRas,
-te to the extent of the toRas, -te_srs to the crs of the toRas,
-dstnodata = NA, and -overwrite.
gdalResample is a thin wrapper around sf::gdal_utils('gdalwarp', ...) with specific options
set, notably, "-r", "near", -te, -te_srs, tr, -dstnodata = NA, -overwrite.
gdalMask is a thin wrapper around sf::gdal_utils('gdalwarp', ...) with specific options
set, notably, -cutline, -dstnodata = NA, and -overwrite.
gdalProject(
fromRas,
toRas,
filenameDest,
verbose = getOption("reproducible.verbose"),
...
)
gdalResample(
fromRas,
toRas,
filenameDest,
verbose = getOption("reproducible.verbose"),
...
)
gdalMask(
fromRas,
maskToVect,
writeTo = NULL,
verbose = getOption("reproducible.verbose"),
...
)
fromRas |
see |
toRas |
see |
filenameDest |
A filename with an appropriate extension (e.g., |
verbose |
Numeric, -1 silent (where possible), 0 being very quiet,
1 showing more messaging, 2 being more messaging, etc.
Default is 1. Above 3 will output much more information about the internals of
Caching, which may help diagnose Caching challenges. Can set globally with an
option, e.g., |
... |
For |
maskToVect |
see |
writeTo |
Optional character string of a filename to use |
These three functions are used within postProcessTo, in the sequence:
gdalProject, gdalResample and gdalMask, when from and projectTo are SpatRaster and
maskTo is a SpatVector, but only if options(reproducible.gdalwarp = TRUE) is set.
This sequence is a slightly different order than the sequence when gdalwarp = FALSE or
the arguments do not match the above. This sequence was determined to be faster and
more accurate than any other sequence, including running all three steps in one
gdalwarp call (which gdalwarp can do). Using one-step gdalwarp resulted in
very coarse pixelation when converting from a coarse resolution to fine resolution, which
visually was inappropriate in test cases.
gdalResample(), and gdalMask() and the overarching postProcessTo()
# prepare dummy data -- 3 SpatRasters, 2 SpatVectors
# need 2 SpatRaster
rf <- system.file("ex/elev.tif", package = "terra")
elev1 <- terra::rast(rf)
#'
ras2 <- terra::deepcopy(elev1)
ras2[ras2 > 200 & ras2 < 300] <- NA_integer_
terra::values(elev1) <- rep(1L, terra::ncell(ras2))
#'
# a polygon vector
f <- system.file("ex/lux.shp", package = "terra")
vOrig <- terra::vect(f)
v <- vOrig[1:2, ]
#'
utm <- terra::crs("epsg:23028") # $wkt
vInUTM <- terra::project(vOrig, utm)
vAsRasInLongLat <- terra::rast(vOrig, resolution = 0.008333333)
res100 <- 100
rInUTM <- terra::rast(vInUTM, resolution = res100, vals = 1)
# crop, reproject, mask, crop a raster with a vector in a different projection
# --> gives message about not enough information
t1 <- postProcessTo(elev1, to = vInUTM)
# crop, reproject, mask a raster to a different projection, then mask
t2a <- postProcessTo(elev1, to = vAsRasInLongLat, maskTo = vInUTM)
# using gdal directly --> slightly different mask
opts <- options(reproducible.gdalwarp = TRUE)
t2b <- postProcessTo(elev1, to = vAsRasInLongLat, maskTo = vInUTM)
t3b <- postProcessTo(elev1, to = rInUTM, maskTo = vInUTM)
options(opts)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.