This function calculates boundary length data for
PBSmapping::PolySet()
, sp::SpatialPolygons()
, and
sp::SpatialPolygonsDataFrame()
objects. Be aware that this
function is designed with performance in mind, and as a consequence, if this
function is used improperly then it may crash R. Furthermore, multipart
polygons with touching edges will likely result in inaccuracies.
If argument set to sp::SpatialPolygons()
or
sp::SpatialPolygonsDataFrame()
, this will be converted to
PolySet before processing.
calcBoundaryData(x, tol, length.factor, edge.factor) # S3 method for PolySet calcBoundaryData(x, tol = 0.001, length.factor = 1, edge.factor = 1) # S3 method for SpatialPolygons calcBoundaryData(x, tol = 0.001, length.factor = 1, edge.factor = 1)
x 


tol 

length.factor 

edge.factor 

data.frame
with 'id1' (integer
), 'id2'
(integer
), and 'amount' (numeric
) columns.
This function is based on the algorithm in QMARXAN https://github.com/tswapropos/qmarxan for calculating boundary length.
# simulate planning units sim_pus < sim.pus(225L) # calculate boundary data bound.dat < calcBoundaryData(sim_pus) # print summary of boundary data summary(bound.dat)#> id1 id2 boundary #> Min. : 1.00 Min. : 1.00 Min. :1.000 #> 1st Qu.: 59.75 1st Qu.: 51.75 1st Qu.:1.000 #> Median :117.00 Median :109.00 Median :1.000 #> Mean :116.53 Mean :109.47 Mean :1.008 #> 3rd Qu.:174.25 3rd Qu.:166.25 3rd Qu.:1.000 #> Max. :225.00 Max. :225.00 Max. :2.000