DEFUNCT: Please use the postProcessTo functions.
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.
see from argument from postProcessTo(), but can only be a SpatRaster.
see to argument from postProcessTo(), but can only be a SpatRaster.
A filename with an appropriate extension (e.g., .tif) for
gdal to write the output to. Since this function is conceived to be part of a
chain, and not the final step, this function does not use writeTo, which is
reserved for the final step in the chain.
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., options('reproducible.verbose' = 0) to reduce to minimal
For gdalProject, this can be method. For gdalMask can be destinationPath and touches.
For all gdal*, this can also be and datatype.
see maskTo argument from maskTo(), but can only be a SpatVector
Optional character string of a filename to use writeRaster to save the final
object. Default is NULL, which means there is no writeRaster
gdalProject 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.
These three functions were an alternative sequence
(gdalProject, gdalResample, gdalMask) for the from + projectTo
SpatRaster / maskTo SpatVector case in postProcessTo. The sequence
was determined to be faster and more accurate than any other ordering,
including running all three steps in one gdalwarp call (one-step
gdalwarp resulted in very coarse pixelation when converting from a
coarse resolution to fine resolution). They are retained for reference
only; the live postProcessTo path no longer dispatches to them.
gdalResample(), and gdalMask() and the overarching postProcessTo()
if (require("terra", quietly = TRUE)) {
# prepare dummy data -- 3 SpatRasters, 2 SpatVectors
# need 2 SpatRaster
rf <- system.file("ex/elev.tif", package = "terra")
elev1 <- terra::rast(rf)
# 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
utm <- "+proj=utm +zone=28 +datum=WGS84 +units=m +no_defs"
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)
t3a <- postProcessTo(elev1, to = rInUTM, maskTo = vInUTM)
}
#> terra 1.9.46
#> Running `postProcessTo`
#> cropping...
#> projecting...
#>
#> projectTo is a Vector dataset, which does not define all metadata required.
#> Using the origin and extent from `ext(from)` in the projection from
#> `crs(projectTo)`.
#> If this is not correct, create a template gridded object and pass that to
#> `projectTo`...
#>
#> done! took: 0.0155 secs
#> masking...
#> done! took: 0.012 secs
#> cropping...
#> done! took: 0.0206 secs
#> postProcessTo done! took: 0.117 secs
#> Running `postProcessTo`
#> cropping...
#> projecting...
#> done! took: 0.0458 secs
#> masking...
#> done! took: 0.012 secs
#> cropping...
#> done! took: 0.0112 secs
#> postProcessTo done! took: 0.132 secs
#> Running `postProcessTo`
#> cropping...
#> projecting...
#> done! took: 0.139 secs
#> masking...
#> done! took: 0.0169 secs
#> cropping...
#> done! took: 0.0216 secs
#> postProcessTo done! took: 0.465 secs