This function splits a raster object into parts with approximately equal area.

split_raster_equally(r, n)

Source

The function taken and slightly modified from the `greenbrown' package (see https://rdrr.io/rforge/greenbrown/src/R/SplitRasterEqually.R). The function is defined separately in flapper to reduce reliance on non-default packages.

Arguments

r

A raster.

n

An integer that defines the number of parts into which to split the raster.

Value

The function returns a list containing the split raster components.

Details

The raster (r) should not only contain NAs.

Note

This function requires the `plyr' package.

References

Forkel M, Wutzler T (2015) greenbrown -- land surface phenology and trend analysis. A package for the R software. Version 2.2, 2015-04-15, http://greenbrown.r-forge.r-project.org/.

Examples

l <- split_raster_equally(dat_gebco, 2)
l <- split_raster_equally(dat_gebco, 3)
pp <- graphics::par(mfrow = c(1, 3))
lapply(l, function(r) prettyGraphics::pretty_map(add_rasters = list(x = r)))
#> prettyGraphics::pretty_map() CRS taken as: '+proj=longlat +datum=WGS84 +no_defs'.
#> prettyGraphics::pretty_map() CRS taken as: '+proj=longlat +datum=WGS84 +no_defs'.
#> prettyGraphics::pretty_map() CRS taken as: '+proj=longlat +datum=WGS84 +no_defs'.

