The grd_subset() method handles the subsetting of a grd()
in x-y space. Ordering of indices is not considered and logical
indies are recycled silently along dimensions. The result of
a grd_subset() is always a grd() of the same type whose
relationship to x-y space has not changed.
grd_subset(grid, i = NULL, j = NULL, ...)
grd_crop(grid, bbox, ..., step = 1L, snap = NULL)
grd_extend(grid, bbox, ..., step = 1L, snap = NULL)
# S3 method for class 'wk_grd_rct'
grd_crop(grid, bbox, ..., step = 1L, snap = NULL)
# S3 method for class 'wk_grd_xy'
grd_crop(grid, bbox, ..., step = 1L, snap = NULL)
# S3 method for class 'wk_grd_rct'
grd_extend(grid, bbox, ..., step = 1L, snap = NULL)
# S3 method for class 'wk_grd_xy'
grd_extend(grid, bbox, ..., step = 1L, snap = NULL)
grd_data_subset(grid_data, i = NULL, j = NULL)A grd_xy(), grd_rct(), or other object
implementing grd_*() methods.
1-based index values. i indices correspond to decreasing
y values; j indices correspond to increasing x values.
Values outside the range 1:nrow|ncol(data) will be censored to
NA including 0 and negative values.
Passed to subset methods
An rct() object.
The difference between adjascent indices in the output
A function that transforms real-valued indices to integer
indices (e.g., floor(), ceiling(), or round()).
For grd_cell_range(), a list() with exactly two elements to be called
for the minimum and maximum index values, respectively.
The data member of a grd(). This is typically an
array but can also be an S3 object with an array-like subset method.
The native raster is special-cased as its
subset method requires non-standard handling.
A modified grid whose cell centres have not changed location
as a result of the subset.
grid <- grd_rct(volcano)
grd_subset(grid, 1:20, 1:30)
#> <wk_grd_rct [20 x 30] => [0 67 30 87]>
#> List of 2
#> $ data: num [1:20, 1:30] 100 101 102 103 104 105 105 106 107 108 ...
#> $ bbox: wk_rct[1:1] [0 67 30 87]
#> - attr(*, "class")= chr [1:2] "wk_grd_rct" "wk_grd"
grd_crop(grid, rct(-10, -10, 10, 10))
#> <wk_grd_rct [10 x 10] => [0 0 10 10]>
#> List of 2
#> $ data: num [1:10, 1:10] 100 100 99 99 99 99 98 98 97 97 ...
#> $ bbox: wk_rct[1:1] [0 0 10 10]
#> - attr(*, "class")= chr [1:2] "wk_grd_rct" "wk_grd"
grd_extend(grid, rct(-10, -10, 10, 10))
#> <wk_grd_rct [20 x 20] => [-10 -10 10 10]>
#> List of 2
#> $ data: num [1:20, 1:20] NA NA NA NA NA NA NA NA NA NA ...
#> $ bbox: wk_rct[1:1] [-10 -10 10 10]
#> - attr(*, "class")= chr [1:2] "wk_grd_rct" "wk_grd"