nngeo (version 0.2.8)

st_ellipse: Calculate ellipse polygon

Description

The function calculates ellipse polygons, given centroid locations and sizing on the x and y axes.

Usage

st_ellipse(pnt, ex, ey, res = 30)

Arguments

pnt

Object of class sf or sfc (type "POINT") representing centroid locations

ex

Size along x-axis, in CRS units

ey

Size along y-axis, in CRS units

res

Number of points the ellipse polygon consists of (default 30)

Value

Object of class sfc (type "POLYGON") containing ellipse polygons

References

Based on StackOverflow answer by user 'fdetsch' -

https://stackoverflow.com/questions/35841685/add-an-ellipse-on-raster-plot-in-r

Examples

Run this code
# NOT RUN {
# Sample data
dat = data.frame(
  x = c(1, 1, -1, 3, 3),
  y = c(0, -3, 2, -2, 0),
  ex = c(0.5, 2, 2, 0.3, 0.6),
  ey = c(0.5, 0.2, 1, 1, 0.3),
  stringsAsFactors = FALSE
)
dat = st_as_sf(dat, coords = c("x", "y"))
dat

# Plot 1
plot(dat %>% st_geometry, graticule = TRUE, axes = TRUE, main = "Input")
text(dat %>% st_coordinates, as.character(1:nrow(dat)), pos = 2)

# Calculate ellipses
el = st_ellipse(pnt = dat, ex = dat$ex, ey = dat$ey)

# Plot 2
plot(el, graticule = TRUE, axes = TRUE, main = "Output")
plot(dat %>% st_geometry, pch = 3, add = TRUE)
text(dat %>% st_coordinates, as.character(1:nrow(dat)), pos = 2)
# }

Run the code above in your browser using DataLab