| affineCoords | R Documentation |
Affine transformations are of type f(x) = Ax + b, where x is the spatial coordinates (2D in this case), A is a rotation matrix (it can also include scale/shear parameters, but only rotation is considered here), and b is the translation (xy shift) parameters.
affineCoords(s, angle = 0, xy_shift = c(0, 0))
s |
A spatial object where |
angle |
A numeric value of the angle (in degrees, 0-360) to rotate
|
xy_shift |
A numeric vector of length two with the x and y shift (the translation parameters). |
A two-column matrix with the transformed coordinates (xy).
affineBrick()
p <- system.file('exdata', 'soybean.tif', package = 'hyperbrick')
im <- brick(p)
print(im)
# view band-3
plot(im[[3]], col = gray.colors(20), asp = 0)
# draw a spatial polygon on image
pol <- Polygon(extent(c(40, 85, 50, 150)))
lines(pol)
# rotate and shift the spatial polygon
new_pol <- affineCoords(pol, angle = -3, xy_shift = c(-11, 0))
plot(im[[3]], col = gray.colors(20), asp = 0)
lines(new_pol)
# do some analysis within it, like:
new_pols <- SpatialPolygons(list(Polygons(list(Polygon(new_pol)), "id0")))
plot(mask(im[[3]], new_pols))
mean(extract(im[[3]], new_pols)[[1]])
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.