Description Usage Arguments Value See Also Examples
Compute zonal statistics, that is summarized values of a Raster* object for each "zone" defined by a RasterLayer.
If stat
is a true function
, zonal
will fail (gracefully) for very large Raster objects, but it will in most cases work for functions that can be defined as by a character argument ('mean', 'sd', 'min', 'max', or 'sum'). In addition you can use 'count' to count the number of cells in each zone (only useful with na.rm=TRUE
, otherwise freq(z)
would be more direct.
If a function is used, it should accept a na.rm
argument (or at least a ...
argument)
1 2 3 4 5 |
x |
Raster* object |
z |
RasterLayer with codes representing zones |
fun |
function to be applied to summarize the values by zone. Either as character: 'mean', 'sd', 'min', 'max', 'sum'; or, for relatively small Raster* objects, a proper function |
digits |
integer. Number of digits to maintain in 'zones'. By default averaged to an integer (zero digits) |
na.rm |
logical. If |
... |
additional arguments. One implemented: |
A matrix with a value for each zone (unique value in zones
)
See cellStats
for 'global' statistics (i.e., all of x
is considered a single zone), and extract
for summarizing values for polygons
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | r <- raster(ncols=10, nrows=10)
values(r) <- runif(ncell(r)) * 1:ncell(r)
z <- r
values(z) <- rep(1:5, each=20)
# for large files, use a character value rather than a function
zonal(r, z, 'sum')
# for smaller files you can also provide a function
## Not run:
zonal(r, z, mean)
zonal(r, z, min)
## End(Not run)
# multiple layers
zonal(stack(r, r*10), z, 'sum')
|
Loading required package: sp
zone sum
[1,] 1 107.6314
[2,] 2 275.7102
[3,] 3 492.6915
[4,] 4 716.0040
[5,] 5 899.6109
zone value
[1,] 1 5.381572
[2,] 2 13.785509
[3,] 3 24.634573
[4,] 4 35.800201
[5,] 5 44.980546
zone value
[1,] 1 0.01778881
[2,] 2 1.72120588
[3,] 3 2.22054229
[4,] 4 2.87556308
[5,] 5 1.60465714
zone layer.1 layer.2
[1,] 1 107.6314 1076.314
[2,] 2 275.7102 2757.102
[3,] 3 492.6915 4926.915
[4,] 4 716.0040 7160.040
[5,] 5 899.6109 8996.109
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.