Home > database >  Calculate area of SpatialPoints object r
Calculate area of SpatialPoints object r

Time:12-17

I am having trouble calculating the area that my SpatialPoints object spans. I need the area in m^2. The code for my object is below. I can't seem to find the answer online. Any help would be appreciated, thanks in advance!

new("SpatialPoints", coords = structure(c(365901.718425453, 365840.735248348, 
365658.787059115, 365358.861441992, 364945.883167318, 364426.633326947, 
363809.637988903, 363105.028199579, 362324.373632234, 361480.492613283, 
360587.241645727, 359659.287885757, 358711.868308457, 357760.539517095, 
356820.922304122, 355908.4451582, 355038.090928836, 354224.150808417, 
353479.989671215, 352817.82662253, 352248.534361316, 351781.460650762, 
351424.274828283, 351182.841875208, 351061.126113954, 351061.126113954, 
351182.841875208, 351424.274828283, 351781.460650762, 352248.534361316, 
352817.82662253, 353479.989671215, 354224.150808417, 355038.090928836, 
355908.4451582, 356820.922304122, 357760.539517094, 358711.868308457, 
359659.287885757, 360587.241645727, 361480.492613283, 362324.373632234, 
363105.028199579, 363809.637988903, 364426.633326947, 364945.883167318, 
365358.861441992, 365658.787059115, 365840.735248348, 365901.718425453, 
365901.718425453, 471406.967507941, 470123.485439601, 468861.07811134, 
467640.474216585, 466481.716037545, 465403.830351483, 464424.516011563, 
463559.853332175, 462824.040050607, 462229.1582006, 461784.975725686, 
461498.786089822, 461375.288518918, 461416.510839672, 461621.776182718, 
461987.714096798, 462508.31589148, 463175.033299687, 463976.91884001, 
464900.805574046, 465931.523307164, 467052.147682681, 468244.278079334, 
469488.339748967, 470763.90523336, 472050.029782522, 473325.595266915, 
474569.656936548, 475761.787333201, 476882.411708718, 477913.129441836, 
478837.016175871, 479638.901716194, 480305.619124402, 480826.220919084, 
481192.158833164, 481397.42417621, 481438.646496964, 481315.14892606, 
481028.959290196, 480584.776815282, 479989.894965275, 479254.081683707, 
478389.419004318, 477410.104664399, 476332.218978337, 475173.460799296, 
473952.856904542, 472690.449576281, 471406.967507941, 471406.967507941
), .Dim = c(51L, 2L), .Dimnames = list(NULL, c("X_rotated", "Y_rotated"
))), bbox = structure(c(351061.126113954, 461375.288518918, 365901.718425453, 
481438.646496964), .Dim = c(2L, 2L), .Dimnames = list(c("X_rotated", 
"Y_rotated"), c("min", "max"))), proj4string = new("CRS", projargs = " proj=sterea  lat_0=52.1561605555556  lon_0=5.38763888888889  k=0.9999079  x_0=155000  y_0=463000  ellps=bessel  units=m  no_defs"))

CodePudding user response:

You can use the sf package to accomplish the desired output. First you'll need to convert your points data into sf, then calculate its bounding box and create a polygon from that box. Finally, you just need to calculate its area with st_area.

library(sf)

# First convert to sf
st_as_sf(df) |>
  # Get bounding box of points
  st_bbox(df) |>
  # Create bbox polygon from bbox
  st_as_sfc() |>
  # Calculate area
  st_area()

# 297752116 [m^2]
  • Related