| st_dbscan | R Documentation |
Perform ST-DBSCAN clustering on points with spatial and temporal coordinates. This algorithm identifies clusters of points that are close both in space and time.
st_dbscan(data, eps_spatial, eps_temporal, min_pts, ...)
data |
matrix. A matrix containing, in that order, |
eps_spatial |
Numeric. The spatial radius threshold. Points closer than this in space may belong to the same cluster. |
eps_temporal |
Numeric. The temporal threshold. Points closer than this in time may belong to the same cluster. |
min_pts |
Integer. Minimum number of points required to form a core point. |
... |
Additional arguments are passed on to |
ST-DBSCAN extends classical DBSCAN by incorporating a temporal constraint.
Two points are considered neighbors if they are within eps_spatial in
space and within eps_temporal in time. Clusters are expanded from core
points recursively following the DBSCAN algorithm.
ST-DBSCAN is implemented using the following approach:
Find the spatial neighbors using Fixed Radius Nearest Neighbors
(dbscan::frNN())
Filter the spatial neighbors by the temporal constraint
Apply DBSCAN on the filtered neighbors using dbscan::dbscan()
st_dbscan() returns an object of class stdbscan with the following
components:
cluster |
Integer vector with cluster assignments. Zero indicates noise points. |
eps |
Value of the |
minPts |
Value of the |
metric |
Used distance metric. |
borderPoints |
Whether border points are considered as noise ( |
eps_temporal |
Value of the |
This class is a simple extension of the dbscan class. For more details,
see dbscan documentation.
Birant, D., & Kut, A. (2007). ST-DBSCAN: An algorithm for clustering spatial–temporal data. Data & Knowledge Engineering, 60(1), 208–221. https://doi.org/10.1016/j.datak.2006.01.013
data(geolife_traj)
geolife_traj$date_time <- as.POSIXct(
paste(geolife_traj$date, geolife_traj$time),
format = "%Y-%m-%d %H:%M:%S",
tz = "GMT"
)
geolife_traj$t <- as.numeric(
geolife_traj$date_time - min(geolife_traj$date_time)
)
data <- cbind(geolife_traj$x, geolife_traj$y, geolife_traj$t)
st_dbscan(
data = data,
eps_spatial = 3,
eps_temporal = 30,
min_pts = 3,
# Extra arguments
splitRule = "STD",
search = "kdtree",
approx = 1
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.