{tilework} provides an extensible framework for:
Data flow
The framework accesses and processes data according to the following flow:
tileApply(x, tiles, ...)# operate across tilesgetTile(x, tiles, ..., get_params)# get data for tilesbounds <- tiles[...]# generate bounds infogetBoundedData(x, bounds, get_params)# data extraction
Expanded roles:
tileApply()- handles the function parallelization strategy and logic.getTile()- deals with any interactions between the data type and the tile indexing. Operations that should be performed before extraction of the actual data by tile bounds should happen at this level.getBoundedData()- performs the low-level data extraction from the data source, provided with a set of bounds information (commonly aSpatExtentornumericofc(xmin, xmax, ymin, ymax))
Adding new data type support
{tilework} functionalities can be extended to work with other data
types/backends by creating a getBoundedData() method for the data type.
Optional additional steps:
Method for
tileApply()should also be added if there are pre-run validation/data collection steps needed.Method for
getTile()should be added if there are operations that affect data/tile interactions.
See also
Other tilework extension:
redispatch_tileapply,SpatRaster,freeTilePlan-method,
token-class