Main parameters
The border
The border is a polygon used to limit the processed area. Only data points within the border are processed.
If NULL
the Convex Hull polygon of the input dataset will be used (computed with gConvexHull function of the rgeos R package).
$border <- NULL zoning
An object of class SpatialPolygons can be used as border:
data(conductivity_border)
$border <- conductivity_border zoning
Show the Voronoi diagram
$perform_voronoi()
zoning<- zoning$voronoi_map()
vm par(mar = c(0, 0, 0, 0))
plot(vm)
plot(zoning$zonable_data(), add = TRUE)
The neighborhood
The neighborhood relation can be filtered by a minimal common edge length.
If NULL
all contiguous Voronoi polygons are considered as neighbors:
$neighborhood <- NULL zoning
The user can define the minimum edge length (in the same unit as the input dataset coordinate system) shared by two Voronoi polygons for being considered as neighbors:
$neighborhood <- 5 zoning
Show the neighborhood relations
The red lines shows the pairs of Voronoi polygons that are no longer considered as neighbors.
$perform_neighborhood()
zoning<- zoning$neighborhood_map()
nm par(mar = c(0, 0, 0, 0))
plot(vm)
plot(subset(nm, filtered == FALSE), add = TRUE, col = "green")
plot(subset(nm, filtered == TRUE), add = TRUE, col = "red")
Attribute distance
This distance function is used for a given attribute. It computes the distance between two data points in the monodimensional attribute space. As many distance functions as there are attributes in the zonable dataset are needed (in a list if multiple attributes).
Two univariate distances are available: EuclideanDistance
(the default) or FuzzyDistance
. Or NULL
if the attribute should not be used in the zoning process.
The fuzzy distance function is based on a fuzzy partition that allows for integrating expert knowledge into distance calculations (Guillaume, Charnomordic, and Loisel 2013; Guillaume and Charnomordic 2013). The partition must be a standardized fuzzy partition based on a FisIn
object of the FisPro R package.
The following command-line sets the fuzzy distance based on 3 Mfs-partition defined by the following breakpoints: 20, 30, 100. The range of the conduct
attribute is [12, 116]:
$attribute_distance <- FuzzyDistance(NewFisIn(c(20, 30, 100), 12, 116)) zoning
The default value, used in this example, is the euclidean distance:
$attribute_distance <- EuclideanDistance() zoning
Zone distance aggregation
To compute the distance between two zones, all the data points included in the two zones are considered and the aggregation is done using the aggreg parameter:
\[ d(z_i,z_j) = (Aggreg) d(x,y), \forall x \in z_i, y \in z_j\] Three aggreg operators are available: MinimumDistance
, MaximumDistance
(the default) or MeanDistance
.
The two zones to be merged at a given iteration are the ones for which the zone distance is minimum.
$zone_distance <- MaximumDistance() zoning
Combine distance
The combination function distance is needed when the zoning is done according to several attributes. In this case, each univariate or elementary distance is computed and normalized in a unit interval. These partial distances are then aggregated to yield the distance between two data points in the multidimensional attribute space. The distance combination is done before computing the between-zones distance.
Two combinations are proposed: EuclideanDistance
(the default) or MinkowskiDistance
.
$combine_distance <- EuclideanDistance() zoning
Smallest zone
This criterion is used to determine the smallest size for a zone (number of points or area) to be kept in the final map. The zones with a size less than the threshold are included in the most compatible neighboring zone.
The two available parameters are: ZoneSize
or ZoneArea
.
The default value is ZoneSize
with 1 point.
$smallest_zone <- ZoneSize(1) zoning