Title: | 'Targets' Extensions for Geospatial Formats |
---|---|
Description: | Provides extensions for various geospatial file formats, such as shapefiles and rasters. Currently provides support for the 'terra' geospatial formats. See the vignettes for worked examples, demonstrations, and explanations of how to use the various package extensions. |
Authors: | Nicholas Tierney [aut, cre] , Eric Scott [aut] , Andrew Brown [aut] |
Maintainer: | Nicholas Tierney <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.2.0.9000 |
Built: | 2024-12-19 01:39:42 UTC |
Source: | https://github.com/njtierney/geotargets |
Get or set behavior for geospatial data target stores using geotargets-specific global options.
geotargets_option_set( gdal_raster_driver = NULL, gdal_raster_creation_options = NULL, gdal_vector_driver = NULL, gdal_vector_creation_options = NULL, terra_preserve_metadata = NULL ) geotargets_option_get(name)
geotargets_option_set( gdal_raster_driver = NULL, gdal_raster_creation_options = NULL, gdal_vector_driver = NULL, gdal_vector_creation_options = NULL, terra_preserve_metadata = NULL ) geotargets_option_get(name)
gdal_raster_driver |
character, length 1; set the driver used for raster
data in target store (default: |
gdal_raster_creation_options |
character; set the GDAL creation options
used when writing raster files to target store (default: |
gdal_vector_driver |
character, length 1; set the file type used for
vector data in target store (default: |
gdal_vector_creation_options |
character; set the GDAL layer creation
options used when writing vector files to target store (default:
|
terra_preserve_metadata |
character. When |
name |
character; option name to get. |
These options can also be set using options()
. For example,
geotargets_options_set(gdal_raster_driver = "GTiff")
is equivalent to
options("geotargets.gdal.raster.driver" = "GTiff")
.
Specific options, such as "gdal.raster.driver". See "Details" for more information.
if (Sys.getenv("TAR_LONG_EXAMPLES") == "true") { targets::tar_dir({ # tar_dir() runs code from a temporary directory. library(geotargets) op <- getOption("geotargets.gdal.raster.driver") withr::defer(options("geotargets.gdal.raster.driver" = op)) geotargets_option_set(gdal_raster_driver = "COG") targets::tar_script({ list( geotargets::tar_terra_rast( terra_rast_example, system.file("ex/elev.tif", package = "terra") |> terra::rast() ) ) }) targets::tar_make() x <- targets::tar_read(terra_rast_example) }) } geotargets_option_get("gdal.raster.driver") geotargets_option_get("gdal.raster.creation.options")
if (Sys.getenv("TAR_LONG_EXAMPLES") == "true") { targets::tar_dir({ # tar_dir() runs code from a temporary directory. library(geotargets) op <- getOption("geotargets.gdal.raster.driver") withr::defer(options("geotargets.gdal.raster.driver" = op)) geotargets_option_set(gdal_raster_driver = "COG") targets::tar_script({ list( geotargets::tar_terra_rast( terra_rast_example, system.file("ex/elev.tif", package = "terra") |> terra::rast() ) ) }) targets::tar_make() x <- targets::tar_read(terra_rast_example) }) } geotargets_option_get("gdal.raster.driver") geotargets_option_get("gdal.raster.creation.options")
Create a new SpatRaster object as specified by a window (area of interest)
over the original SpatRaster. This is a wrapper around terra::window()
which, rather than modifying the SpatRaster in place, returns a new
SpatRaster leaving the original unchanged.
set_window(raster, window)
set_window(raster, window)
raster |
a SpatRaster object. |
window |
a SpatExtent object defining the area of interest. |
SpatRaster
While this may have general use, it was created primarily for use
within tar_terra_tiles()
.
Eric Scott
f <- system.file("ex/elev.tif", package="terra") r <- terra::rast(f) e <- terra::ext(c(5.9, 6,49.95, 50)) r2 <- set_window(r, e) terra::ext(r) terra::ext(r2)
f <- system.file("ex/elev.tif", package="terra") r <- terra::rast(f) e <- terra::ext(c(5.9, 6,49.95, 50)) r2 <- set_window(r, e) terra::ext(r) terra::ext(r2)
Provides a target format for stars
objects. Note that most or all stars
objects work with ordinary tar_target()
and do not necessarily need
geotargets
target factories the way terra
objects do. Currently
tar_stars()
has the same limitations as stars::write_stars()
, so use with
caution.
tar_stars( name, command, pattern = NULL, proxy = FALSE, mdim = FALSE, ncdf = FALSE, driver = geotargets_option_get("gdal.raster.driver"), options = geotargets_option_get("gdal.raster.creation.options"), ..., tidy_eval = targets::tar_option_get("tidy_eval"), packages = targets::tar_option_get("packages"), library = targets::tar_option_get("library"), repository = targets::tar_option_get("repository"), error = targets::tar_option_get("error"), memory = targets::tar_option_get("memory"), garbage_collection = targets::tar_option_get("garbage_collection"), deployment = targets::tar_option_get("deployment"), priority = targets::tar_option_get("priority"), resources = targets::tar_option_get("resources"), storage = targets::tar_option_get("storage"), retrieval = targets::tar_option_get("retrieval"), cue = targets::tar_option_get("cue"), description = targets::tar_option_get("description") ) tar_stars_proxy( name, command, pattern = NULL, mdim = FALSE, ncdf = FALSE, driver = geotargets_option_get("gdal.raster.driver"), options = geotargets_option_get("gdal.raster.creation.options"), ..., tidy_eval = targets::tar_option_get("tidy_eval"), packages = targets::tar_option_get("packages"), library = targets::tar_option_get("library"), repository = targets::tar_option_get("repository"), error = targets::tar_option_get("error"), memory = targets::tar_option_get("memory"), garbage_collection = targets::tar_option_get("garbage_collection"), deployment = targets::tar_option_get("deployment"), priority = targets::tar_option_get("priority"), resources = targets::tar_option_get("resources"), storage = targets::tar_option_get("storage"), retrieval = targets::tar_option_get("retrieval"), cue = targets::tar_option_get("cue"), description = targets::tar_option_get("description") )
tar_stars( name, command, pattern = NULL, proxy = FALSE, mdim = FALSE, ncdf = FALSE, driver = geotargets_option_get("gdal.raster.driver"), options = geotargets_option_get("gdal.raster.creation.options"), ..., tidy_eval = targets::tar_option_get("tidy_eval"), packages = targets::tar_option_get("packages"), library = targets::tar_option_get("library"), repository = targets::tar_option_get("repository"), error = targets::tar_option_get("error"), memory = targets::tar_option_get("memory"), garbage_collection = targets::tar_option_get("garbage_collection"), deployment = targets::tar_option_get("deployment"), priority = targets::tar_option_get("priority"), resources = targets::tar_option_get("resources"), storage = targets::tar_option_get("storage"), retrieval = targets::tar_option_get("retrieval"), cue = targets::tar_option_get("cue"), description = targets::tar_option_get("description") ) tar_stars_proxy( name, command, pattern = NULL, mdim = FALSE, ncdf = FALSE, driver = geotargets_option_get("gdal.raster.driver"), options = geotargets_option_get("gdal.raster.creation.options"), ..., tidy_eval = targets::tar_option_get("tidy_eval"), packages = targets::tar_option_get("packages"), library = targets::tar_option_get("library"), repository = targets::tar_option_get("repository"), error = targets::tar_option_get("error"), memory = targets::tar_option_get("memory"), garbage_collection = targets::tar_option_get("garbage_collection"), deployment = targets::tar_option_get("deployment"), priority = targets::tar_option_get("priority"), resources = targets::tar_option_get("resources"), storage = targets::tar_option_get("storage"), retrieval = targets::tar_option_get("retrieval"), cue = targets::tar_option_get("cue"), description = targets::tar_option_get("description") )
name |
Symbol, name of the target. A target name must be a valid name for
a symbol in R, and it must not start with a dot. See |
command |
R code to run the target. |
pattern |
Code to define a dynamic branching pattern for a target. See
|
proxy |
logical. Passed to |
mdim |
logical. Use the Multidimensional Raster Data Model via
|
ncdf |
logical. Use the NetCDF library directly to read data via
|
driver |
character. File format expressed as GDAL driver names passed to
|
options |
character. GDAL driver specific datasource creation options
passed to |
... |
Additional arguments not yet used. |
tidy_eval |
Logical, whether to enable tidy evaluation
when interpreting |
packages |
Character vector of packages to load right before
the target runs or the output data is reloaded for
downstream targets. Use |
library |
Character vector of library paths to try
when loading |
repository |
Character of length 1, remote repository for target storage. Choices:
Note: if |
error |
Character of length 1, what to do if the target stops and throws an error. Options:
|
memory |
Character of length 1, memory strategy.
If |
garbage_collection |
Logical, whether to run |
deployment |
Character of length 1. If |
priority |
Numeric of length 1 between 0 and 1. Controls which
targets get deployed first when multiple competing targets are ready
simultaneously. Targets with priorities closer to 1 get dispatched earlier
(and polled earlier in |
resources |
Object returned by |
storage |
Character of length 1, only relevant to
|
retrieval |
Character of length 1, only relevant to
|
cue |
An optional object from |
description |
Character of length 1, a custom free-form human-readable
text description of the target. Descriptions appear as target labels
in functions like |
target class "tar_stem" for use in a target pipeline
The iteration
argument is unavailable because it is hard-coded to
"list"
, the only option that works currently.
if (Sys.getenv("TAR_LONG_EXAMPLES") == "true") { targets::tar_dir({ # tar_dir() runs code from a temporary directory. library(geotargets) targets::tar_script({ list( geotargets::tar_stars( stars_example, stars::read_stars(system.file("tif", "olinda_dem_utm25s.tif", package = "stars")) ) ) }) targets::tar_make() x <- targets::tar_read(stars_example) }) }
if (Sys.getenv("TAR_LONG_EXAMPLES") == "true") { targets::tar_dir({ # tar_dir() runs code from a temporary directory. library(geotargets) targets::tar_script({ list( geotargets::tar_stars( stars_example, stars::read_stars(system.file("tif", "olinda_dem_utm25s.tif", package = "stars")) ) ) }) targets::tar_make() x <- targets::tar_read(stars_example) }) }
Provides a target format for terra::SpatRaster objects.
tar_terra_rast( name, command, pattern = NULL, filetype = geotargets_option_get("gdal.raster.driver"), gdal = geotargets_option_get("gdal.raster.creation.options"), preserve_metadata = geotargets_option_get("terra.preserve.metadata"), ..., tidy_eval = targets::tar_option_get("tidy_eval"), packages = targets::tar_option_get("packages"), library = targets::tar_option_get("library"), repository = targets::tar_option_get("repository"), error = targets::tar_option_get("error"), memory = targets::tar_option_get("memory"), garbage_collection = targets::tar_option_get("garbage_collection"), deployment = targets::tar_option_get("deployment"), priority = targets::tar_option_get("priority"), resources = targets::tar_option_get("resources"), storage = targets::tar_option_get("storage"), retrieval = targets::tar_option_get("retrieval"), cue = targets::tar_option_get("cue"), description = targets::tar_option_get("description") )
tar_terra_rast( name, command, pattern = NULL, filetype = geotargets_option_get("gdal.raster.driver"), gdal = geotargets_option_get("gdal.raster.creation.options"), preserve_metadata = geotargets_option_get("terra.preserve.metadata"), ..., tidy_eval = targets::tar_option_get("tidy_eval"), packages = targets::tar_option_get("packages"), library = targets::tar_option_get("library"), repository = targets::tar_option_get("repository"), error = targets::tar_option_get("error"), memory = targets::tar_option_get("memory"), garbage_collection = targets::tar_option_get("garbage_collection"), deployment = targets::tar_option_get("deployment"), priority = targets::tar_option_get("priority"), resources = targets::tar_option_get("resources"), storage = targets::tar_option_get("storage"), retrieval = targets::tar_option_get("retrieval"), cue = targets::tar_option_get("cue"), description = targets::tar_option_get("description") )
name |
Symbol, name of the target. A target
name must be a valid name for a symbol in R, and it
must not start with a dot. See |
command |
R code to run the target. |
pattern |
Code to define a dynamic branching pattern for a target. See
|
filetype |
character. File format expressed as GDAL driver names passed
to |
gdal |
character. GDAL driver specific datasource creation options
passed to |
preserve_metadata |
character. When |
... |
Additional arguments not yet used |
tidy_eval |
Logical, whether to enable tidy evaluation
when interpreting |
packages |
Character vector of packages to load right before
the target runs or the output data is reloaded for
downstream targets. Use |
library |
Character vector of library paths to try
when loading |
repository |
Character of length 1, remote repository for target storage. Choices:
Note: if |
error |
Character of length 1, what to do if the target stops and throws an error. Options:
|
memory |
Character of length 1, memory strategy.
If |
garbage_collection |
Logical, whether to run |
deployment |
Character of length 1. If |
priority |
Numeric of length 1 between 0 and 1. Controls which
targets get deployed first when multiple competing targets are ready
simultaneously. Targets with priorities closer to 1 get dispatched earlier
(and polled earlier in |
resources |
Object returned by |
storage |
Character of length 1, only relevant to
|
retrieval |
Character of length 1, only relevant to
|
cue |
An optional object from |
description |
Character of length 1, a custom free-form human-readable
text description of the target. Descriptions appear as target labels
in functions like |
terra::SpatRaster objects do not contain raster data directly—they
contain a C++ pointer to memory where the data is stored. As a result, these
objects are not portable between R sessions without special handling, which
causes problems when including them in targets
pipelines with
tar_target()
. tar_terra_rast()
handles this issue by writing and reading
the target as a geospatial file (specified by filetype
) rather than saving
the SpatRaster
object itself.
target class "tar_stem" for use in a target pipeline
The iteration
argument is unavailable because it is hard-coded to
"list"
, the only option that works currently.
if (Sys.getenv("TAR_LONG_EXAMPLES") == "true") { targets::tar_dir({ # tar_dir() runs code from a temporary directory. library(geotargets) targets::tar_script({ list( geotargets::tar_terra_rast( terra_rast_example, system.file("ex/elev.tif", package = "terra") |> terra::rast() ) ) }) targets::tar_make() x <- targets::tar_read(terra_rast_example) }) }
if (Sys.getenv("TAR_LONG_EXAMPLES") == "true") { targets::tar_dir({ # tar_dir() runs code from a temporary directory. library(geotargets) targets::tar_script({ list( geotargets::tar_terra_rast( terra_rast_example, system.file("ex/elev.tif", package = "terra") |> terra::rast() ) ) }) targets::tar_make() x <- targets::tar_read(terra_rast_example) }) }
Provides a target format for terra::SpatRasterDataset objects,
which hold sub-datasets, each a SpatRaster
that can have multiple layers.
tar_terra_sds( name, command, pattern = NULL, filetype = geotargets_option_get("gdal.raster.driver"), gdal = geotargets_option_get("gdal.raster.creation.options"), ..., tidy_eval = targets::tar_option_get("tidy_eval"), packages = targets::tar_option_get("packages"), library = targets::tar_option_get("library"), repository = targets::tar_option_get("repository"), error = targets::tar_option_get("error"), memory = targets::tar_option_get("memory"), garbage_collection = targets::tar_option_get("garbage_collection"), deployment = targets::tar_option_get("deployment"), priority = targets::tar_option_get("priority"), resources = targets::tar_option_get("resources"), storage = targets::tar_option_get("storage"), retrieval = targets::tar_option_get("retrieval"), cue = targets::tar_option_get("cue"), description = targets::tar_option_get("description") )
tar_terra_sds( name, command, pattern = NULL, filetype = geotargets_option_get("gdal.raster.driver"), gdal = geotargets_option_get("gdal.raster.creation.options"), ..., tidy_eval = targets::tar_option_get("tidy_eval"), packages = targets::tar_option_get("packages"), library = targets::tar_option_get("library"), repository = targets::tar_option_get("repository"), error = targets::tar_option_get("error"), memory = targets::tar_option_get("memory"), garbage_collection = targets::tar_option_get("garbage_collection"), deployment = targets::tar_option_get("deployment"), priority = targets::tar_option_get("priority"), resources = targets::tar_option_get("resources"), storage = targets::tar_option_get("storage"), retrieval = targets::tar_option_get("retrieval"), cue = targets::tar_option_get("cue"), description = targets::tar_option_get("description") )
name |
Symbol, name of the target. A target
name must be a valid name for a symbol in R, and it
must not start with a dot. See |
command |
R code to run the target. |
pattern |
Code to define a dynamic branching pattern for a target. See
|
filetype |
character. File format expressed as GDAL driver names passed
to |
gdal |
character. GDAL driver specific datasource creation options.
passed to |
... |
Additional arguments not yet used. |
tidy_eval |
Logical, whether to enable tidy evaluation
when interpreting |
packages |
Character vector of packages to load right before
the target runs or the output data is reloaded for
downstream targets. Use |
library |
Character vector of library paths to try
when loading |
repository |
Character of length 1, remote repository for target storage. Choices:
Note: if |
error |
Character of length 1, what to do if the target stops and throws an error. Options:
|
memory |
Character of length 1, memory strategy.
If |
garbage_collection |
Logical, whether to run |
deployment |
Character of length 1. If |
priority |
Numeric of length 1 between 0 and 1. Controls which
targets get deployed first when multiple competing targets are ready
simultaneously. Targets with priorities closer to 1 get dispatched earlier
(and polled earlier in |
resources |
Object returned by |
storage |
Character of length 1, only relevant to
|
retrieval |
Character of length 1, only relevant to
|
cue |
An optional object from |
description |
Character of length 1, a custom free-form human-readable
text description of the target. Descriptions appear as target labels
in functions like |
target class "tar_stem" for use in a target pipeline
The iteration
argument is unavailable because it is hard-coded to
"list"
, the only option that works currently.
Andrew Gene Brown
Nicholas Tierney
Eric R. Scott
targets::tar_target_raw()
, tar_terra_sprc()
if (Sys.getenv("TAR_LONG_EXAMPLES") == "true") { targets::tar_dir({ # tar_dir() runs code from a temporary directory. library(geotargets) targets::tar_script({ elev_scale <- function(z = 1) { terra::rast(system.file("ex", "elev.tif", package = "terra")) * z } list( tar_terra_sds( raster_elevs, # two rasters, one unaltered, one scaled by factor of 2 command = terra::sds(list( elev_scale(1), elev_scale(2) )) ) ) }) targets::tar_make() targets::tar_read(raster_elevs) }) }
if (Sys.getenv("TAR_LONG_EXAMPLES") == "true") { targets::tar_dir({ # tar_dir() runs code from a temporary directory. library(geotargets) targets::tar_script({ elev_scale <- function(z = 1) { terra::rast(system.file("ex", "elev.tif", package = "terra")) * z } list( tar_terra_sds( raster_elevs, # two rasters, one unaltered, one scaled by factor of 2 command = terra::sds(list( elev_scale(1), elev_scale(2) )) ) ) }) targets::tar_make() targets::tar_read(raster_elevs) }) }
Provides a target format for terra::SpatRasterCollection objects, which have no restriction in the extent or other geometric parameters.
tar_terra_sprc( name, command, pattern = NULL, filetype = geotargets_option_get("gdal.raster.driver"), gdal = geotargets_option_get("gdal.raster.creation.options"), ..., tidy_eval = targets::tar_option_get("tidy_eval"), packages = targets::tar_option_get("packages"), library = targets::tar_option_get("library"), repository = targets::tar_option_get("repository"), error = targets::tar_option_get("error"), memory = targets::tar_option_get("memory"), garbage_collection = targets::tar_option_get("garbage_collection"), deployment = targets::tar_option_get("deployment"), priority = targets::tar_option_get("priority"), resources = targets::tar_option_get("resources"), storage = targets::tar_option_get("storage"), retrieval = targets::tar_option_get("retrieval"), cue = targets::tar_option_get("cue"), description = targets::tar_option_get("description") )
tar_terra_sprc( name, command, pattern = NULL, filetype = geotargets_option_get("gdal.raster.driver"), gdal = geotargets_option_get("gdal.raster.creation.options"), ..., tidy_eval = targets::tar_option_get("tidy_eval"), packages = targets::tar_option_get("packages"), library = targets::tar_option_get("library"), repository = targets::tar_option_get("repository"), error = targets::tar_option_get("error"), memory = targets::tar_option_get("memory"), garbage_collection = targets::tar_option_get("garbage_collection"), deployment = targets::tar_option_get("deployment"), priority = targets::tar_option_get("priority"), resources = targets::tar_option_get("resources"), storage = targets::tar_option_get("storage"), retrieval = targets::tar_option_get("retrieval"), cue = targets::tar_option_get("cue"), description = targets::tar_option_get("description") )
name |
Symbol, name of the target. A target
name must be a valid name for a symbol in R, and it
must not start with a dot. See |
command |
R code to run the target. |
pattern |
Code to define a dynamic branching pattern for a target. See
|
filetype |
character. File format expressed as GDAL driver names passed
to |
gdal |
character. GDAL driver specific datasource creation options.
passed to |
... |
Additional arguments not yet used. |
tidy_eval |
Logical, whether to enable tidy evaluation
when interpreting |
packages |
Character vector of packages to load right before
the target runs or the output data is reloaded for
downstream targets. Use |
library |
Character vector of library paths to try
when loading |
repository |
Character of length 1, remote repository for target storage. Choices:
Note: if |
error |
Character of length 1, what to do if the target stops and throws an error. Options:
|
memory |
Character of length 1, memory strategy.
If |
garbage_collection |
Logical, whether to run |
deployment |
Character of length 1. If |
priority |
Numeric of length 1 between 0 and 1. Controls which
targets get deployed first when multiple competing targets are ready
simultaneously. Targets with priorities closer to 1 get dispatched earlier
(and polled earlier in |
resources |
Object returned by |
storage |
Character of length 1, only relevant to
|
retrieval |
Character of length 1, only relevant to
|
cue |
An optional object from |
description |
Character of length 1, a custom free-form human-readable
text description of the target. Descriptions appear as target labels
in functions like |
target class "tar_stem" for use in a target pipeline
The iteration
argument is unavailable because it is hard-coded to
"list"
, the only option that works currently.
Andrew Gene Brown
Nicholas Tierney
if (Sys.getenv("TAR_LONG_EXAMPLES") == "true") { targets::tar_dir({ # tar_dir() runs code from a temporary directory. library(geotargets) targets::tar_script({ elev_scale <- function(z = 1, projection = "EPSG:4326") { terra::project( terra::rast(system.file("ex", "elev.tif", package = "terra")) * z, projection ) } list( tar_terra_sprc( raster_elevs, # two rasters, one unaltered, one scaled by factor of 2 and # reprojected to interrupted good homolosine command = terra::sprc(list( elev_scale(1), elev_scale(2, "+proj=igh") )) ) ) }) targets::tar_make() x <- targets::tar_read(raster_elevs) }) }
if (Sys.getenv("TAR_LONG_EXAMPLES") == "true") { targets::tar_dir({ # tar_dir() runs code from a temporary directory. library(geotargets) targets::tar_script({ elev_scale <- function(z = 1, projection = "EPSG:4326") { terra::project( terra::rast(system.file("ex", "elev.tif", package = "terra")) * z, projection ) } list( tar_terra_sprc( raster_elevs, # two rasters, one unaltered, one scaled by factor of 2 and # reprojected to interrupted good homolosine command = terra::sprc(list( elev_scale(1), elev_scale(2, "+proj=igh") )) ) ) }) targets::tar_make() x <- targets::tar_read(raster_elevs) }) }
This target factory is useful when a raster is too large or too high resolution to work on in-memory. It can instead be split into tiles that can be iterated over using dynamic branching.
tar_terra_tiles( name, raster, tile_fun, filetype = geotargets_option_get("gdal.raster.driver"), gdal = geotargets_option_get("gdal.raster.creation.options"), ..., packages = targets::tar_option_get("packages"), library = targets::tar_option_get("library"), repository = targets::tar_option_get("repository"), error = targets::tar_option_get("error"), memory = targets::tar_option_get("memory"), garbage_collection = targets::tar_option_get("garbage_collection"), deployment = targets::tar_option_get("deployment"), priority = targets::tar_option_get("priority"), resources = targets::tar_option_get("resources"), storage = targets::tar_option_get("storage"), retrieval = targets::tar_option_get("retrieval"), cue = targets::tar_option_get("cue"), description = targets::tar_option_get("description") )
tar_terra_tiles( name, raster, tile_fun, filetype = geotargets_option_get("gdal.raster.driver"), gdal = geotargets_option_get("gdal.raster.creation.options"), ..., packages = targets::tar_option_get("packages"), library = targets::tar_option_get("library"), repository = targets::tar_option_get("repository"), error = targets::tar_option_get("error"), memory = targets::tar_option_get("memory"), garbage_collection = targets::tar_option_get("garbage_collection"), deployment = targets::tar_option_get("deployment"), priority = targets::tar_option_get("priority"), resources = targets::tar_option_get("resources"), storage = targets::tar_option_get("storage"), retrieval = targets::tar_option_get("retrieval"), cue = targets::tar_option_get("cue"), description = targets::tar_option_get("description") )
name |
Symbol, name of the target. A target
name must be a valid name for a symbol in R, and it
must not start with a dot. See |
raster |
a |
tile_fun |
a helper function that returns a list of numeric vectors such
as
|
filetype |
character. File format expressed as GDAL driver names passed
to |
gdal |
character. GDAL driver specific datasource creation options
passed to |
... |
additional arguments not yet used. |
packages |
Character vector of packages to load right before
the target runs or the output data is reloaded for
downstream targets. Use |
library |
Character vector of library paths to try
when loading |
repository |
Character of length 1, remote repository for target storage. Choices:
Note: if |
error |
Character of length 1, what to do if the target stops and throws an error. Options:
|
memory |
Character of length 1, memory strategy.
If |
garbage_collection |
Logical, whether to run |
deployment |
Character of length 1. If |
priority |
Numeric of length 1 between 0 and 1. Controls which
targets get deployed first when multiple competing targets are ready
simultaneously. Targets with priorities closer to 1 get dispatched earlier
(and polled earlier in |
resources |
Object returned by |
storage |
Character of length 1, only relevant to
|
retrieval |
Character of length 1, only relevant to
|
cue |
An optional object from |
description |
Character of length 1, a custom free-form human-readable
text description of the target. Descriptions appear as target labels
in functions like |
a list of two targets: an upstream target that creates a list of extents and a downstream pattern that maps over these extents to create a list of SpatRaster objects.
The iteration
argument is unavailable because it is hard-coded to
"list"
, the only option that works currently.
When using the tile_blocksize()
helper function, you may need to set
memory = "transient"
on the upstream target provided to the raster
argument of tar_terra_tiles()
. More details are in the help file for
tile_blocksize()
.
Eric Scott
tile_n()
, tile_grid()
, tile_blocksize()
, tar_terra_rast()
if (Sys.getenv("TAR_LONG_EXAMPLES") == "true") { targets::tar_dir({ targets::tar_script({ library(targets) library(geotargets) library(terra) list( tar_target( my_file, system.file("ex/elev.tif", package="terra"), format = "file" ), tar_terra_rast( my_map, terra::rast(my_file) ), tar_terra_tiles( name = rast_split, raster = my_map, ncol = 2, nrow = 2 ) ) }) targets::tar_manifest() }) }
if (Sys.getenv("TAR_LONG_EXAMPLES") == "true") { targets::tar_dir({ targets::tar_script({ library(targets) library(geotargets) library(terra) list( tar_target( my_file, system.file("ex/elev.tif", package="terra"), format = "file" ), tar_terra_rast( my_map, terra::rast(my_file) ), tar_terra_tiles( name = rast_split, raster = my_map, ncol = 2, nrow = 2 ) ) }) targets::tar_manifest() }) }
Provides a target format for terra::SpatVector objects.
tar_terra_vect( name, command, pattern = NULL, filetype = geotargets_option_get("gdal.vector.driver"), gdal = geotargets_option_get("gdal.vector.creation.options"), ..., packages = targets::tar_option_get("packages"), tidy_eval = targets::tar_option_get("tidy_eval"), library = targets::tar_option_get("library"), repository = targets::tar_option_get("repository"), error = targets::tar_option_get("error"), memory = targets::tar_option_get("memory"), garbage_collection = targets::tar_option_get("garbage_collection"), deployment = targets::tar_option_get("deployment"), priority = targets::tar_option_get("priority"), resources = targets::tar_option_get("resources"), storage = targets::tar_option_get("storage"), retrieval = targets::tar_option_get("retrieval"), cue = targets::tar_option_get("cue"), description = targets::tar_option_get("description") )
tar_terra_vect( name, command, pattern = NULL, filetype = geotargets_option_get("gdal.vector.driver"), gdal = geotargets_option_get("gdal.vector.creation.options"), ..., packages = targets::tar_option_get("packages"), tidy_eval = targets::tar_option_get("tidy_eval"), library = targets::tar_option_get("library"), repository = targets::tar_option_get("repository"), error = targets::tar_option_get("error"), memory = targets::tar_option_get("memory"), garbage_collection = targets::tar_option_get("garbage_collection"), deployment = targets::tar_option_get("deployment"), priority = targets::tar_option_get("priority"), resources = targets::tar_option_get("resources"), storage = targets::tar_option_get("storage"), retrieval = targets::tar_option_get("retrieval"), cue = targets::tar_option_get("cue"), description = targets::tar_option_get("description") )
name |
Symbol, name of the target. A target
name must be a valid name for a symbol in R, and it
must not start with a dot. See |
command |
R code to run the target. |
pattern |
Code to define a dynamic branching pattern for a target. See
|
filetype |
character. File format expressed as GDAL driver names passed
to |
gdal |
character. GDAL driver specific datasource creation options
passed to |
... |
Additional arguments not yet used. |
packages |
Character vector of packages to load right before
the target runs or the output data is reloaded for
downstream targets. Use |
tidy_eval |
Logical, whether to enable tidy evaluation
when interpreting |
library |
Character vector of library paths to try
when loading |
repository |
Character of length 1, remote repository for target storage. Choices:
Note: if |
error |
Character of length 1, what to do if the target stops and throws an error. Options:
|
memory |
Character of length 1, memory strategy.
If |
garbage_collection |
Logical, whether to run |
deployment |
Character of length 1. If |
priority |
Numeric of length 1 between 0 and 1. Controls which
targets get deployed first when multiple competing targets are ready
simultaneously. Targets with priorities closer to 1 get dispatched earlier
(and polled earlier in |
resources |
Object returned by |
storage |
Character of length 1, only relevant to
|
retrieval |
Character of length 1, only relevant to
|
cue |
An optional object from |
description |
Character of length 1, a custom free-form human-readable
text description of the target. Descriptions appear as target labels
in functions like |
terra::SpatVector objects do not contain vector data directly—they
contain a C++ pointer to memory where the data is stored. As a result, these
objects are not portable between R sessions without special handling, which
causes problems when including them in targets
pipelines with
tar_target()
. tar_terra_rast()
handles this issue by writing and reading
the target as a geospatial file (specified by filetype
) rather than saving
the SpatVector
object itself.
target class "tar_stem" for use in a target pipeline
The iteration
argument is unavailable because it is hard-coded to
"list"
, the only option that works currently.
Although you may pass any supported GDAL vector driver to the
filetype
argument, not all formats are guaranteed to work with
geotargets
. At the moment, we have tested GeoJSON
and ESRI Shapefile
which both appear to work generally.
if (Sys.getenv("TAR_LONG_EXAMPLES") == "true") { targets::tar_dir({ # tar_dir() runs code from a temporary directory. targets::tar_script({ lux_area <- function(projection = "EPSG:4326") { terra::project( terra::vect(system.file("ex", "lux.shp", package = "terra" )), projection ) } list( geotargets::tar_terra_vect( terra_vect_example, lux_area() ) ) }) targets::tar_make() x <- targets::tar_read(terra_vect_example) }) }
if (Sys.getenv("TAR_LONG_EXAMPLES") == "true") { targets::tar_dir({ # tar_dir() runs code from a temporary directory. targets::tar_script({ lux_area <- function(projection = "EPSG:4326") { terra::project( terra::vect(system.file("ex", "lux.shp", package = "terra" )), projection ) } list( geotargets::tar_terra_vect( terra_vect_example, lux_area() ) ) }) targets::tar_make() x <- targets::tar_read(terra_vect_example) }) }
Wrappers around terra::getTileExtents()
that return a list of named numeric
vectors describing the extents of tiles rather than SpatExtent
objects.
While these may have general use, they are intended primarily for supplying
to the tile_fun
argument of tar_terra_tiles()
.
tile_grid(raster, ncol, nrow) tile_blocksize(raster, n_blocks_row = 1, n_blocks_col = 1) tile_n(raster, n)
tile_grid(raster, ncol, nrow) tile_blocksize(raster, n_blocks_row = 1, n_blocks_col = 1) tile_n(raster, n)
raster |
a SpatRaster object. |
ncol |
integer; number of columns to split the SpatRaster into. |
nrow |
integer; number of rows to split the SpatRaster into. |
n_blocks_row |
integer; multiple of blocksize to include in each tile vertically. |
n_blocks_col |
integer; multiple of blocksize to include in each tile horizontally. |
n |
integer; total number of tiles to split the SpatRaster into. |
tile_blocksize()
creates extents using the raster's native block size (see
terra::fileBlocksize()
), which should be more memory efficient. Create
tiles with multiples of the raster's blocksize with n_blocks_row
and
n_blocks_col
. We strongly suggest the user explore how many tiles are
created by tile_blocksize()
before creating a dynamically branched target
using this helper. Note that block size is a property of files and does not
apply to in-memory SpatRaster
s. Therefore, if you want to use this helper
in tar_terra_tiles()
you may need to ensure the upstream target provided to
the raster
argument is not in memory by setting memory = "transient"
.
tile_grid()
allows specification of a number of rows and
columns to split the raster into. E.g. nrow = 2 and ncol = 2 would create 4
tiles (because it specifies a 2x2 matrix, which has 4 elements).
tile_n()
creates (about) n
tiles and prints the number of rows, columns,
and total tiles created.
list of named numeric vectors with xmin, xmax, ymin, and ymax values
that can be coerced to SpatExtent objects with terra::ext()
.
Eric Scott
f <- system.file("ex/elev.tif", package="terra") r <- terra::rast(f) tile_grid(r, ncol = 2, nrow = 2) tile_blocksize(r) tile_n(r, 8) ## Not run: #usage with tar_terra_tiles list( tar_terra_rast( my_map, terra::rast(system.file("ex/logo.tif", package = "terra")) ), tar_terra_tiles( name = rast_split, raster = my_map, tile_fun = tile_blocksize, description = "Each tile is 1 block" ), tar_terra_tiles( name = rast_split_2blocks, raster = my_map, tile_fun = \(x) tile_blocksize(x, n_blocks_row = 2, n_blocks_col = 1), description = "Each tile is 2 blocks tall, 1 block wide" ) tar_terra_tiles( name = rast_split_grid, raster = my_map, tile_fun = \(x) tile_grid(x, ncol = 2, nrow = 2), description = "Split into 4 tiles in a 2x2 grid" ), tar_terra_tiles( name = rast_split_n, raster = my_map, tile_fun = \(x) tile_n(x, n = 6), description = "Split into 6 tiles" ) ) ## End(Not run)
f <- system.file("ex/elev.tif", package="terra") r <- terra::rast(f) tile_grid(r, ncol = 2, nrow = 2) tile_blocksize(r) tile_n(r, 8) ## Not run: #usage with tar_terra_tiles list( tar_terra_rast( my_map, terra::rast(system.file("ex/logo.tif", package = "terra")) ), tar_terra_tiles( name = rast_split, raster = my_map, tile_fun = tile_blocksize, description = "Each tile is 1 block" ), tar_terra_tiles( name = rast_split_2blocks, raster = my_map, tile_fun = \(x) tile_blocksize(x, n_blocks_row = 2, n_blocks_col = 1), description = "Each tile is 2 blocks tall, 1 block wide" ) tar_terra_tiles( name = rast_split_grid, raster = my_map, tile_fun = \(x) tile_grid(x, ncol = 2, nrow = 2), description = "Split into 4 tiles in a 2x2 grid" ), tar_terra_tiles( name = rast_split_n, raster = my_map, tile_fun = \(x) tile_n(x, n = 6), description = "Split into 6 tiles" ) ) ## End(Not run)