nngeo (version 0.4.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)

Value

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

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)

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
# 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(st_geometry(dat), graticule = TRUE, axes = TRUE, main = "Input")
text(st_coordinates(dat), 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(st_geometry(dat), pch = 3, add = TRUE)
text(st_coordinates(dat), as.character(1:nrow(dat)), pos = 2)

Run the code above in your browser using DataLab