News | Installation | Usage | Contributing
spatsoc
is an R package for detecting spatial and temporal groups in
GPS relocations. It can be used to convert GPS relocations to
gambit-of-the-group format to build proximity-based social networks with
grouping and edge-list generating functions. In addition, the
randomizations
function provides data-stream randomization methods
suitable for GPS data and the get_gbi
function generates group by
individual matrices useful for building networks with
asnipe::get_network
.
See below for installation and basic usage.
For more details, see the blog post and vignettes:
- Introduction to spatsoc
- Frequently asked questions
- Using spatsoc in social network analysis
- Using edge list and dyad id functions
New edge-list generating functions added:
edge_nn
edge_dist
and dyad id function:
dyad_id
(feedback welcome as always!)
Both documented further in a new vignette: Using edge list and dyad id functions.
Also, our article describing spatsoc
was just published at Methods in
Ecology and Evolution. Link
here and thanks to reviewers
and editors at
rOpenSci and
at MEE.
More detailed news here.
Install the latest version with remotes
.
remotes::install_github('ropensci/spatsoc')
# or CRAN
install.packages('spatsoc')
spatsoc
depends on rgeos
and requires
GEOS installed on the system.
- Debian/Ubuntu:
apt-get install libgeos-dev
- Arch:
pacman -S geos
- Fedora:
dnf install geos geos-devel
- Mac:
brew install geos
- Windows: see here
spatsoc
expects a data.table
for all of its functions. If you have a
data.frame
, you can use data.table::setDT()
to convert it by
reference. If your data is a text file (e.g.: CSV), you can use
data.table::fread()
to import it as a data.table
.
library(spatsoc)
library(data.table)
DT <- fread(system.file("extdata", "DT.csv", package = "spatsoc"))
DT[, datetime := as.POSIXct(datetime, tz = 'UTC')]
group_times
groups rows temporally using a threshold defined in units
of minutes (B), hours (C) or days (D).
group_pts
groups points spatially using a distance matrix (B) and a
spatial threshold defined by the user (50m in this case). Combined with
group_times
, the returned ‘group’ column represents spatiotemporal,
point based groups (D).
group_lines
groups sequences of points (forming a line) spatially by
buffering each line (A) by the user defined spatial threshold. Combined
with group_times
, the returned ‘group’ column represents
spatiotemporal, line overlap based groups (B).
group_polys
groups home ranges by spatial and proportional overlap.
Combined with group_times
, the returned ‘group’ column represents
spatiotemporal, polygon overlap based groups.
edge_dist
and edge_nn
generate edge-lists. edge_dist
measures the
spatial distance between individuals (A) and returns all pairs within
the user specified distance threshold (B). edge_nn
measures the
distance between individuals (C) and returns the nearest neighbour to
each individual (D).
randomizations
for data-stream randomization and get_gbi
for
generating group by individual matrices.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
Development of spatsoc
welcomes contribution of feature requests, bug
reports and suggested improvements through the issue
board.
See details in CONTRIBUTING.md.