#> [[1]]
#> [[1]]$`1`
#> [[1]]$`1`$axis
#> [[1]]$`1`$axis$at
#> [1] -5.54 -5.53 -5.52 -5.51 -5.50
#> 
#> [[1]]$`1`$axis$labels
#> [1] "-5.54" "-5.53" "-5.52" "-5.51" "-5.50"
#> 
#> [[1]]$`1`$axis$side
#> [1] 1
#> 
#> [[1]]$`1`$axis$las
#> [1] TRUE
#> 
#> [[1]]$`1`$axis$pos
#> [1] 56.34167
#> 
#> 
#> [[1]]$`1`$lim
#> [1] -5.541667 -5.495833
#> attr(,"user")
#> [1] TRUE TRUE
#> 
#> 
#> [[1]]$`2`
#> [[1]]$`2`$axis
#> [[1]]$`2`$axis$at
#> [1] 56.35 56.40 56.45
#> 
#> [[1]]$`2`$axis$labels
#> [1] "56.35" "56.40" "56.45"
#> 
#> [[1]]$`2`$axis$side
#> [1] 2
#> 
#> [[1]]$`2`$axis$las
#> [1] TRUE
#> 
#> [[1]]$`2`$axis$pos
#> [1] -5.541667
#> 
#> 
#> [[1]]$`2`$lim
#> [1] 56.34167 56.49167
#> attr(,"user")
#> [1] TRUE TRUE
#> 
#> 
#> [[1]]$`3`
#> [[1]]$`3`$axis
#> [[1]]$`3`$axis$labels
#> [1] FALSE
#> 
#> [[1]]$`3`$axis$at
#> [1] -5.54 -5.53 -5.52 -5.51 -5.50
#> 
#> [[1]]$`3`$axis$side
#> [1] 3
#> 
#> [[1]]$`3`$axis$las
#> [1] TRUE
#> 
#> [[1]]$`3`$axis$pos
#> [1] 56.49167
#> 
#> 
#> [[1]]$`3`$lim
#> [1] -5.541667 -5.495833
#> attr(,"user")
#> [1] TRUE TRUE
#> 
#> 
#> [[1]]$`4`
#> [[1]]$`4`$axis
#> [[1]]$`4`$axis$labels
#> [1] FALSE
#> 
#> [[1]]$`4`$axis$at
#> [1] 56.35 56.40 56.45
#> 
#> [[1]]$`4`$axis$side
#> [1] 4
#> 
#> [[1]]$`4`$axis$las
#> [1] TRUE
#> 
#> [[1]]$`4`$axis$pos
#> [1] -5.495833
#> 
#> 
#> [[1]]$`4`$lim
#> [1] 56.34167 56.49167
#> attr(,"user")
#> [1] TRUE TRUE
#> 
#> 
#> 
#> [[2]]
#> [[2]]$`1`
#> [[2]]$`1`$axis
#> [[2]]$`1`$axis$at
#> [1] -5.49 -5.48 -5.47 -5.46 -5.45
#> 
#> [[2]]$`1`$axis$labels
#> [1] "-5.49" "-5.48" "-5.47" "-5.46" "-5.45"
#> 
#> [[2]]$`1`$axis$side
#> [1] 1
#> 
#> [[2]]$`1`$axis$las
#> [1] TRUE
#> 
#> [[2]]$`1`$axis$pos
#> [1] 56.34167
#> 
#> 
#> [[2]]$`1`$lim
#> [1] -5.495833 -5.445833
#> attr(,"user")
#> [1] TRUE TRUE
#> 
#> 
#> [[2]]$`2`
#> [[2]]$`2`$axis
#> [[2]]$`2`$axis$at
#> [1] 56.35 56.40 56.45
#> 
#> [[2]]$`2`$axis$labels
#> [1] "56.35" "56.40" "56.45"
#> 
#> [[2]]$`2`$axis$side
#> [1] 2
#> 
#> [[2]]$`2`$axis$las
#> [1] TRUE
#> 
#> [[2]]$`2`$axis$pos
#> [1] -5.495833
#> 
#> 
#> [[2]]$`2`$lim
#> [1] 56.34167 56.49167
#> attr(,"user")
#> [1] TRUE TRUE
#> 
#> 
#> [[2]]$`3`
#> [[2]]$`3`$axis
#> [[2]]$`3`$axis$labels
#> [1] FALSE
#> 
#> [[2]]$`3`$axis$at
#> [1] -5.49 -5.48 -5.47 -5.46 -5.45
#> 
#> [[2]]$`3`$axis$side
#> [1] 3
#> 
#> [[2]]$`3`$axis$las
#> [1] TRUE
#> 
#> [[2]]$`3`$axis$pos
#> [1] 56.49167
#> 
#> 
#> [[2]]$`3`$lim
#> [1] -5.495833 -5.445833
#> attr(,"user")
#> [1] TRUE TRUE
#> 
#> 
#> [[2]]$`4`
#> [[2]]$`4`$axis
#> [[2]]$`4`$axis$labels
#> [1] FALSE
#> 
#> [[2]]$`4`$axis$at
#> [1] 56.35 56.40 56.45
#> 
#> [[2]]$`4`$axis$side
#> [1] 4
#> 
#> [[2]]$`4`$axis$las
#> [1] TRUE
#> 
#> [[2]]$`4`$axis$pos
#> [1] -5.445833
#> 
#> 
#> [[2]]$`4`$lim
#> [1] 56.34167 56.49167
#> attr(,"user")
#> [1] TRUE TRUE
#> 
#> 
#> 
#> [[3]]
#> [[3]]$`1`
#> [[3]]$`1`$axis
#> [[3]]$`1`$axis$at
#> [1] -5.44 -5.43 -5.42 -5.41 -5.40
#> 
#> [[3]]$`1`$axis$labels
#> [1] "-5.44" "-5.43" "-5.42" "-5.41" "-5.40"
#> 
#> [[3]]$`1`$axis$side
#> [1] 1
#> 
#> [[3]]$`1`$axis$las
#> [1] TRUE
#> 
#> [[3]]$`1`$axis$pos
#> [1] 56.34167
#> 
#> 
#> [[3]]$`1`$lim
#> [1] -5.445833 -5.400000
#> attr(,"user")
#> [1] TRUE TRUE
#> 
#> 
#> [[3]]$`2`
#> [[3]]$`2`$axis
#> [[3]]$`2`$axis$at
#> [1] 56.35 56.40 56.45
#> 
#> [[3]]$`2`$axis$labels
#> [1] "56.35" "56.40" "56.45"
#> 
#> [[3]]$`2`$axis$side
#> [1] 2
#> 
#> [[3]]$`2`$axis$las
#> [1] TRUE
#> 
#> [[3]]$`2`$axis$pos
#> [1] -5.445833
#> 
#> 
#> [[3]]$`2`$lim
#> [1] 56.34167 56.49167
#> attr(,"user")
#> [1] TRUE TRUE
#> 
#> 
#> [[3]]$`3`
#> [[3]]$`3`$axis
#> [[3]]$`3`$axis$labels
#> [1] FALSE
#> 
#> [[3]]$`3`$axis$at
#> [1] -5.44 -5.43 -5.42 -5.41 -5.40
#> 
#> [[3]]$`3`$axis$side
#> [1] 3
#> 
#> [[3]]$`3`$axis$las
#> [1] TRUE
#> 
#> [[3]]$`3`$axis$pos
#> [1] 56.49167
#> 
#> 
#> [[3]]$`3`$lim
#> [1] -5.445833 -5.400000
#> attr(,"user")
#> [1] TRUE TRUE
#> 
#> 
#> [[3]]$`4`
#> [[3]]$`4`$axis
#> [[3]]$`4`$axis$labels
#> [1] FALSE
#> 
#> [[3]]$`4`$axis$at
#> [1] 56.35 56.40 56.45
#> 
#> [[3]]$`4`$axis$side
#> [1] 4
#> 
#> [[3]]$`4`$axis$las
#> [1] TRUE
#> 
#> [[3]]$`4`$axis$pos
#> [1] -5.4
#> 
#> 
#> [[3]]$`4`$lim
#> [1] 56.34167 56.49167
#> attr(,"user")
#> [1] TRUE TRUE
#> 
#> 
#> 
graphics::par(pp)