From 028b7735e13a2d9bc794e7cd36e89c007d7b04b7 Mon Sep 17 00:00:00 2001
From: Simon Garnier 2.2 - Building a track
## Geographic: FALSE
## Table class: data frame ('data.frame')
## id t x y
-## 1 1 2023-01-16 16:32:43 629.3839 882.4783
-## 2 2 2023-01-16 16:32:43 1056.1692 656.5207
-## 3 3 2023-01-16 16:32:43 508.0092 375.2451
-## 4 4 2023-01-16 16:32:43 1277.6466 373.7491
-## 5 5 2023-01-16 16:32:43 1379.2844 343.0853
-## 6 6 2023-01-16 16:32:43 1137.1378 174.5110
-## 7 7 2023-01-16 16:32:43 737.1931 115.9394
-## 8 8 2023-01-16 16:32:43 921.8634 103.3508
-## 9 1 2023-01-16 16:32:44 629.4024 882.4129
-## 10 2 2023-01-16 16:32:44 1056.1704 656.4691
+## 1 1 2023-01-16 19:02:59 629.3839 882.4783
+## 2 2 2023-01-16 19:02:59 1056.1692 656.5207
+## 3 3 2023-01-16 19:02:59 508.0092 375.2451
+## 4 4 2023-01-16 19:02:59 1277.6466 373.7491
+## 5 5 2023-01-16 19:02:59 1379.2844 343.0853
+## 6 6 2023-01-16 19:02:59 1137.1378 174.5110
+## 7 7 2023-01-16 19:02:59 737.1931 115.9394
+## 8 8 2023-01-16 19:02:59 921.8634 103.3508
+## 9 1 2023-01-16 19:03:00 629.4024 882.4129
+## 10 2 2023-01-16 19:03:00 1056.1704 656.4691
## [ reached 'max' / getOption("max.print") -- omitted 21972 rows ]
track
outputs a few warnings, all related to the time
component that we provided it. Indeed, we provided it with frame numbers
diff --git a/docs/articles/z3_manipulate.html b/docs/articles/z3_manipulate.html
index 4fed22d..6782273 100644
--- a/docs/articles/z3_manipulate.html
+++ b/docs/articles/z3_manipulate.html
@@ -423,7 +423,7 @@ 3.6 - Plottinghttps://ggplot2.tidyverse.org/}:
Here is an example using ggplot2
:
library(ggplot2)
diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml
index 48c218b..d898a7f 100644
--- a/docs/pkgdown.yml
+++ b/docs/pkgdown.yml
@@ -5,7 +5,7 @@ articles:
z1_install: z1_install.html
z2_build: z2_build.html
z3_manipulate: z3_manipulate.html
-last_built: 2023-01-16T16:32Z
+last_built: 2023-01-16T19:02Z
urls:
reference: https://swarm-lab.github.io/trackdf/reference
article: https://swarm-lab.github.io/trackdf/articles
diff --git a/docs/search.json b/docs/search.json
index 2ccf633..faa2be6 100644
--- a/docs/search.json
+++ b/docs/search.json
@@ -1 +1 @@
-[{"path":"https://swarm-lab.github.io/trackdf/articles/z1_install.html","id":"from-cran","dir":"Articles","previous_headings":"","what":"1.1 - From CRAN","title":"1 - Installing trackdf","text":"trackdf available directly CRAN can installed follows:","code":"install.packages(\"trackdf\")"},{"path":"https://swarm-lab.github.io/trackdf/articles/z1_install.html","id":"development-version","dir":"Articles","previous_headings":"","what":"1.2 - Development version","title":"1 - Installing trackdf","text":"’re looking install latest development version trackdf (newest features also potentially breaking changes), can follows:","code":"if (requireNamespace(\"remotes\", quietly = TRUE)) { remotes::install_github(\"swarm-lab/trackdf\") }"},{"path":"https://swarm-lab.github.io/trackdf/articles/z2_build.html","id":"anatomy-of-a-track-table","dir":"Articles","previous_headings":"","what":"2.1 - Anatomy of a track table","title":"2 - Building a track table","text":"core, track table just wrapper around data frame structure, defined one three main data frame classes R: base::data.frame, tibble::tibble, data.table::data.table. choice data frame class used underneath track table entirely choice depends preference one framework. trackdf remember choice best maintain throughout data analysis pipeline. track table specialized version data frame structure aimed storing specifically tracking data, positions time, one individuals. order , trackdf imposes constraints construction track table traditional data frame. First, track table must least 4 following named columns: id: contains identity individual tracked character strings; t: contains time observation date-time POSIXct objects; x y: contains positions numeric values observations along axes Euclidean space (e.g., GPS coordinates pixel coordinates outputted video-tracking software); z: optional column similar x y can used case 3-dimensional trajectories. can add many columns want store data relevant work 4 columns (+ optional z columns) required track table object. addition columns, track table contains two additional attributes necessary certain functions package: proj: contains information coordinate reference system coordinates projected. mostly useful geographic data captured GPS units, instance. trackdf can use information automatically reproject data coordinate reference systems, instance working GIS data. video-tracking data tracking systems output geographic data, can set NA. type: contains information class data frame stored track table object. mostly required maintaining data frame class track table object manipulated using dplyr’s functions. ’s mostly irrelevant user’s point view. Sounds complicated? Don’t worry, trackdf provides function build track tables just little bit input . See rest vignette .","code":""},{"path":"https://swarm-lab.github.io/trackdf/articles/z2_build.html","id":"building-a-track-table-from-video-tracking-data","dir":"Articles","previous_headings":"","what":"2.2 - Building a track table from video-tracking data","title":"2 - Building a track table","text":"video-tracking software generate outputs information identity tracked individual, position form Euclidean space (using pixel coordinates coordinates relative dimensions experimental setup), time observation (e.g., frame number video). can also contain forms information relevant work also see import track table. First, let’s load data generated using trackR video-tracking software: data frame contains 8 columns. positions stored x y columns pixel coordinates. Time store frame column frame number video data collected . identity tracked individual stored track_fixed (track column contains identities manual inspection correction; id can ignored purpose tutorial). raw data, can create track table using track function follows: track outputs warnings, related time component provided . Indeed, provided frame numbers track doesn’t know convert date-time POSIXct objects , therefore, defaulted using now start experiment, UTC time zone, 1 second time two consecutive observations. can, however, help track provided missing information origin (start experiment), tz (time zone), period (time two successive observations) parameter function: like include track table additional data contained raw data, simple adding extra columns creating data frames. instance, let’s include ignore data raw data set: Finally, track default using base::data.frame data frame class storing data. prefer work tibble::tibble data.table::data.table, can specify track function follows. tibble::tibble: data.table::data.table:","code":"raw <- read.csv(system.file(\"extdata/video/01.csv\", package = \"trackdf\")) print(raw, max = 10 * ncol(raw)) ## id x y size frame track ignore track_fixed ## 1 1 629.3839 882.4783 1154 1 1 FALSE 1 ## 2 2 1056.1692 656.5207 1064 1 2 FALSE 2 ## 3 3 508.0092 375.2451 1624 1 3 FALSE 3 ## 4 4 1277.6466 373.7491 1443 1 4 FALSE 4 ## 5 5 1379.2844 343.0853 1431 1 5 FALSE 5 ## 6 6 1137.1378 174.5110 1321 1 6 FALSE 6 ## 7 7 737.1931 115.9394 1419 1 7 FALSE 7 ## 8 8 921.8634 103.3508 1237 1 8 FALSE 8 ## 9 1 629.4024 882.4129 1148 2 1 FALSE 1 ## 10 2 1056.1704 656.4691 1068 2 2 FALSE 2 ## [ reached 'max' / getOption(\"max.print\") -- omitted 21972 rows ] library(trackdf) ## ## Attaching package: 'trackdf' ## The following object is masked from 'package:stats': ## ## filter tt <- track(x = raw$x, y = raw$y, t = raw$frame, id = raw$track_fixed) ## No timezone provided. Defaulting to UTC. ## No origin provided. Defaulting to Sys.time(). ## No period provided. Defaulting to 1 second. print(tt, max = 10 * ncol(tt)) ## Track table [21982 observations] ## Number of tracks: 81 ## Dimensions: 2D ## Geographic: FALSE ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2023-01-16 16:32:43 629.3839 882.4783 ## 2 2 2023-01-16 16:32:43 1056.1692 656.5207 ## 3 3 2023-01-16 16:32:43 508.0092 375.2451 ## 4 4 2023-01-16 16:32:43 1277.6466 373.7491 ## 5 5 2023-01-16 16:32:43 1379.2844 343.0853 ## 6 6 2023-01-16 16:32:43 1137.1378 174.5110 ## 7 7 2023-01-16 16:32:43 737.1931 115.9394 ## 8 8 2023-01-16 16:32:43 921.8634 103.3508 ## 9 1 2023-01-16 16:32:44 629.4024 882.4129 ## 10 2 2023-01-16 16:32:44 1056.1704 656.4691 ## [ reached 'max' / getOption(\"max.print\") -- omitted 21972 rows ] tt <- track(x = raw$x, y = raw$y, t = raw$frame, id = raw$track_fixed, origin = \"2019-03-24 12:55:23\", period = \"0.04S\", # 1/25 of a second tz = \"America/New_York\") print(tt, max = 10 * ncol(tt)) ## Track table [21982 observations] ## Number of tracks: 81 ## Dimensions: 2D ## Geographic: FALSE ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2019-03-24 12:55:23 629.3839 882.4783 ## 2 2 2019-03-24 12:55:23 1056.1692 656.5207 ## 3 3 2019-03-24 12:55:23 508.0092 375.2451 ## 4 4 2019-03-24 12:55:23 1277.6466 373.7491 ## 5 5 2019-03-24 12:55:23 1379.2844 343.0853 ## 6 6 2019-03-24 12:55:23 1137.1378 174.5110 ## 7 7 2019-03-24 12:55:23 737.1931 115.9394 ## 8 8 2019-03-24 12:55:23 921.8634 103.3508 ## 9 1 2019-03-24 12:55:23 629.4024 882.4129 ## 10 2 2019-03-24 12:55:23 1056.1704 656.4691 ## [ reached 'max' / getOption(\"max.print\") -- omitted 21972 rows ] tt <- track(x = raw$x, y = raw$y, t = raw$frame, id = raw$track_fixed, ignore = raw$ignore, origin = \"2019-03-24 12:55:23\", period = \"0.04S\", # 1/25 of a second tz = \"America/New_York\") print(tt, max = 10 * ncol(tt)) ## Track table [21982 observations] ## Number of tracks: 81 ## Dimensions: 2D ## Geographic: FALSE ## Table class: data frame ('data.frame') ## id t x y ignore ## 1 1 2019-03-24 12:55:23 629.3839 882.4783 FALSE ## 2 2 2019-03-24 12:55:23 1056.1692 656.5207 FALSE ## 3 3 2019-03-24 12:55:23 508.0092 375.2451 FALSE ## 4 4 2019-03-24 12:55:23 1277.6466 373.7491 FALSE ## 5 5 2019-03-24 12:55:23 1379.2844 343.0853 FALSE ## 6 6 2019-03-24 12:55:23 1137.1378 174.5110 FALSE ## 7 7 2019-03-24 12:55:23 737.1931 115.9394 FALSE ## 8 8 2019-03-24 12:55:23 921.8634 103.3508 FALSE ## 9 1 2019-03-24 12:55:23 629.4024 882.4129 FALSE ## 10 2 2019-03-24 12:55:23 1056.1704 656.4691 FALSE ## [ reached 'max' / getOption(\"max.print\") -- omitted 21972 rows ] tt <- track(x = raw$x, y = raw$y, t = raw$frame, id = raw$track_fixed, ignore = raw$ignore, origin = \"2019-03-24 12:55:23\", period = \"0.04S\", # 1/25 of a second tz = \"America/New_York\", table = \"tbl\") print(tt) ## Track table [21982 observations] ## Number of tracks: 81 ## Dimensions: 2D ## Geographic: FALSE ## Table class: tibble ('tbl_df') ## # A tibble: 21,982 × 5 ## id t x y ignore ## ## 1 1 2019-03-24 12:55:23 629. 882. FALSE ## 2 2 2019-03-24 12:55:23 1056. 657. FALSE ## 3 3 2019-03-24 12:55:23 508. 375. FALSE ## 4 4 2019-03-24 12:55:23 1278. 374. FALSE ## 5 5 2019-03-24 12:55:23 1379. 343. FALSE ## 6 6 2019-03-24 12:55:23 1137. 175. FALSE ## 7 7 2019-03-24 12:55:23 737. 116. FALSE ## 8 8 2019-03-24 12:55:23 922. 103. FALSE ## 9 1 2019-03-24 12:55:23 629. 882. FALSE ## 10 2 2019-03-24 12:55:23 1056. 656. FALSE ## # … with 21,972 more rows tt <- track(x = raw$x, y = raw$y, t = raw$frame, id = raw$track_fixed, ignore = raw$ignore, origin = \"2019-03-24 12:55:23\", period = \"0.04S\", # 1/25 of a second tz = \"America/New_York\", table = \"dt\") print(tt) ## Track table [21982 observations] ## Number of tracks: 81 ## Dimensions: 2D ## Geographic: FALSE ## Table class: data table ('data.table') ## id t x y ignore ## 1: 1 2019-03-24 12:55:23 629.3839 882.4783 FALSE ## 2: 2 2019-03-24 12:55:23 1056.1692 656.5207 FALSE ## 3: 3 2019-03-24 12:55:23 508.0092 375.2451 FALSE ## 4: 4 2019-03-24 12:55:23 1277.6466 373.7491 FALSE ## 5: 5 2019-03-24 12:55:23 1379.2844 343.0853 FALSE ## --- ## 21978: 82 2019-03-24 12:57:15 580.7614 587.2513 FALSE ## 21979: 34 2019-03-24 12:57:15 493.5477 529.5454 FALSE ## 21980: 47 2019-03-24 12:57:15 498.8001 432.5990 FALSE ## 21981: 58 2019-03-24 12:57:15 562.6123 266.9754 FALSE ## 21982: 67 2019-03-24 12:57:15 1046.3904 146.4723 FALSE"},{"path":"https://swarm-lab.github.io/trackdf/articles/z2_build.html","id":"building-a-track-table-from-gps-data","dir":"Articles","previous_headings":"","what":"2.3 - Building a track table from GPS data","title":"2 - Building a track table","text":"Building track table geographic data follows similar principles, except track also expect receive information coordinate reference system data using. can pass information track using proj parameter function. first, let’s load data generated GPS collar worn goat Namibia: track uses sf::st_crs interpret information coordinate reference systems. Therefore, format accepted sf::st_crs specify coordinate reference system can used track. data generated using GPS units, character string “+proj=longlat” often ’s needed. can create GPS-based track table follows: Note raw data already contains dates times observations, can simply combine paste pass result track interpret automatically. Everything else works similarly shown previous section video-tracking data. tutorial manipulating data stored track table provided separate vignette.","code":"raw <- read.csv(system.file(\"extdata/gps/02.csv\", package = \"trackdf\")) print(raw, max = 10 * ncol(raw)) ## date time lon lat ## 1 2015-09-10 07:00:00 15.76459 -22.37971 ## 2 2015-09-10 07:00:01 15.76459 -22.37971 ## 3 2015-09-10 07:00:02 15.76459 -22.37971 ## 4 2015-09-10 07:00:03 15.76459 -22.37971 ## 5 2015-09-10 07:00:04 15.76459 -22.37971 ## 6 2015-09-10 07:00:05 15.76459 -22.37971 ## 7 2015-09-10 07:00:06 15.76459 -22.37971 ## 8 2015-09-10 07:00:07 15.76459 -22.37971 ## 9 2015-09-10 07:00:08 15.76459 -22.37971 ## 10 2015-09-10 07:00:09 15.76459 -22.37971 ## [ reached 'max' / getOption(\"max.print\") -- omitted 3590 rows ] tt <- track(x = raw$lon, y = raw$lat, t = paste(raw$date, raw$time), id = 1, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\") print(tt, max = 10 * ncol(tt)) ## Track table [3600 observations] ## Number of tracks: 1 ## Dimensions: 2D ## Geographic: TRUE ## Projection: +proj=longlat ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2015-09-10 07:00:00 15.76459 -22.37971 ## 2 1 2015-09-10 07:00:01 15.76459 -22.37971 ## 3 1 2015-09-10 07:00:02 15.76459 -22.37971 ## 4 1 2015-09-10 07:00:03 15.76459 -22.37971 ## 5 1 2015-09-10 07:00:04 15.76459 -22.37971 ## 6 1 2015-09-10 07:00:05 15.76459 -22.37971 ## 7 1 2015-09-10 07:00:06 15.76459 -22.37971 ## 8 1 2015-09-10 07:00:07 15.76459 -22.37971 ## 9 1 2015-09-10 07:00:08 15.76459 -22.37971 ## 10 1 2015-09-10 07:00:09 15.76459 -22.37971 ## [ reached 'max' / getOption(\"max.print\") -- omitted 3590 rows ]"},{"path":"https://swarm-lab.github.io/trackdf/articles/z3_manipulate.html","id":"basic-information-about-the-track-table","dir":"Articles","previous_headings":"","what":"3.1 - Basic information about the track table","title":"3 - Manipulating a track table","text":"addition usual information can ask data frame (e.g., number rows columns, class column, etc), can access additional information content track table. First, can check whether object indeed track table follows: can also check whether track table contains geographic coordinates follows: can find number different tracks included track table follows: Finally, can retrieve dimensionality (2D 3D) track table follows:","code":"is_track(tracks) ## [1] TRUE is_geo(tracks) ## [1] TRUE n_tracks(tracks) ## [1] 2 n_dims(tracks) ## [1] 2"},{"path":"https://swarm-lab.github.io/trackdf/articles/z3_manipulate.html","id":"accessing-data","dir":"Articles","previous_headings":"","what":"3.2 - Accessing data","title":"3 - Manipulating a track table","text":"Accessing modifying different parts (rows, columns, elements) track table similar accessing modifying different parts underlying data frame. , therefore, discuss topic something already familar . Note, however, different data frame classes may thing slightly differently . Make sure know class used track tables working . instance, track table loaded tutorial class data.frame, indicated 6th line print track table:","code":"print(tracks, max = 10 * ncol(tracks)) ## Track table [7195 observations] ## Number of tracks: 2 ## Dimensions: 2D ## Geographic: TRUE ## Projection: +proj=longlat ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2015-09-10 07:00:00 15.76468 -22.37957 ## 2 1 2015-09-10 07:00:01 15.76468 -22.37957 ## 3 1 2015-09-10 07:00:04 15.76468 -22.37958 ## 4 1 2015-09-10 07:00:05 15.76468 -22.37958 ## 5 1 2015-09-10 07:00:08 15.76467 -22.37959 ## 6 1 2015-09-10 07:00:09 15.76467 -22.37959 ## 7 1 2015-09-10 07:00:09 15.76467 -22.37959 ## 8 1 2015-09-10 07:00:10 15.76467 -22.37959 ## 9 1 2015-09-10 07:00:11 15.76467 -22.37959 ## 10 1 2015-09-10 07:00:12 15.76467 -22.37959 ## [ reached 'max' / getOption(\"max.print\") -- omitted 7185 rows ]"},{"path":"https://swarm-lab.github.io/trackdf/articles/z3_manipulate.html","id":"accessing-the-projection-information-of-a-track-table","dir":"Articles","previous_headings":"","what":"3.3 - Accessing the projection information of a track table","title":"3 - Manipulating a track table","text":"One particularity track tables regular data frames can store geographic data explicitly perform projection operations change coordinate reference system necessary. order access coordinate reference system (projection) track table containing geographic data, simply need execute following command: returns object class crs list consisting input object (usually character string entered track proj parameter), wkt object automatically generated WKT 2 representation coordinate reference system. can modify place projection track table follows. automatically convert x y coordinates contained track table appropriate projection system: back original projection: prefer modify original object, can create new one new projection using theproject function follows:","code":"projection(tracks) ## Coordinate Reference System: ## User input: +proj=longlat ## wkt: ## GEOGCRS[\"unknown\", ## DATUM[\"World Geodetic System 1984\", ## ELLIPSOID[\"WGS 84\",6378137,298.257223563, ## LENGTHUNIT[\"metre\",1]], ## ID[\"EPSG\",6326]], ## PRIMEM[\"Greenwich\",0, ## ANGLEUNIT[\"degree\",0.0174532925199433], ## ID[\"EPSG\",8901]], ## CS[ellipsoidal,2], ## AXIS[\"longitude\",east, ## ORDER[1], ## ANGLEUNIT[\"degree\",0.0174532925199433, ## ID[\"EPSG\",9122]]], ## AXIS[\"latitude\",north, ## ORDER[2], ## ANGLEUNIT[\"degree\",0.0174532925199433, ## ID[\"EPSG\",9122]]]] projection(tracks) <- \"+proj=somerc +lat_0=46.9524056 +lon_0=7.43958333 +ellps=bessel +x_0=2600000 +y_0=1200000 +towgs84=674.374,15.056,405.346 +units=m +k_0=1 +no_defs\" print(tracks, max = 10 * ncol(tracks)) ## Track table [7195 observations] ## Number of tracks: 2 ## Dimensions: 2D ## Geographic: TRUE ## Projection: +proj=somerc +lat_0=46.9524056 +lon_0=7.43958333 +ellps=bessel +x_0=2600000 +y_0=1200000 +towgs84=674.374,15.056,405.346 +units=m +k_0=1 +no_defs ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2015-09-10 07:00:00 4927487 -9217299 ## 2 1 2015-09-10 07:00:01 4927487 -9217299 ## 3 1 2015-09-10 07:00:04 4927487 -9217301 ## 4 1 2015-09-10 07:00:05 4927487 -9217302 ## 5 1 2015-09-10 07:00:08 4927486 -9217304 ## 6 1 2015-09-10 07:00:09 4927485 -9217305 ## 7 1 2015-09-10 07:00:09 4927485 -9217305 ## 8 1 2015-09-10 07:00:10 4927485 -9217306 ## 9 1 2015-09-10 07:00:11 4927485 -9217306 ## 10 1 2015-09-10 07:00:12 4927485 -9217306 ## [ reached 'max' / getOption(\"max.print\") -- omitted 7185 rows ] projection(tracks) <- \"+proj=longlat\" print(tracks, max = 10 * ncol(tracks)) ## Track table [7195 observations] ## Number of tracks: 2 ## Dimensions: 2D ## Geographic: TRUE ## Projection: +proj=longlat ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2015-09-10 07:00:00 15.76468 -22.37957 ## 2 1 2015-09-10 07:00:01 15.76468 -22.37957 ## 3 1 2015-09-10 07:00:04 15.76468 -22.37958 ## 4 1 2015-09-10 07:00:05 15.76468 -22.37958 ## 5 1 2015-09-10 07:00:08 15.76467 -22.37959 ## 6 1 2015-09-10 07:00:09 15.76467 -22.37959 ## 7 1 2015-09-10 07:00:09 15.76467 -22.37959 ## 8 1 2015-09-10 07:00:10 15.76466 -22.37959 ## 9 1 2015-09-10 07:00:11 15.76466 -22.37959 ## 10 1 2015-09-10 07:00:12 15.76466 -22.37959 ## [ reached 'max' / getOption(\"max.print\") -- omitted 7185 rows ] tracks_somerc <- project(tracks, \"+proj=somerc +lat_0=46.9524056 +lon_0=7.43958333 +ellps=bessel +x_0=2600000 +y_0=1200000 +towgs84=674.374,15.056,405.346 +units=m +k_0=1 +no_defs\") print(tracks_somerc, max = 10 * ncol(tracks)) ## Track table [7195 observations] ## Number of tracks: 2 ## Dimensions: 2D ## Geographic: TRUE ## Projection: +proj=somerc +lat_0=46.9524056 +lon_0=7.43958333 +ellps=bessel +x_0=2600000 +y_0=1200000 +towgs84=674.374,15.056,405.346 +units=m +k_0=1 +no_defs ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2015-09-10 07:00:00 4927487 -9217299 ## 2 1 2015-09-10 07:00:01 4927487 -9217299 ## 3 1 2015-09-10 07:00:04 4927487 -9217301 ## 4 1 2015-09-10 07:00:05 4927487 -9217302 ## 5 1 2015-09-10 07:00:08 4927486 -9217304 ## 6 1 2015-09-10 07:00:09 4927485 -9217305 ## 7 1 2015-09-10 07:00:09 4927485 -9217305 ## 8 1 2015-09-10 07:00:10 4927485 -9217306 ## 9 1 2015-09-10 07:00:11 4927485 -9217306 ## 10 1 2015-09-10 07:00:12 4927485 -9217306 ## [ reached 'max' / getOption(\"max.print\") -- omitted 7185 rows ]"},{"path":"https://swarm-lab.github.io/trackdf/articles/z3_manipulate.html","id":"combining-track-tables","dir":"Articles","previous_headings":"","what":"3.4 - Combining track tables","title":"3 - Manipulating a track table","text":"Combining track tables requires bit caution. Indeed, traditional methods combine data frames (e.g., base::rbind, data.table::rbindlist, dplyr::bind_rows) successfully bind together multiple track tables check whether track tables compatible . instance, check coordinates using coordinate reference system time stamps time zone. order ensure different track tables can combined without creating problems analysis pipeline, trackdf provides method bind multiple track tables together: bind_tracks. demonstrate bind_tracks works, let’s first create 3 track tables, 2 compatible , 1 . try combine 3 track tables using bind_tracks, error thrown let know compatible : Compare happens one traditional binding methods: , tracks tables combined despite different coordinate reference systems time zones. Using bind_tracks instead ensures happen.","code":"raw1 <- read.csv(system.file(\"extdata/gps/02.csv\", package = \"trackdf\")) raw2 <- read.csv(system.file(\"extdata/gps/03.csv\", package = \"trackdf\")) raw3 <- read.csv(system.file(\"extdata/video/01.csv\", package = \"trackdf\")) track1 <- track(x = raw1$lon, y = raw1$lat, t = paste(raw1$date, raw1$time), id = 1, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\") track2 <- track(x = raw2$lon, y = raw2$lat, t = paste(raw2$date, raw2$time), id = 2, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\") track3 <- track(x = raw3$x, y = raw3$y, t = raw3$frame, id = raw3$track_fixed, origin = \"2019-03-24 12:55:23\", period = \"0.04S\", tz = \"America/New_York\") bounded_tracks <- bind_tracks(track1, track2, track3) ## Error in bind_tracks(track1, track2, track3): All track tables should have the same projection. bounded_tracks <- rbind(track1, track2, track3) print(bounded_tracks, max = 10 * ncol(bounded_tracks)) ## Track table [29182 observations] ## Number of tracks: 81 ## Dimensions: 2D ## Geographic: TRUE ## Projection: +proj=longlat ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2015-09-10 07:00:00 15.76459 -22.37971 ## 2 1 2015-09-10 07:00:01 15.76459 -22.37971 ## 3 1 2015-09-10 07:00:02 15.76459 -22.37971 ## 4 1 2015-09-10 07:00:03 15.76459 -22.37971 ## 5 1 2015-09-10 07:00:04 15.76459 -22.37971 ## 6 1 2015-09-10 07:00:05 15.76459 -22.37971 ## 7 1 2015-09-10 07:00:06 15.76459 -22.37971 ## 8 1 2015-09-10 07:00:07 15.76459 -22.37971 ## 9 1 2015-09-10 07:00:08 15.76459 -22.37971 ## 10 1 2015-09-10 07:00:09 15.76459 -22.37971 ## [ reached 'max' / getOption(\"max.print\") -- omitted 29172 rows ]"},{"path":"https://swarm-lab.github.io/trackdf/articles/z3_manipulate.html","id":"tidyverse","dir":"Articles","previous_headings":"","what":"3.5 - Tidyverse","title":"3 - Manipulating a track table","text":"Track tables compatible () functions “tidyverse”. instance, can use dplyr verbs filter, mutate, group, etc., track table, way tibble::tibble base::data.frame. long result operation applying track table affect fundamental structure (see vignette “Building track table”), output get remain track table specific attributes. instance, filter track table keep observations 2 specific time stamps:","code":"library(dplyr) ## ## Attaching package: 'dplyr' ## The following objects are masked from 'package:stats': ## ## filter, lag ## The following objects are masked from 'package:base': ## ## intersect, setdiff, setequal, union filtered_tracks <- tracks %>% filter(., t >= as.POSIXct(\"2015-09-10 07:01:00\", tz = \"Africa/Windhoek\"), t <= as.POSIXct(\"2015-09-10 07:11:00 CAT\", tz = \"Africa/Windhoek\")) print(filtered_tracks, max = 10 * ncol(filtered_tracks)) ## Track table [1202 observations] ## Number of tracks: 2 ## Dimensions: 2D ## Geographic: TRUE ## Projection: +proj=longlat ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2015-09-10 07:01:00 15.76468 -22.37961 ## 2 1 2015-09-10 07:01:01 15.76469 -22.37960 ## 3 1 2015-09-10 07:01:02 15.76469 -22.37960 ## 4 1 2015-09-10 07:01:03 15.76469 -22.37960 ## 5 1 2015-09-10 07:01:04 15.76470 -22.37960 ## 6 1 2015-09-10 07:01:05 15.76469 -22.37960 ## 7 1 2015-09-10 07:01:06 15.76469 -22.37960 ## 8 1 2015-09-10 07:01:07 15.76469 -22.37959 ## 9 1 2015-09-10 07:01:08 15.76469 -22.37959 ## 10 1 2015-09-10 07:01:09 15.76469 -22.37959 ## [ reached 'max' / getOption(\"max.print\") -- omitted 1192 rows ]"},{"path":"https://swarm-lab.github.io/trackdf/articles/z3_manipulate.html","id":"plotting","dir":"Articles","previous_headings":"","what":"3.6 - Plotting","title":"3 - Manipulating a track table","text":"can use plotting method accepting data frame class represent data track table. example using [ggplot2]{https://ggplot2.tidyverse.org/}:","code":"library(ggplot2) ggplot(data = tracks) + aes(x = x, y = y, color = id) + geom_path() + coord_map()"},{"path":"https://swarm-lab.github.io/trackdf/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Simon Garnier. Author, maintainer.","code":""},{"path":"https://swarm-lab.github.io/trackdf/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Garnier S (2023). trackdf: Data Frame Class Tracking Data. https://swarm-lab.github.io/trackdf/, https://github.com/swarm-lab/trackdf.","code":"@Manual{, title = {trackdf: Data Frame Class for Tracking Data}, author = {Simon Garnier}, year = {2023}, note = {https://swarm-lab.github.io/trackdf/, https://github.com/swarm-lab/trackdf}, }"},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/index.html","id":"description","dir":"","previous_headings":"","what":"Description","title":"Data Frame Class for Tracking Data","text":"trackdf R package aims standardize accelerate processing data describing animal trajectories captured lab (e.g., video tracking) field (e.g., GPS trackers). trackdf provides data frame-like class based popular tibble class compatible base R functions tidyverse (e.g., dplyr, ggplot2). trackdf work progress. Functions yet stable state likely change package gets developed.","code":""},{"path":"https://swarm-lab.github.io/trackdf/index.html","id":"quick-start-guides","dir":"","previous_headings":"","what":"Quick start guides","title":"Data Frame Class for Tracking Data","text":"1 - Installing trackdf 2 - Building track table 3 - Manipulating track table","code":""},{"path":"https://swarm-lab.github.io/trackdf/index.html","id":"faq","dir":"","previous_headings":"","what":"FAQ","title":"Data Frame Class for Tracking Data","text":"can help? trackdf open-source project, meaning can freely modify code implement new functionalities. coding skills, welcome contribute new code code improvement submitting pull requests GitHub repository project : https://github.com/swarm-lab/trackdf. best review integrate quickly. feel like contributing code, can also help submitting bug reports feature requests using issue tracker GitHub repository project : https://github.com/swarm-lab/trackdf/issues. extremely helpful catch correct errors code, guide development trackdf integrating functionalities requested community.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/bind_tracks.html","id":null,"dir":"Reference","previous_headings":"","what":"Bind Multiple Track Tables by Row — bind_tracks","title":"Bind Multiple Track Tables by Row — bind_tracks","text":"bind_tracks uses data.table::rbindlist combine track tables rows, makes sure bind together two tables different projections time zones, projection attribute inherited resulting track table, track tables based different table classes coerced table class.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/bind_tracks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Bind Multiple Track Tables by Row — bind_tracks","text":"","code":"bind_tracks(...)"},{"path":"https://swarm-lab.github.io/trackdf/reference/bind_tracks.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Bind Multiple Track Tables by Row — bind_tracks","text":"... list containing track table objects, names track table objects separated commas. track tables must projection time zone.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/bind_tracks.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Bind Multiple Track Tables by Row — bind_tracks","text":"track table.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/bind_tracks.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Bind Multiple Track Tables by Row — bind_tracks","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/bind_tracks.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Bind Multiple Track Tables by Row — bind_tracks","text":"","code":"data(short_tracks) bind_tracks(short_tracks, short_tracks) #> Track table [240 observations] #> Number of tracks: 2 #> Dimensions: 2D #> Geographic: TRUE #> Projection: +proj=longlat #> Table class: data frame ('data.frame') #> id t x y #> 1 1 2015-09-10 07:01:00 15.76468 -22.37961 #> 2 1 2015-09-10 07:01:01 15.76469 -22.37960 #> 3 1 2015-09-10 07:01:02 15.76469 -22.37960 #> 4 1 2015-09-10 07:01:03 15.76469 -22.37960 #> 5 1 2015-09-10 07:01:04 15.76470 -22.37960 #> 6 1 2015-09-10 07:01:05 15.76469 -22.37960 #> 7 1 2015-09-10 07:01:06 15.76469 -22.37960 #> 8 1 2015-09-10 07:01:07 15.76469 -22.37959 #> 9 1 2015-09-10 07:01:08 15.76469 -22.37959 #> 10 1 2015-09-10 07:01:09 15.76469 -22.37959 #> 11 1 2015-09-10 07:01:10 15.76469 -22.37959 #> 12 1 2015-09-10 07:01:11 15.76469 -22.37960 #> 13 1 2015-09-10 07:01:12 15.76469 -22.37960 #> 14 1 2015-09-10 07:01:13 15.76469 -22.37960 #> 15 1 2015-09-10 07:01:14 15.76469 -22.37960 #> 16 1 2015-09-10 07:01:15 15.76468 -22.37960 #> 17 1 2015-09-10 07:01:16 15.76468 -22.37960 #> 18 1 2015-09-10 07:01:17 15.76468 -22.37960 #> 19 1 2015-09-10 07:01:18 15.76468 -22.37960 #> 20 1 2015-09-10 07:01:19 15.76468 -22.37960 #> 21 1 2015-09-10 07:01:20 15.76468 -22.37960 #> 22 1 2015-09-10 07:01:21 15.76468 -22.37960 #> 23 1 2015-09-10 07:01:22 15.76468 -22.37960 #> 24 1 2015-09-10 07:01:23 15.76468 -22.37960 #> 25 1 2015-09-10 07:01:24 15.76468 -22.37960 #> 26 1 2015-09-10 07:01:25 15.76468 -22.37960 #> 27 1 2015-09-10 07:01:26 15.76468 -22.37960 #> 28 1 2015-09-10 07:01:27 15.76468 -22.37960 #> 29 1 2015-09-10 07:01:28 15.76468 -22.37960 #> 30 1 2015-09-10 07:01:29 15.76468 -22.37960 #> 31 1 2015-09-10 07:01:30 15.76468 -22.37960 #> 32 1 2015-09-10 07:01:31 15.76468 -22.37960 #> 33 1 2015-09-10 07:01:32 15.76469 -22.37960 #> 34 1 2015-09-10 07:01:33 15.76469 -22.37960 #> 35 1 2015-09-10 07:01:34 15.76469 -22.37960 #> 36 1 2015-09-10 07:01:35 15.76469 -22.37960 #> 37 1 2015-09-10 07:01:36 15.76469 -22.37960 #> 38 1 2015-09-10 07:01:37 15.76469 -22.37960 #> 39 1 2015-09-10 07:01:38 15.76469 -22.37960 #> 40 1 2015-09-10 07:01:39 15.76469 -22.37960 #> 41 1 2015-09-10 07:01:40 15.76469 -22.37960 #> 42 1 2015-09-10 07:01:41 15.76469 -22.37960 #> 43 1 2015-09-10 07:01:42 15.76469 -22.37960 #> 44 1 2015-09-10 07:01:43 15.76469 -22.37960 #> 45 1 2015-09-10 07:01:44 15.76469 -22.37960 #> 46 1 2015-09-10 07:01:45 15.76469 -22.37960 #> 47 1 2015-09-10 07:01:46 15.76469 -22.37960 #> 48 1 2015-09-10 07:01:47 15.76469 -22.37960 #> 49 1 2015-09-10 07:01:48 15.76469 -22.37960 #> 50 1 2015-09-10 07:01:49 15.76469 -22.37959 #> 51 1 2015-09-10 07:01:50 15.76469 -22.37959 #> 52 1 2015-09-10 07:01:51 15.76470 -22.37959 #> 53 1 2015-09-10 07:01:52 15.76470 -22.37959 #> 54 1 2015-09-10 07:01:53 15.76470 -22.37959 #> 55 1 2015-09-10 07:01:54 15.76470 -22.37960 #> 56 1 2015-09-10 07:01:55 15.76470 -22.37960 #> 57 1 2015-09-10 07:01:56 15.76471 -22.37960 #> 58 1 2015-09-10 07:01:57 15.76471 -22.37959 #> 59 1 2015-09-10 07:01:58 15.76471 -22.37959 #> 60 1 2015-09-10 07:01:59 15.76471 -22.37959 #> 61 2 2015-09-10 07:01:00 15.76459 -22.37971 #> 62 2 2015-09-10 07:01:01 15.76459 -22.37971 #> 63 2 2015-09-10 07:01:02 15.76459 -22.37971 #> 64 2 2015-09-10 07:01:03 15.76459 -22.37971 #> 65 2 2015-09-10 07:01:04 15.76459 -22.37971 #> 66 2 2015-09-10 07:01:05 15.76459 -22.37971 #> 67 2 2015-09-10 07:01:06 15.76459 -22.37971 #> 68 2 2015-09-10 07:01:07 15.76459 -22.37971 #> 69 2 2015-09-10 07:01:08 15.76459 -22.37971 #> 70 2 2015-09-10 07:01:09 15.76459 -22.37971 #> 71 2 2015-09-10 07:01:10 15.76459 -22.37971 #> 72 2 2015-09-10 07:01:11 15.76459 -22.37971 #> 73 2 2015-09-10 07:01:12 15.76459 -22.37971 #> 74 2 2015-09-10 07:01:13 15.76459 -22.37971 #> 75 2 2015-09-10 07:01:14 15.76459 -22.37971 #> 76 2 2015-09-10 07:01:15 15.76459 -22.37971 #> 77 2 2015-09-10 07:01:16 15.76459 -22.37971 #> 78 2 2015-09-10 07:01:17 15.76459 -22.37971 #> 79 2 2015-09-10 07:01:18 15.76459 -22.37971 #> 80 2 2015-09-10 07:01:19 15.76459 -22.37971 #> 81 2 2015-09-10 07:01:20 15.76459 -22.37971 #> 82 2 2015-09-10 07:01:21 15.76459 -22.37971 #> 83 2 2015-09-10 07:01:22 15.76459 -22.37971 #> 84 2 2015-09-10 07:01:23 15.76459 -22.37971 #> 85 2 2015-09-10 07:01:24 15.76459 -22.37971 #> 86 2 2015-09-10 07:01:25 15.76458 -22.37971 #> 87 2 2015-09-10 07:01:26 15.76459 -22.37971 #> 88 2 2015-09-10 07:01:27 15.76459 -22.37971 #> 89 2 2015-09-10 07:01:28 15.76459 -22.37971 #> 90 2 2015-09-10 07:01:29 15.76458 -22.37971 #> 91 2 2015-09-10 07:01:30 15.76458 -22.37971 #> 92 2 2015-09-10 07:01:31 15.76457 -22.37971 #> 93 2 2015-09-10 07:01:32 15.76456 -22.37971 #> 94 2 2015-09-10 07:01:33 15.76455 -22.37972 #> 95 2 2015-09-10 07:01:34 15.76455 -22.37972 #> 96 2 2015-09-10 07:01:35 15.76455 -22.37973 #> 97 2 2015-09-10 07:01:36 15.76455 -22.37973 #> 98 2 2015-09-10 07:01:37 15.76455 -22.37974 #> 99 2 2015-09-10 07:01:38 15.76455 -22.37974 #> 100 2 2015-09-10 07:01:39 15.76455 -22.37975 #> 101 2 2015-09-10 07:01:40 15.76455 -22.37975 #> 102 2 2015-09-10 07:01:41 15.76454 -22.37976 #> 103 2 2015-09-10 07:01:42 15.76455 -22.37976 #> 104 2 2015-09-10 07:01:43 15.76455 -22.37976 #> 105 2 2015-09-10 07:01:44 15.76455 -22.37977 #> 106 2 2015-09-10 07:01:45 15.76456 -22.37977 #> 107 2 2015-09-10 07:01:46 15.76457 -22.37978 #> 108 2 2015-09-10 07:01:47 15.76458 -22.37978 #> 109 2 2015-09-10 07:01:48 15.76459 -22.37979 #> 110 2 2015-09-10 07:01:49 15.76459 -22.37979 #> 111 2 2015-09-10 07:01:50 15.76460 -22.37980 #> 112 2 2015-09-10 07:01:51 15.76461 -22.37980 #> 113 2 2015-09-10 07:01:52 15.76461 -22.37981 #> 114 2 2015-09-10 07:01:53 15.76461 -22.37981 #> 115 2 2015-09-10 07:01:54 15.76462 -22.37981 #> 116 2 2015-09-10 07:01:55 15.76463 -22.37982 #> 117 2 2015-09-10 07:01:56 15.76463 -22.37982 #> 118 2 2015-09-10 07:01:57 15.76464 -22.37982 #> 119 2 2015-09-10 07:01:58 15.76465 -22.37982 #> 120 2 2015-09-10 07:01:59 15.76466 -22.37982 #> 121 1 2015-09-10 07:01:00 15.76468 -22.37961 #> 122 1 2015-09-10 07:01:01 15.76469 -22.37960 #> 123 1 2015-09-10 07:01:02 15.76469 -22.37960 #> 124 1 2015-09-10 07:01:03 15.76469 -22.37960 #> 125 1 2015-09-10 07:01:04 15.76470 -22.37960 #> 126 1 2015-09-10 07:01:05 15.76469 -22.37960 #> 127 1 2015-09-10 07:01:06 15.76469 -22.37960 #> 128 1 2015-09-10 07:01:07 15.76469 -22.37959 #> 129 1 2015-09-10 07:01:08 15.76469 -22.37959 #> 130 1 2015-09-10 07:01:09 15.76469 -22.37959 #> 131 1 2015-09-10 07:01:10 15.76469 -22.37959 #> 132 1 2015-09-10 07:01:11 15.76469 -22.37960 #> 133 1 2015-09-10 07:01:12 15.76469 -22.37960 #> 134 1 2015-09-10 07:01:13 15.76469 -22.37960 #> 135 1 2015-09-10 07:01:14 15.76469 -22.37960 #> 136 1 2015-09-10 07:01:15 15.76468 -22.37960 #> 137 1 2015-09-10 07:01:16 15.76468 -22.37960 #> 138 1 2015-09-10 07:01:17 15.76468 -22.37960 #> 139 1 2015-09-10 07:01:18 15.76468 -22.37960 #> 140 1 2015-09-10 07:01:19 15.76468 -22.37960 #> 141 1 2015-09-10 07:01:20 15.76468 -22.37960 #> 142 1 2015-09-10 07:01:21 15.76468 -22.37960 #> 143 1 2015-09-10 07:01:22 15.76468 -22.37960 #> 144 1 2015-09-10 07:01:23 15.76468 -22.37960 #> 145 1 2015-09-10 07:01:24 15.76468 -22.37960 #> 146 1 2015-09-10 07:01:25 15.76468 -22.37960 #> 147 1 2015-09-10 07:01:26 15.76468 -22.37960 #> 148 1 2015-09-10 07:01:27 15.76468 -22.37960 #> 149 1 2015-09-10 07:01:28 15.76468 -22.37960 #> 150 1 2015-09-10 07:01:29 15.76468 -22.37960 #> 151 1 2015-09-10 07:01:30 15.76468 -22.37960 #> 152 1 2015-09-10 07:01:31 15.76468 -22.37960 #> 153 1 2015-09-10 07:01:32 15.76469 -22.37960 #> 154 1 2015-09-10 07:01:33 15.76469 -22.37960 #> 155 1 2015-09-10 07:01:34 15.76469 -22.37960 #> 156 1 2015-09-10 07:01:35 15.76469 -22.37960 #> 157 1 2015-09-10 07:01:36 15.76469 -22.37960 #> 158 1 2015-09-10 07:01:37 15.76469 -22.37960 #> 159 1 2015-09-10 07:01:38 15.76469 -22.37960 #> 160 1 2015-09-10 07:01:39 15.76469 -22.37960 #> 161 1 2015-09-10 07:01:40 15.76469 -22.37960 #> 162 1 2015-09-10 07:01:41 15.76469 -22.37960 #> 163 1 2015-09-10 07:01:42 15.76469 -22.37960 #> 164 1 2015-09-10 07:01:43 15.76469 -22.37960 #> 165 1 2015-09-10 07:01:44 15.76469 -22.37960 #> 166 1 2015-09-10 07:01:45 15.76469 -22.37960 #> 167 1 2015-09-10 07:01:46 15.76469 -22.37960 #> 168 1 2015-09-10 07:01:47 15.76469 -22.37960 #> 169 1 2015-09-10 07:01:48 15.76469 -22.37960 #> 170 1 2015-09-10 07:01:49 15.76469 -22.37959 #> 171 1 2015-09-10 07:01:50 15.76469 -22.37959 #> 172 1 2015-09-10 07:01:51 15.76470 -22.37959 #> 173 1 2015-09-10 07:01:52 15.76470 -22.37959 #> 174 1 2015-09-10 07:01:53 15.76470 -22.37959 #> 175 1 2015-09-10 07:01:54 15.76470 -22.37960 #> 176 1 2015-09-10 07:01:55 15.76470 -22.37960 #> 177 1 2015-09-10 07:01:56 15.76471 -22.37960 #> 178 1 2015-09-10 07:01:57 15.76471 -22.37959 #> 179 1 2015-09-10 07:01:58 15.76471 -22.37959 #> 180 1 2015-09-10 07:01:59 15.76471 -22.37959 #> 181 2 2015-09-10 07:01:00 15.76459 -22.37971 #> 182 2 2015-09-10 07:01:01 15.76459 -22.37971 #> 183 2 2015-09-10 07:01:02 15.76459 -22.37971 #> 184 2 2015-09-10 07:01:03 15.76459 -22.37971 #> 185 2 2015-09-10 07:01:04 15.76459 -22.37971 #> 186 2 2015-09-10 07:01:05 15.76459 -22.37971 #> 187 2 2015-09-10 07:01:06 15.76459 -22.37971 #> 188 2 2015-09-10 07:01:07 15.76459 -22.37971 #> 189 2 2015-09-10 07:01:08 15.76459 -22.37971 #> 190 2 2015-09-10 07:01:09 15.76459 -22.37971 #> 191 2 2015-09-10 07:01:10 15.76459 -22.37971 #> 192 2 2015-09-10 07:01:11 15.76459 -22.37971 #> 193 2 2015-09-10 07:01:12 15.76459 -22.37971 #> 194 2 2015-09-10 07:01:13 15.76459 -22.37971 #> 195 2 2015-09-10 07:01:14 15.76459 -22.37971 #> 196 2 2015-09-10 07:01:15 15.76459 -22.37971 #> 197 2 2015-09-10 07:01:16 15.76459 -22.37971 #> 198 2 2015-09-10 07:01:17 15.76459 -22.37971 #> 199 2 2015-09-10 07:01:18 15.76459 -22.37971 #> 200 2 2015-09-10 07:01:19 15.76459 -22.37971 #> 201 2 2015-09-10 07:01:20 15.76459 -22.37971 #> 202 2 2015-09-10 07:01:21 15.76459 -22.37971 #> 203 2 2015-09-10 07:01:22 15.76459 -22.37971 #> 204 2 2015-09-10 07:01:23 15.76459 -22.37971 #> 205 2 2015-09-10 07:01:24 15.76459 -22.37971 #> 206 2 2015-09-10 07:01:25 15.76458 -22.37971 #> 207 2 2015-09-10 07:01:26 15.76459 -22.37971 #> 208 2 2015-09-10 07:01:27 15.76459 -22.37971 #> 209 2 2015-09-10 07:01:28 15.76459 -22.37971 #> 210 2 2015-09-10 07:01:29 15.76458 -22.37971 #> 211 2 2015-09-10 07:01:30 15.76458 -22.37971 #> 212 2 2015-09-10 07:01:31 15.76457 -22.37971 #> 213 2 2015-09-10 07:01:32 15.76456 -22.37971 #> 214 2 2015-09-10 07:01:33 15.76455 -22.37972 #> 215 2 2015-09-10 07:01:34 15.76455 -22.37972 #> 216 2 2015-09-10 07:01:35 15.76455 -22.37973 #> 217 2 2015-09-10 07:01:36 15.76455 -22.37973 #> 218 2 2015-09-10 07:01:37 15.76455 -22.37974 #> 219 2 2015-09-10 07:01:38 15.76455 -22.37974 #> 220 2 2015-09-10 07:01:39 15.76455 -22.37975 #> 221 2 2015-09-10 07:01:40 15.76455 -22.37975 #> 222 2 2015-09-10 07:01:41 15.76454 -22.37976 #> 223 2 2015-09-10 07:01:42 15.76455 -22.37976 #> 224 2 2015-09-10 07:01:43 15.76455 -22.37976 #> 225 2 2015-09-10 07:01:44 15.76455 -22.37977 #> 226 2 2015-09-10 07:01:45 15.76456 -22.37977 #> 227 2 2015-09-10 07:01:46 15.76457 -22.37978 #> 228 2 2015-09-10 07:01:47 15.76458 -22.37978 #> 229 2 2015-09-10 07:01:48 15.76459 -22.37979 #> 230 2 2015-09-10 07:01:49 15.76459 -22.37979 #> 231 2 2015-09-10 07:01:50 15.76460 -22.37980 #> 232 2 2015-09-10 07:01:51 15.76461 -22.37980 #> 233 2 2015-09-10 07:01:52 15.76461 -22.37981 #> 234 2 2015-09-10 07:01:53 15.76461 -22.37981 #> 235 2 2015-09-10 07:01:54 15.76462 -22.37981 #> 236 2 2015-09-10 07:01:55 15.76463 -22.37982 #> 237 2 2015-09-10 07:01:56 15.76463 -22.37982 #> 238 2 2015-09-10 07:01:57 15.76464 -22.37982 #> 239 2 2015-09-10 07:01:58 15.76465 -22.37982 #> 240 2 2015-09-10 07:01:59 15.76466 -22.37982 bind_tracks(list(short_tracks, short_tracks)) #> Track table [240 observations] #> Number of tracks: 2 #> Dimensions: 2D #> Geographic: TRUE #> Projection: +proj=longlat #> Table class: data frame ('data.frame') #> id t x y #> 1 1 2015-09-10 07:01:00 15.76468 -22.37961 #> 2 1 2015-09-10 07:01:01 15.76469 -22.37960 #> 3 1 2015-09-10 07:01:02 15.76469 -22.37960 #> 4 1 2015-09-10 07:01:03 15.76469 -22.37960 #> 5 1 2015-09-10 07:01:04 15.76470 -22.37960 #> 6 1 2015-09-10 07:01:05 15.76469 -22.37960 #> 7 1 2015-09-10 07:01:06 15.76469 -22.37960 #> 8 1 2015-09-10 07:01:07 15.76469 -22.37959 #> 9 1 2015-09-10 07:01:08 15.76469 -22.37959 #> 10 1 2015-09-10 07:01:09 15.76469 -22.37959 #> 11 1 2015-09-10 07:01:10 15.76469 -22.37959 #> 12 1 2015-09-10 07:01:11 15.76469 -22.37960 #> 13 1 2015-09-10 07:01:12 15.76469 -22.37960 #> 14 1 2015-09-10 07:01:13 15.76469 -22.37960 #> 15 1 2015-09-10 07:01:14 15.76469 -22.37960 #> 16 1 2015-09-10 07:01:15 15.76468 -22.37960 #> 17 1 2015-09-10 07:01:16 15.76468 -22.37960 #> 18 1 2015-09-10 07:01:17 15.76468 -22.37960 #> 19 1 2015-09-10 07:01:18 15.76468 -22.37960 #> 20 1 2015-09-10 07:01:19 15.76468 -22.37960 #> 21 1 2015-09-10 07:01:20 15.76468 -22.37960 #> 22 1 2015-09-10 07:01:21 15.76468 -22.37960 #> 23 1 2015-09-10 07:01:22 15.76468 -22.37960 #> 24 1 2015-09-10 07:01:23 15.76468 -22.37960 #> 25 1 2015-09-10 07:01:24 15.76468 -22.37960 #> 26 1 2015-09-10 07:01:25 15.76468 -22.37960 #> 27 1 2015-09-10 07:01:26 15.76468 -22.37960 #> 28 1 2015-09-10 07:01:27 15.76468 -22.37960 #> 29 1 2015-09-10 07:01:28 15.76468 -22.37960 #> 30 1 2015-09-10 07:01:29 15.76468 -22.37960 #> 31 1 2015-09-10 07:01:30 15.76468 -22.37960 #> 32 1 2015-09-10 07:01:31 15.76468 -22.37960 #> 33 1 2015-09-10 07:01:32 15.76469 -22.37960 #> 34 1 2015-09-10 07:01:33 15.76469 -22.37960 #> 35 1 2015-09-10 07:01:34 15.76469 -22.37960 #> 36 1 2015-09-10 07:01:35 15.76469 -22.37960 #> 37 1 2015-09-10 07:01:36 15.76469 -22.37960 #> 38 1 2015-09-10 07:01:37 15.76469 -22.37960 #> 39 1 2015-09-10 07:01:38 15.76469 -22.37960 #> 40 1 2015-09-10 07:01:39 15.76469 -22.37960 #> 41 1 2015-09-10 07:01:40 15.76469 -22.37960 #> 42 1 2015-09-10 07:01:41 15.76469 -22.37960 #> 43 1 2015-09-10 07:01:42 15.76469 -22.37960 #> 44 1 2015-09-10 07:01:43 15.76469 -22.37960 #> 45 1 2015-09-10 07:01:44 15.76469 -22.37960 #> 46 1 2015-09-10 07:01:45 15.76469 -22.37960 #> 47 1 2015-09-10 07:01:46 15.76469 -22.37960 #> 48 1 2015-09-10 07:01:47 15.76469 -22.37960 #> 49 1 2015-09-10 07:01:48 15.76469 -22.37960 #> 50 1 2015-09-10 07:01:49 15.76469 -22.37959 #> 51 1 2015-09-10 07:01:50 15.76469 -22.37959 #> 52 1 2015-09-10 07:01:51 15.76470 -22.37959 #> 53 1 2015-09-10 07:01:52 15.76470 -22.37959 #> 54 1 2015-09-10 07:01:53 15.76470 -22.37959 #> 55 1 2015-09-10 07:01:54 15.76470 -22.37960 #> 56 1 2015-09-10 07:01:55 15.76470 -22.37960 #> 57 1 2015-09-10 07:01:56 15.76471 -22.37960 #> 58 1 2015-09-10 07:01:57 15.76471 -22.37959 #> 59 1 2015-09-10 07:01:58 15.76471 -22.37959 #> 60 1 2015-09-10 07:01:59 15.76471 -22.37959 #> 61 2 2015-09-10 07:01:00 15.76459 -22.37971 #> 62 2 2015-09-10 07:01:01 15.76459 -22.37971 #> 63 2 2015-09-10 07:01:02 15.76459 -22.37971 #> 64 2 2015-09-10 07:01:03 15.76459 -22.37971 #> 65 2 2015-09-10 07:01:04 15.76459 -22.37971 #> 66 2 2015-09-10 07:01:05 15.76459 -22.37971 #> 67 2 2015-09-10 07:01:06 15.76459 -22.37971 #> 68 2 2015-09-10 07:01:07 15.76459 -22.37971 #> 69 2 2015-09-10 07:01:08 15.76459 -22.37971 #> 70 2 2015-09-10 07:01:09 15.76459 -22.37971 #> 71 2 2015-09-10 07:01:10 15.76459 -22.37971 #> 72 2 2015-09-10 07:01:11 15.76459 -22.37971 #> 73 2 2015-09-10 07:01:12 15.76459 -22.37971 #> 74 2 2015-09-10 07:01:13 15.76459 -22.37971 #> 75 2 2015-09-10 07:01:14 15.76459 -22.37971 #> 76 2 2015-09-10 07:01:15 15.76459 -22.37971 #> 77 2 2015-09-10 07:01:16 15.76459 -22.37971 #> 78 2 2015-09-10 07:01:17 15.76459 -22.37971 #> 79 2 2015-09-10 07:01:18 15.76459 -22.37971 #> 80 2 2015-09-10 07:01:19 15.76459 -22.37971 #> 81 2 2015-09-10 07:01:20 15.76459 -22.37971 #> 82 2 2015-09-10 07:01:21 15.76459 -22.37971 #> 83 2 2015-09-10 07:01:22 15.76459 -22.37971 #> 84 2 2015-09-10 07:01:23 15.76459 -22.37971 #> 85 2 2015-09-10 07:01:24 15.76459 -22.37971 #> 86 2 2015-09-10 07:01:25 15.76458 -22.37971 #> 87 2 2015-09-10 07:01:26 15.76459 -22.37971 #> 88 2 2015-09-10 07:01:27 15.76459 -22.37971 #> 89 2 2015-09-10 07:01:28 15.76459 -22.37971 #> 90 2 2015-09-10 07:01:29 15.76458 -22.37971 #> 91 2 2015-09-10 07:01:30 15.76458 -22.37971 #> 92 2 2015-09-10 07:01:31 15.76457 -22.37971 #> 93 2 2015-09-10 07:01:32 15.76456 -22.37971 #> 94 2 2015-09-10 07:01:33 15.76455 -22.37972 #> 95 2 2015-09-10 07:01:34 15.76455 -22.37972 #> 96 2 2015-09-10 07:01:35 15.76455 -22.37973 #> 97 2 2015-09-10 07:01:36 15.76455 -22.37973 #> 98 2 2015-09-10 07:01:37 15.76455 -22.37974 #> 99 2 2015-09-10 07:01:38 15.76455 -22.37974 #> 100 2 2015-09-10 07:01:39 15.76455 -22.37975 #> 101 2 2015-09-10 07:01:40 15.76455 -22.37975 #> 102 2 2015-09-10 07:01:41 15.76454 -22.37976 #> 103 2 2015-09-10 07:01:42 15.76455 -22.37976 #> 104 2 2015-09-10 07:01:43 15.76455 -22.37976 #> 105 2 2015-09-10 07:01:44 15.76455 -22.37977 #> 106 2 2015-09-10 07:01:45 15.76456 -22.37977 #> 107 2 2015-09-10 07:01:46 15.76457 -22.37978 #> 108 2 2015-09-10 07:01:47 15.76458 -22.37978 #> 109 2 2015-09-10 07:01:48 15.76459 -22.37979 #> 110 2 2015-09-10 07:01:49 15.76459 -22.37979 #> 111 2 2015-09-10 07:01:50 15.76460 -22.37980 #> 112 2 2015-09-10 07:01:51 15.76461 -22.37980 #> 113 2 2015-09-10 07:01:52 15.76461 -22.37981 #> 114 2 2015-09-10 07:01:53 15.76461 -22.37981 #> 115 2 2015-09-10 07:01:54 15.76462 -22.37981 #> 116 2 2015-09-10 07:01:55 15.76463 -22.37982 #> 117 2 2015-09-10 07:01:56 15.76463 -22.37982 #> 118 2 2015-09-10 07:01:57 15.76464 -22.37982 #> 119 2 2015-09-10 07:01:58 15.76465 -22.37982 #> 120 2 2015-09-10 07:01:59 15.76466 -22.37982 #> 121 1 2015-09-10 07:01:00 15.76468 -22.37961 #> 122 1 2015-09-10 07:01:01 15.76469 -22.37960 #> 123 1 2015-09-10 07:01:02 15.76469 -22.37960 #> 124 1 2015-09-10 07:01:03 15.76469 -22.37960 #> 125 1 2015-09-10 07:01:04 15.76470 -22.37960 #> 126 1 2015-09-10 07:01:05 15.76469 -22.37960 #> 127 1 2015-09-10 07:01:06 15.76469 -22.37960 #> 128 1 2015-09-10 07:01:07 15.76469 -22.37959 #> 129 1 2015-09-10 07:01:08 15.76469 -22.37959 #> 130 1 2015-09-10 07:01:09 15.76469 -22.37959 #> 131 1 2015-09-10 07:01:10 15.76469 -22.37959 #> 132 1 2015-09-10 07:01:11 15.76469 -22.37960 #> 133 1 2015-09-10 07:01:12 15.76469 -22.37960 #> 134 1 2015-09-10 07:01:13 15.76469 -22.37960 #> 135 1 2015-09-10 07:01:14 15.76469 -22.37960 #> 136 1 2015-09-10 07:01:15 15.76468 -22.37960 #> 137 1 2015-09-10 07:01:16 15.76468 -22.37960 #> 138 1 2015-09-10 07:01:17 15.76468 -22.37960 #> 139 1 2015-09-10 07:01:18 15.76468 -22.37960 #> 140 1 2015-09-10 07:01:19 15.76468 -22.37960 #> 141 1 2015-09-10 07:01:20 15.76468 -22.37960 #> 142 1 2015-09-10 07:01:21 15.76468 -22.37960 #> 143 1 2015-09-10 07:01:22 15.76468 -22.37960 #> 144 1 2015-09-10 07:01:23 15.76468 -22.37960 #> 145 1 2015-09-10 07:01:24 15.76468 -22.37960 #> 146 1 2015-09-10 07:01:25 15.76468 -22.37960 #> 147 1 2015-09-10 07:01:26 15.76468 -22.37960 #> 148 1 2015-09-10 07:01:27 15.76468 -22.37960 #> 149 1 2015-09-10 07:01:28 15.76468 -22.37960 #> 150 1 2015-09-10 07:01:29 15.76468 -22.37960 #> 151 1 2015-09-10 07:01:30 15.76468 -22.37960 #> 152 1 2015-09-10 07:01:31 15.76468 -22.37960 #> 153 1 2015-09-10 07:01:32 15.76469 -22.37960 #> 154 1 2015-09-10 07:01:33 15.76469 -22.37960 #> 155 1 2015-09-10 07:01:34 15.76469 -22.37960 #> 156 1 2015-09-10 07:01:35 15.76469 -22.37960 #> 157 1 2015-09-10 07:01:36 15.76469 -22.37960 #> 158 1 2015-09-10 07:01:37 15.76469 -22.37960 #> 159 1 2015-09-10 07:01:38 15.76469 -22.37960 #> 160 1 2015-09-10 07:01:39 15.76469 -22.37960 #> 161 1 2015-09-10 07:01:40 15.76469 -22.37960 #> 162 1 2015-09-10 07:01:41 15.76469 -22.37960 #> 163 1 2015-09-10 07:01:42 15.76469 -22.37960 #> 164 1 2015-09-10 07:01:43 15.76469 -22.37960 #> 165 1 2015-09-10 07:01:44 15.76469 -22.37960 #> 166 1 2015-09-10 07:01:45 15.76469 -22.37960 #> 167 1 2015-09-10 07:01:46 15.76469 -22.37960 #> 168 1 2015-09-10 07:01:47 15.76469 -22.37960 #> 169 1 2015-09-10 07:01:48 15.76469 -22.37960 #> 170 1 2015-09-10 07:01:49 15.76469 -22.37959 #> 171 1 2015-09-10 07:01:50 15.76469 -22.37959 #> 172 1 2015-09-10 07:01:51 15.76470 -22.37959 #> 173 1 2015-09-10 07:01:52 15.76470 -22.37959 #> 174 1 2015-09-10 07:01:53 15.76470 -22.37959 #> 175 1 2015-09-10 07:01:54 15.76470 -22.37960 #> 176 1 2015-09-10 07:01:55 15.76470 -22.37960 #> 177 1 2015-09-10 07:01:56 15.76471 -22.37960 #> 178 1 2015-09-10 07:01:57 15.76471 -22.37959 #> 179 1 2015-09-10 07:01:58 15.76471 -22.37959 #> 180 1 2015-09-10 07:01:59 15.76471 -22.37959 #> 181 2 2015-09-10 07:01:00 15.76459 -22.37971 #> 182 2 2015-09-10 07:01:01 15.76459 -22.37971 #> 183 2 2015-09-10 07:01:02 15.76459 -22.37971 #> 184 2 2015-09-10 07:01:03 15.76459 -22.37971 #> 185 2 2015-09-10 07:01:04 15.76459 -22.37971 #> 186 2 2015-09-10 07:01:05 15.76459 -22.37971 #> 187 2 2015-09-10 07:01:06 15.76459 -22.37971 #> 188 2 2015-09-10 07:01:07 15.76459 -22.37971 #> 189 2 2015-09-10 07:01:08 15.76459 -22.37971 #> 190 2 2015-09-10 07:01:09 15.76459 -22.37971 #> 191 2 2015-09-10 07:01:10 15.76459 -22.37971 #> 192 2 2015-09-10 07:01:11 15.76459 -22.37971 #> 193 2 2015-09-10 07:01:12 15.76459 -22.37971 #> 194 2 2015-09-10 07:01:13 15.76459 -22.37971 #> 195 2 2015-09-10 07:01:14 15.76459 -22.37971 #> 196 2 2015-09-10 07:01:15 15.76459 -22.37971 #> 197 2 2015-09-10 07:01:16 15.76459 -22.37971 #> 198 2 2015-09-10 07:01:17 15.76459 -22.37971 #> 199 2 2015-09-10 07:01:18 15.76459 -22.37971 #> 200 2 2015-09-10 07:01:19 15.76459 -22.37971 #> 201 2 2015-09-10 07:01:20 15.76459 -22.37971 #> 202 2 2015-09-10 07:01:21 15.76459 -22.37971 #> 203 2 2015-09-10 07:01:22 15.76459 -22.37971 #> 204 2 2015-09-10 07:01:23 15.76459 -22.37971 #> 205 2 2015-09-10 07:01:24 15.76459 -22.37971 #> 206 2 2015-09-10 07:01:25 15.76458 -22.37971 #> 207 2 2015-09-10 07:01:26 15.76459 -22.37971 #> 208 2 2015-09-10 07:01:27 15.76459 -22.37971 #> 209 2 2015-09-10 07:01:28 15.76459 -22.37971 #> 210 2 2015-09-10 07:01:29 15.76458 -22.37971 #> 211 2 2015-09-10 07:01:30 15.76458 -22.37971 #> 212 2 2015-09-10 07:01:31 15.76457 -22.37971 #> 213 2 2015-09-10 07:01:32 15.76456 -22.37971 #> 214 2 2015-09-10 07:01:33 15.76455 -22.37972 #> 215 2 2015-09-10 07:01:34 15.76455 -22.37972 #> 216 2 2015-09-10 07:01:35 15.76455 -22.37973 #> 217 2 2015-09-10 07:01:36 15.76455 -22.37973 #> 218 2 2015-09-10 07:01:37 15.76455 -22.37974 #> 219 2 2015-09-10 07:01:38 15.76455 -22.37974 #> 220 2 2015-09-10 07:01:39 15.76455 -22.37975 #> 221 2 2015-09-10 07:01:40 15.76455 -22.37975 #> 222 2 2015-09-10 07:01:41 15.76454 -22.37976 #> 223 2 2015-09-10 07:01:42 15.76455 -22.37976 #> 224 2 2015-09-10 07:01:43 15.76455 -22.37976 #> 225 2 2015-09-10 07:01:44 15.76455 -22.37977 #> 226 2 2015-09-10 07:01:45 15.76456 -22.37977 #> 227 2 2015-09-10 07:01:46 15.76457 -22.37978 #> 228 2 2015-09-10 07:01:47 15.76458 -22.37978 #> 229 2 2015-09-10 07:01:48 15.76459 -22.37979 #> 230 2 2015-09-10 07:01:49 15.76459 -22.37979 #> 231 2 2015-09-10 07:01:50 15.76460 -22.37980 #> 232 2 2015-09-10 07:01:51 15.76461 -22.37980 #> 233 2 2015-09-10 07:01:52 15.76461 -22.37981 #> 234 2 2015-09-10 07:01:53 15.76461 -22.37981 #> 235 2 2015-09-10 07:01:54 15.76462 -22.37981 #> 236 2 2015-09-10 07:01:55 15.76463 -22.37982 #> 237 2 2015-09-10 07:01:56 15.76463 -22.37982 #> 238 2 2015-09-10 07:01:57 15.76464 -22.37982 #> 239 2 2015-09-10 07:01:58 15.76465 -22.37982 #> 240 2 2015-09-10 07:01:59 15.76466 -22.37982"},{"path":"https://swarm-lab.github.io/trackdf/reference/conversions.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert a Track Table to/from Other Formats — conversions","title":"Convert a Track Table to/from Other Formats — conversions","text":"following methods convert track tables common formats used processing tracking spatial data.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/conversions.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert a Track Table to/from Other Formats — conversions","text":"","code":"as_track(x, table = \"df\", ...) # S3 method for MoveStack as_track(x, table = \"df\", ...) # S3 method for Move as_track(x, table = \"df\", ...) as_move(x, ...) # S3 method for track as_move(x, ...) # S3 method for SpatialPointsDataFrame as_track(x, table = \"df\", ...) as_sp(x, ...) # S3 method for track as_sp(x, ...) # S3 method for ltraj as_track(x, table = \"df\", ...) as_ltraj(x, ...) # S3 method for track as_ltraj(x, ...) # S3 method for telemetry as_track(x, table = \"df\", ...) # S3 method for list as_track(x, table = \"df\", ...) as_telemetry(x, ...) # S3 method for track as_telemetry(x, ...) # S3 method for moveData as_track(x, table = \"df\", type = c(\"LL\", \"UTM\"), ...) as_moveHMM(x, ...) # S3 method for track as_moveHMM(x, ...)"},{"path":"https://swarm-lab.github.io/trackdf/reference/conversions.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert a Track Table to/from Other Formats — conversions","text":"x object convert. table string indicating class table track table built. can data.frame (\"df\", default), tibble (\"tbl\"), data.table (\"dt\"). ... parameters passed : track_df, track_tbl track_dt as_track used. moveVis::df2move as_move used. sp::SpatialPointsDataFrame as_sp used. adehabitatLT::.ltraj as_ltraj used. ctmm::.telemetry as_telemetry used. moveHMM::prepData as_moveHMM used. type converting moveHMM::moveData track table , character string indicating type coordinates stored moveHMM::moveData object: \"LL\" longitude/latitude (default), \"UTM\" easting/northing.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/conversions.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert a Track Table to/from Other Formats — conversions","text":"coordinates converted chosen format.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/conversions.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert a Track Table to/from Other Formats — conversions","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/conversions.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert a Track Table to/from Other Formats — conversions","text":"","code":"if (FALSE) { data(short_tracks) if (requireNamespace(\"moveVis\", quietly = TRUE)) { mv <- as_move(short_tracks) as_track(mv) } if (requireNamespace(\"sp\", quietly = TRUE)) { sp <- as_sp(short_tracks) as_track(sp) } if (requireNamespace(\"adehabitatLT\", quietly = TRUE)) { lt <- as_ltraj(short_tracks) as_track(lt) } if (requireNamespace(\"ctmm\", quietly = TRUE)) { tl <- as_telemetry(short_tracks) as_track(tl) } if (requireNamespace(\"moveHMM\", quietly = TRUE)) { hhm <- as_moveHMM(short_tracks, type = \"LL\") as_track(hhm) } }"},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-Mode.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute The Mode(s) Of A Discrete Distribution — .Mode","title":"Compute The Mode(s) Of A Discrete Distribution — .Mode","text":"internal utility function compute mode(s) discrete distribution.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-Mode.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute The Mode(s) Of A Discrete Distribution — .Mode","text":"","code":".Mode(x, na.rm = TRUE)"},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-Mode.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute The Mode(s) Of A Discrete Distribution — .Mode","text":"x vector matrix discrete values. na.rm logical value indicating whether NA values stripped computation proceeds (default: TRUE).","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-Mode.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute The Mode(s) Of A Discrete Distribution — .Mode","text":"vector values corresponding mode(s) x.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-Mode.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Compute The Mode(s) Of A Discrete Distribution — .Mode","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-reclass.html","id":null,"dir":"Reference","previous_headings":"","what":"Maintain Class After Modification — .reclass","title":"Maintain Class After Modification — .reclass","text":"Copy class attributes original version object modified version.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-reclass.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Maintain Class After Modification — .reclass","text":"","code":".reclass(x, result)"},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-reclass.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Maintain Class After Modification — .reclass","text":"x original object, class/attributes copy result modified object, /might missing class/attributes.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-reclass.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Maintain Class After Modification — .reclass","text":"result, now class/attributes restored.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-reclass.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Maintain Class After Modification — .reclass","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dplyr_track.html","id":null,"dir":"Reference","previous_headings":"","what":"Dplyr Methods For Track Tables — dplyr_track","title":"Dplyr Methods For Track Tables — dplyr_track","text":"dplyr methods track tables objects.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dplyr_track.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Dplyr Methods For Track Tables — dplyr_track","text":"","code":"# S3 method for track select(.data, ...) # S3 method for track rename(.data, ...) # S3 method for track filter(.data, ...) # S3 method for track arrange(.data, ...) # S3 method for track mutate(.data, ...) # S3 method for track transmute(.data, ...) # S3 method for track summarise(.data, ...) # S3 method for track summarize(.data, ...) # S3 method for track group_by(.data, ...) # S3 method for track ungroup(.data, ...) # S3 method for track sample_n(.data, ...) # S3 method for track sample_frac(.data, ...) # S3 method for track do(.data, ...) # S3 method for track slice(.data, ...) # S3 method for track semi_join(.data, ...) # S3 method for track anti_join(.data, ...) # S3 method for track inner_join(.data, ...) # S3 method for track left_join(.data, ...) # S3 method for track right_join(.data, ...) # S3 method for track full_join(.data, ...) # S3 method for track nest_join(.data, ...) # S3 method for track distinct(.data, ...) # S3 method for track rowwise(.data, ...)"},{"path":"https://swarm-lab.github.io/trackdf/reference/dplyr_track.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Dplyr Methods For Track Tables — dplyr_track","text":".data track table. ... Additional arguments passed corresponding dplyr method.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_t.html","id":null,"dir":"Reference","previous_headings":"","what":"Find Duplicated Timestamps in a Track Table — duplicated_t","title":"Find Duplicated Timestamps in a Track Table — duplicated_t","text":"function attempts automatically detect duplicated timestamps track tables.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_t.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Find Duplicated Timestamps in a Track Table — duplicated_t","text":"","code":"duplicated_t(x)"},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_t.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Find Duplicated Timestamps in a Track Table — duplicated_t","text":"x track table produced track function.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_t.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Find Duplicated Timestamps in a Track Table — duplicated_t","text":"data frame/table/tibble duplicated timestamps individual track x. duplicated data detected, function returns NULL.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_t.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Find Duplicated Timestamps in a Track Table — duplicated_t","text":"Incomplete data (, data containing \"NAs\") ignored.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_t.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Find Duplicated Timestamps in a Track Table — duplicated_t","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_t.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Find Duplicated Timestamps in a Track Table — duplicated_t","text":"","code":"# Create data set with duplicated data data(short_tracks) t_df <- track(x = short_tracks$x, y = short_tracks$y, t = short_tracks$t, id = short_tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\", table = \"df\") t_df <- bind_tracks(t_df, t_df[1:10, ], t_df[100:110, ]) # Find duplicated timestamps duplicated <- duplicated_t(t_df)"},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_xyt.html","id":null,"dir":"Reference","previous_headings":"","what":"Find Duplicated Data in a Track Table — duplicated_xyt","title":"Find Duplicated Data in a Track Table — duplicated_xyt","text":"function attempts automatically detect fully duplicated data track tables.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_xyt.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Find Duplicated Data in a Track Table — duplicated_xyt","text":"","code":"duplicated_xyt(x)"},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_xyt.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Find Duplicated Data in a Track Table — duplicated_xyt","text":"x track table produced track function.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_xyt.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Find Duplicated Data in a Track Table — duplicated_xyt","text":"data frame/table/tibble duplicated timestamps coordinates individual track x. duplicated data detected, function returns NULL.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_xyt.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Find Duplicated Data in a Track Table — duplicated_xyt","text":"Incomplete data (, data containing \"NAs\") ignored.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_xyt.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Find Duplicated Data in a Track Table — duplicated_xyt","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_xyt.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Find Duplicated Data in a Track Table — duplicated_xyt","text":"","code":"# Create data set with duplicated data data(short_tracks) t_df <- track(x = short_tracks$x, y = short_tracks$y, t = short_tracks$t, id = short_tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\", table = \"df\") t_df <- bind_tracks(t_df, t_df[1:10, ], t_df[100:110, ]) # Find duplicated data duplicated <- duplicated_xyt(t_df)"},{"path":"https://swarm-lab.github.io/trackdf/reference/filter.html","id":null,"dir":"Reference","previous_headings":"","what":"Subset rows using column values — filter","title":"Subset rows using column values — filter","text":"re-export filter function dplyr package. See help","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/filter.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Subset rows using column values — filter","text":".data See filter explanation. ... args","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/inconsistent_xy.html","id":null,"dir":"Reference","previous_headings":"","what":"Find Inconsistent Locations in a Track Table — inconsistent_xy","title":"Find Inconsistent Locations in a Track Table — inconsistent_xy","text":"function attempts automatically detect inconsistent locations (instance due writing error GPS innacuracies) track tables.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/inconsistent_xy.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Find Inconsistent Locations in a Track Table — inconsistent_xy","text":"","code":"inconsistent_xy(x, s = 5)"},{"path":"https://swarm-lab.github.io/trackdf/reference/inconsistent_xy.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Find Inconsistent Locations in a Track Table — inconsistent_xy","text":"x track table produced track function. s discrimination threshold outlier detection algorithm. Higher values correspond less outliers.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/inconsistent_xy.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Find Inconsistent Locations in a Track Table — inconsistent_xy","text":"data frame/table/tibble timestamps coordinates inconsistent data individual track x. inconsistencies detected, function returns NULL.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/inconsistent_xy.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Find Inconsistent Locations in a Track Table — inconsistent_xy","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/inconsistent_xy.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Find Inconsistent Locations in a Track Table — inconsistent_xy","text":"","code":"# Create data set with inconsistent data data(tracks) t_df <- track(x = tracks$x, y = tracks$y, t = tracks$t, id = tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\", table = \"df\") t_df$x[1000] <- t_df$x[1000] * 1.0001 t_df$y[4000] <- t_df$y[4000] * 1.00001 # Find inconsistent data inconsitent <- inconsistent_xy(t_df)"},{"path":"https://swarm-lab.github.io/trackdf/reference/is_geo.html","id":null,"dir":"Reference","previous_headings":"","what":"Check if Track Table Uses Geographic Coordinates — is_geo","title":"Check if Track Table Uses Geographic Coordinates — is_geo","text":"Track tables produced track_df can use cartesian (x, y, z) geographic (latitude, longitude, altitude) coordinate system. function helps determine used particular table.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/is_geo.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check if Track Table Uses Geographic Coordinates — is_geo","text":"","code":"is_geo(x)"},{"path":"https://swarm-lab.github.io/trackdf/reference/is_geo.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check if Track Table Uses Geographic Coordinates — is_geo","text":"x track data table produced track_df.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/is_geo.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check if Track Table Uses Geographic Coordinates — is_geo","text":"logical.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/is_geo.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Check if Track Table Uses Geographic Coordinates — is_geo","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/is_geo.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check if Track Table Uses Geographic Coordinates — is_geo","text":"","code":"data(short_tracks) is_geo(short_tracks) #> [1] TRUE"},{"path":"https://swarm-lab.github.io/trackdf/reference/is_track.html","id":null,"dir":"Reference","previous_headings":"","what":"Check Validity of Track Table — is_track","title":"Check Validity of Track Table — is_track","text":"Test whether variable contains track table produced track_df, track_tbl, track_dt.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/is_track.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check Validity of Track Table — is_track","text":"","code":"is_track(x)"},{"path":"https://swarm-lab.github.io/trackdf/reference/is_track.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check Validity of Track Table — is_track","text":"x object test.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/is_track.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check Validity of Track Table — is_track","text":"logical indicating whether variable contains track table (TRUE) (FALSE).","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/is_track.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Check Validity of Track Table — is_track","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/is_track.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check Validity of Track Table — is_track","text":"","code":"data(short_tracks) is_track(short_tracks) #> [1] TRUE"},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_t.html","id":null,"dir":"Reference","previous_headings":"","what":"Find Missing Data in a Track Table — missing_t","title":"Find Missing Data in a Track Table — missing_t","text":"function attempts automatically detect missing data ( instance due writing errors) track tables.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_t.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Find Missing Data in a Track Table — missing_t","text":"","code":"missing_t(x, begin = NULL, end = NULL, step = NULL)"},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_t.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Find Missing Data in a Track Table — missing_t","text":"x track table produced track function. begin full timestamp (date+time) POSIXct format corresponding time missing data looked . set, first timestamp track table used. end full timestamp (date+time) POSIXct format corresponding time missing data looked . set, last timestamp track table used. step difftime object representing expected time two consecutive locations trajectory. set, set common time difference successive locations x.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_t.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Find Missing Data in a Track Table — missing_t","text":"data frame/table/tibble missing timestamps individual track x. missing data detected, function returns NULL.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_t.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Find Missing Data in a Track Table — missing_t","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_t.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Find Missing Data in a Track Table — missing_t","text":"","code":"# Create data set with missing timestamps data(short_tracks) t_df <- track(x = short_tracks$x, y = short_tracks$y, t = short_tracks$t, id = short_tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\", table = \"df\") t_df <- t_df[-c(10, 100), ] # Find missing data missing <- missing_t(t_df)"},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_xy.html","id":null,"dir":"Reference","previous_headings":"","what":"Find Missing Locations in a Track Table — missing_xy","title":"Find Missing Locations in a Track Table — missing_xy","text":"function attempts automatically detect missing location data track tables.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_xy.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Find Missing Locations in a Track Table — missing_xy","text":"","code":"missing_xy(x)"},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_xy.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Find Missing Locations in a Track Table — missing_xy","text":"x track table produced track function.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_xy.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Find Missing Locations in a Track Table — missing_xy","text":"data frame/table/tibble timestamps type missing data individual track x. missing data detected, function returns NULL.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_xy.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Find Missing Locations in a Track Table — missing_xy","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_xy.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Find Missing Locations in a Track Table — missing_xy","text":"","code":"# Create data set with missing coordinates data(short_tracks) t_df <- track(x = short_tracks$x, y = short_tracks$y, t = short_tracks$t, id = short_tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\", table = \"df\") t_df$x[c(10, 100)] <- NA t_df$y[c(20, 110)] <- NA # Find missing data missing <- missing_xy(t_df)"},{"path":"https://swarm-lab.github.io/trackdf/reference/n_dims.html","id":null,"dir":"Reference","previous_headings":"","what":"Number of Spatial Dimensions of a Track Table — n_dims","title":"Number of Spatial Dimensions of a Track Table — n_dims","text":"Track tables produced track_df can 2 (x,y) 3 (x, y, z) spatial dimensions. function returns number spatial dimensions track table.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/n_dims.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Number of Spatial Dimensions of a Track Table — n_dims","text":"","code":"n_dims(x)"},{"path":"https://swarm-lab.github.io/trackdf/reference/n_dims.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Number of Spatial Dimensions of a Track Table — n_dims","text":"x track data table produced track_df.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/n_dims.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Number of Spatial Dimensions of a Track Table — n_dims","text":"numeric value.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/n_dims.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Number of Spatial Dimensions of a Track Table — n_dims","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/n_dims.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Number of Spatial Dimensions of a Track Table — n_dims","text":"","code":"data(short_tracks) n_dims(short_tracks) #> [1] 2"},{"path":"https://swarm-lab.github.io/trackdf/reference/n_tracks.html","id":null,"dir":"Reference","previous_headings":"","what":"Number of Tracks in a Track Table — n_tracks","title":"Number of Tracks in a Track Table — n_tracks","text":"Track tables produced track_df can contain multiple tracks (e.g., different animals). function returns number tracks track table.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/n_tracks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Number of Tracks in a Track Table — n_tracks","text":"","code":"n_tracks(x)"},{"path":"https://swarm-lab.github.io/trackdf/reference/n_tracks.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Number of Tracks in a Track Table — n_tracks","text":"x track data table produced track_df.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/n_tracks.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Number of Tracks in a Track Table — n_tracks","text":"numeric value.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/n_tracks.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Number of Tracks in a Track Table — n_tracks","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/n_tracks.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Number of Tracks in a Track Table — n_tracks","text":"","code":"data(short_tracks) n_tracks(short_tracks) #> [1] 2"},{"path":"https://swarm-lab.github.io/trackdf/reference/projection.html","id":null,"dir":"Reference","previous_headings":"","what":"Access/Modify the Projection of a Track Table — projection","title":"Access/Modify the Projection of a Track Table — projection","text":"Functions access modify projection data table. Changing projection trigger automatically conversion locations new coordinate system.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/projection.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Access/Modify the Projection of a Track Table — projection","text":"","code":"projection(x) projection(x) <- value project(x, value)"},{"path":"https://swarm-lab.github.io/trackdf/reference/projection.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Access/Modify the Projection of a Track Table — projection","text":"x track table. value character string terra::crs object representing projection coordinates. \"+proj=longlat\" suitable outputs GPS trackers.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/projection.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Access/Modify the Projection of a Track Table — projection","text":"track table.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/projection.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Access/Modify the Projection of a Track Table — projection","text":"possible modify projection missing coordinates present.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/projection.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Access/Modify the Projection of a Track Table — projection","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/projection.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Access/Modify the Projection of a Track Table — projection","text":"","code":"data(short_tracks) projection(short_tracks) #> Coordinate Reference System: #> User input: +proj=longlat #> wkt: #> GEOGCRS[\"unknown\", #> DATUM[\"World Geodetic System 1984\", #> ELLIPSOID[\"WGS 84\",6378137,298.257223563, #> LENGTHUNIT[\"metre\",1]], #> ID[\"EPSG\",6326]], #> PRIMEM[\"Greenwich\",0, #> ANGLEUNIT[\"degree\",0.0174532925199433], #> ID[\"EPSG\",8901]], #> CS[ellipsoidal,2], #> AXIS[\"longitude\",east, #> ORDER[1], #> ANGLEUNIT[\"degree\",0.0174532925199433, #> ID[\"EPSG\",9122]]], #> AXIS[\"latitude\",north, #> ORDER[2], #> ANGLEUNIT[\"degree\",0.0174532925199433, #> ID[\"EPSG\",9122]]]] tracks_projected <- project(short_tracks, \"+proj=somerc\") projection(tracks_projected) #> Coordinate Reference System: #> User input: +proj=somerc #> wkt: #> PROJCRS[\"unknown\", #> BASEGEOGCRS[\"unknown\", #> DATUM[\"World Geodetic System 1984\", #> ELLIPSOID[\"WGS 84\",6378137,298.257223563, #> LENGTHUNIT[\"metre\",1]], #> ID[\"EPSG\",6326]], #> PRIMEM[\"Greenwich\",0, #> ANGLEUNIT[\"degree\",0.0174532925199433], #> ID[\"EPSG\",8901]]], #> CONVERSION[\"unknown\", #> METHOD[\"Hotine Oblique Mercator (variant B)\", #> ID[\"EPSG\",9815]], #> PARAMETER[\"Latitude of projection centre\",0, #> ANGLEUNIT[\"degree\",0.0174532925199433], #> ID[\"EPSG\",8811]], #> PARAMETER[\"Longitude of projection centre\",0, #> ANGLEUNIT[\"degree\",0.0174532925199433], #> ID[\"EPSG\",8812]], #> PARAMETER[\"Azimuth of initial line\",90, #> ANGLEUNIT[\"degree\",0.0174532925199433], #> ID[\"EPSG\",8813]], #> PARAMETER[\"Angle from Rectified to Skew Grid\",90, #> ANGLEUNIT[\"degree\",0.0174532925199433], #> ID[\"EPSG\",8814]], #> PARAMETER[\"Scale factor on initial line\",1, #> SCALEUNIT[\"unity\",1], #> ID[\"EPSG\",8815]], #> PARAMETER[\"Easting at projection centre\",0, #> LENGTHUNIT[\"metre\",1], #> ID[\"EPSG\",8816]], #> PARAMETER[\"Northing at projection centre\",0, #> LENGTHUNIT[\"metre\",1], #> ID[\"EPSG\",8817]]], #> CS[Cartesian,2], #> AXIS[\"(E)\",east, #> ORDER[1], #> LENGTHUNIT[\"metre\",1, #> ID[\"EPSG\",9001]]], #> AXIS[\"(N)\",north, #> ORDER[2], #> LENGTHUNIT[\"metre\",1, #> ID[\"EPSG\",9001]]]] projection(tracks_projected) <- \"+proj=longlat\" projection(tracks_projected) #> Coordinate Reference System: #> User input: +proj=longlat #> wkt: #> GEOGCRS[\"unknown\", #> DATUM[\"World Geodetic System 1984\", #> ELLIPSOID[\"WGS 84\",6378137,298.257223563, #> LENGTHUNIT[\"metre\",1]], #> ID[\"EPSG\",6326]], #> PRIMEM[\"Greenwich\",0, #> ANGLEUNIT[\"degree\",0.0174532925199433], #> ID[\"EPSG\",8901]], #> CS[ellipsoidal,2], #> AXIS[\"longitude\",east, #> ORDER[1], #> ANGLEUNIT[\"degree\",0.0174532925199433, #> ID[\"EPSG\",9122]]], #> AXIS[\"latitude\",north, #> ORDER[2], #> ANGLEUNIT[\"degree\",0.0174532925199433, #> ID[\"EPSG\",9122]]]]"},{"path":"https://swarm-lab.github.io/trackdf/reference/short_tracks.html","id":null,"dir":"Reference","previous_headings":"","what":"Trajectories of Two Goats Through the Namibian Desert (short version) — short_tracks","title":"Trajectories of Two Goats Through the Namibian Desert (short version) — short_tracks","text":"dataset containing trajectories two goats Namibian desert.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/short_tracks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Trajectories of Two Goats Through the Namibian Desert (short version) — short_tracks","text":"","code":"short_tracks"},{"path":"https://swarm-lab.github.io/trackdf/reference/short_tracks.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Trajectories of Two Goats Through the Namibian Desert (short version) — short_tracks","text":"track table 18 rows 4 variables: id Identity goat t Time observation x Longitude y Latitude","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/sub-.track.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract or Replace Parts of a Track Table — [.track","title":"Extract or Replace Parts of a Track Table — [.track","text":"Accessing columns, rows, cells via $, [[, [ mostly similar regular data frames. However, behavior sometimes different track tables based tibble data.table. info, refer tibble's data.table's subsetting documentation.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/sub-.track.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract or Replace Parts of a Track Table — [.track","text":"","code":"# S3 method for track [(x, ...) # S3 method for track [(x, ...) <- value"},{"path":"https://swarm-lab.github.io/trackdf/reference/sub-.track.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract or Replace Parts of a Track Table — [.track","text":"x track table. ... parameters passed extracting/subsetting functions data.frame, tibble, data.table. value suitable replacement value: repeated whole number times necessary may coerced: see `Coercion` section data.frame. `NULL`, deletes column single column selected.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/sub-.track.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract or Replace Parts of a Track Table — [.track","text":"subset track table [ called, modified version track table [<- called.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/sub-.track.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Extract or Replace Parts of a Track Table — [.track","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/sub-.track.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract or Replace Parts of a Track Table — [.track","text":"","code":"data(short_tracks) short_tracks[1] #> id #> 56 1 #> 57 1 #> 58 1 #> 59 1 #> 60 1 #> 61 1 #> 62 1 #> 63 1 #> 64 1 #> 65 1 #> 66 1 #> 67 1 #> 68 1 #> 69 1 #> 70 1 #> 71 1 #> 72 1 #> 73 1 #> 74 1 #> 75 1 #> 76 1 #> 77 1 #> 78 1 #> 79 1 #> 80 1 #> 81 1 #> 82 1 #> 83 1 #> 84 1 #> 85 1 #> 86 1 #> 87 1 #> 88 1 #> 89 1 #> 90 1 #> 91 1 #> 92 1 #> 93 1 #> 94 1 #> 95 1 #> 96 1 #> 97 1 #> 98 1 #> 99 1 #> 100 1 #> 101 1 #> 102 1 #> 103 1 #> 104 1 #> 105 1 #> 106 1 #> 107 1 #> 108 1 #> 109 1 #> 110 1 #> 111 1 #> 112 1 #> 113 1 #> 114 1 #> 115 1 #> 3656 2 #> 3657 2 #> 3658 2 #> 3659 2 #> 3660 2 #> 3661 2 #> 3662 2 #> 3663 2 #> 3664 2 #> 3665 2 #> 3666 2 #> 3667 2 #> 3668 2 #> 3669 2 #> 3670 2 #> 3671 2 #> 3672 2 #> 3673 2 #> 3674 2 #> 3675 2 #> 3676 2 #> 3677 2 #> 3678 2 #> 3679 2 #> 3680 2 #> 3681 2 #> 3682 2 #> 3683 2 #> 3684 2 #> 3685 2 #> 3686 2 #> 3687 2 #> 3688 2 #> 3689 2 #> 3690 2 #> 3691 2 #> 3692 2 #> 3693 2 #> 3694 2 #> 3695 2 #> 3696 2 #> 3697 2 #> 3698 2 #> 3699 2 #> 3700 2 #> 3701 2 #> 3702 2 #> 3703 2 #> 3704 2 #> 3705 2 #> 3706 2 #> 3707 2 #> 3708 2 #> 3709 2 #> 3710 2 #> 3711 2 #> 3712 2 #> 3713 2 #> 3714 2 #> 3715 2 short_tracks[1, ] #> Track table [1 observations] #> Number of tracks: 1 #> Dimensions: 2D #> Geographic: TRUE #> Projection: +proj=longlat #> Table class: data frame ('data.frame') #> id t x y #> 56 1 2015-09-10 07:01:00 15.76468 -22.37961 short_tracks[1, 1] #> [1] \"1\" short_tracks$id[short_tracks$id == \"1\"] <- \"0\" short_tracks[short_tracks[, 1] == \"0\", 1] <- \"1\""},{"path":"https://swarm-lab.github.io/trackdf/reference/track_.html","id":null,"dir":"Reference","previous_headings":"","what":"Build a Track Table — track_","title":"Build a Track Table — track_","text":"track constructs track tables based data.frame (default), tibble, data.table. track convenience function executes track_df, track_tbl, track_dt based value `table` parameter. Track tables can used like data structure build upon notable difference: extra attribute store projection track coordinates, modifying projection automatically trigger appropriate conversion coordinates.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/track_.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Build a Track Table — track_","text":"","code":"track(x, y, z, t, id, ..., proj, origin, period, tz, format, table = \"df\") track_df(x, y, z, t, id, ..., proj, origin, period, tz, format) track_tbl(x, y, z, t, id, ..., proj, origin, period, tz, format) track_dt(x, y, z, t, id, ..., proj, origin, period, tz, format)"},{"path":"https://swarm-lab.github.io/trackdf/reference/track_.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Build a Track Table — track_","text":"x, y, z Numeric vectors representing coordinates locations. x y required. z can ignored trajectories 2-dimensional. Note: vectors length, shorter ones recycled match length longer one. t numeric vector vector objects can coerced date-time objects as_datetime representing times (frames) location recorded. numeric, origin period time points can set using origin period . id vector can coerced character vector .character representing identity animal location belong. ... set name-value pairs. Arguments evaluated sequentially, can refer previously created elements. arguments processed rlang::quos() support unquote via !! unquote-splice via !!!. Use := create columns start dot. proj character string crs object (see st_crs information) representing projection coordinates. Leave empty coordinates projected (e.g., output video tracking). \"+proj=longlat\" suitable output GPS trackers. origin Something can coerced date-time object as_datetime representing start date time observations t numeric vector. period character vector shorthand format (e.g. \"1 second\") ISO 8601 specification. used t numeric vector represent time unit observations. unambiguous name units abbreviations supported, \"m\" stands months, \"M\" minutes unless ISO 8601 \"P\" modifier present (see examples). Fractional units supported fractional part always converted seconds. See period details. tz time zone name. See OlsonNames. format character string indicating formatting `t`. See strptime specify parameter. supplied parsing performed strptime(). reason consider using specialized parsing functions lubridate. table string indicating class table track table built. can data.frame (\"df\", default), tibble (\"tbl\"), data.table (\"dt\").","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/track_.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Build a Track Table — track_","text":"track table, colloquial term object class track.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/track_.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Build a Track Table — track_","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/track_.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Build a Track Table — track_","text":"","code":"data(short_tracks) t_df <- track(x = short_tracks$x, y = short_tracks$y, t = short_tracks$t, id = short_tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\", table = \"df\") t_df <- track_df(x = short_tracks$x, y = short_tracks$y, t = short_tracks$t, id = short_tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\") t_tbl <- track_tbl(x = short_tracks$x, y = short_tracks$y, t = short_tracks$t, id = short_tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\") t_dt <- track_dt(x = short_tracks$x, y = short_tracks$y, t = short_tracks$t, id = short_tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\")"},{"path":"https://swarm-lab.github.io/trackdf/reference/tracks.html","id":null,"dir":"Reference","previous_headings":"","what":"Trajectories of Two Goats Through the Namibian Desert — tracks","title":"Trajectories of Two Goats Through the Namibian Desert — tracks","text":"dataset containing trajectories two goats Namibian desert.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/tracks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Trajectories of Two Goats Through the Namibian Desert — tracks","text":"","code":"tracks"},{"path":"https://swarm-lab.github.io/trackdf/reference/tracks.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Trajectories of Two Goats Through the Namibian Desert — tracks","text":"track table 7194 rows 4 variables: id Identity goat t Time observation x Longitude y Latitude","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"trackdf-030","dir":"Changelog","previous_headings":"","what":"trackdf 0.3.0","title":"trackdf 0.3.0","text":"CRAN release: 2023-01-10","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"new-features-0-3-0","dir":"Changelog","previous_headings":"","what":"New features","title":"trackdf 0.3.0","text":"Adds error detection functions. Removes dplyr dependency (necessary anymore). Replaces sp sf handling projections.","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"minor-improvements-and-fixes-0-3-0","dir":"Changelog","previous_headings":"","what":"Minor improvements and fixes","title":"trackdf 0.3.0","text":"Cleans functions documentation.","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"trackdf-022","dir":"Changelog","previous_headings":"","what":"trackdf 0.2.2","title":"trackdf 0.2.2","text":"CRAN release: 2021-01-13","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"new-features-0-2-2","dir":"Changelog","previous_headings":"","what":"New features","title":"trackdf 0.2.2","text":"N/","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"minor-improvements-and-fixes-0-2-2","dir":"Changelog","previous_headings":"","what":"Minor improvements and fixes","title":"trackdf 0.2.2","text":"Fixes issue preventing adding 1 extra column creation track. Adds possibility provide date formatting creating track.","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"trackdf-021","dir":"Changelog","previous_headings":"","what":"trackdf 0.2.1","title":"trackdf 0.2.1","text":"CRAN release: 2019-08-04","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"new-features-0-2-1","dir":"Changelog","previous_headings":"","what":"New features","title":"trackdf 0.2.1","text":"N/","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"minor-improvements-and-fixes-0-2-1","dir":"Changelog","previous_headings":"","what":"Minor improvements and fixes","title":"trackdf 0.2.1","text":"Fixes examples vignettes run suggested packages present system.","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"trackdf-020","dir":"Changelog","previous_headings":"","what":"trackdf 0.2.0","title":"trackdf 0.2.0","text":"CRAN release: 2019-08-03","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"new-features-0-2-0","dir":"Changelog","previous_headings":"","what":"New features","title":"trackdf 0.2.0","text":"Package ready release CRAN.","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"minor-improvements-and-fixes-0-2-0","dir":"Changelog","previous_headings":"","what":"Minor improvements and fixes","title":"trackdf 0.2.0","text":"N/","code":""}]
+[{"path":"https://swarm-lab.github.io/trackdf/articles/z1_install.html","id":"from-cran","dir":"Articles","previous_headings":"","what":"1.1 - From CRAN","title":"1 - Installing trackdf","text":"trackdf available directly CRAN can installed follows:","code":"install.packages(\"trackdf\")"},{"path":"https://swarm-lab.github.io/trackdf/articles/z1_install.html","id":"development-version","dir":"Articles","previous_headings":"","what":"1.2 - Development version","title":"1 - Installing trackdf","text":"’re looking install latest development version trackdf (newest features also potentially breaking changes), can follows:","code":"if (requireNamespace(\"remotes\", quietly = TRUE)) { remotes::install_github(\"swarm-lab/trackdf\") }"},{"path":"https://swarm-lab.github.io/trackdf/articles/z2_build.html","id":"anatomy-of-a-track-table","dir":"Articles","previous_headings":"","what":"2.1 - Anatomy of a track table","title":"2 - Building a track table","text":"core, track table just wrapper around data frame structure, defined one three main data frame classes R: base::data.frame, tibble::tibble, data.table::data.table. choice data frame class used underneath track table entirely choice depends preference one framework. trackdf remember choice best maintain throughout data analysis pipeline. track table specialized version data frame structure aimed storing specifically tracking data, positions time, one individuals. order , trackdf imposes constraints construction track table traditional data frame. First, track table must least 4 following named columns: id: contains identity individual tracked character strings; t: contains time observation date-time POSIXct objects; x y: contains positions numeric values observations along axes Euclidean space (e.g., GPS coordinates pixel coordinates outputted video-tracking software); z: optional column similar x y can used case 3-dimensional trajectories. can add many columns want store data relevant work 4 columns (+ optional z columns) required track table object. addition columns, track table contains two additional attributes necessary certain functions package: proj: contains information coordinate reference system coordinates projected. mostly useful geographic data captured GPS units, instance. trackdf can use information automatically reproject data coordinate reference systems, instance working GIS data. video-tracking data tracking systems output geographic data, can set NA. type: contains information class data frame stored track table object. mostly required maintaining data frame class track table object manipulated using dplyr’s functions. ’s mostly irrelevant user’s point view. Sounds complicated? Don’t worry, trackdf provides function build track tables just little bit input . See rest vignette .","code":""},{"path":"https://swarm-lab.github.io/trackdf/articles/z2_build.html","id":"building-a-track-table-from-video-tracking-data","dir":"Articles","previous_headings":"","what":"2.2 - Building a track table from video-tracking data","title":"2 - Building a track table","text":"video-tracking software generate outputs information identity tracked individual, position form Euclidean space (using pixel coordinates coordinates relative dimensions experimental setup), time observation (e.g., frame number video). can also contain forms information relevant work also see import track table. First, let’s load data generated using trackR video-tracking software: data frame contains 8 columns. positions stored x y columns pixel coordinates. Time store frame column frame number video data collected . identity tracked individual stored track_fixed (track column contains identities manual inspection correction; id can ignored purpose tutorial). raw data, can create track table using track function follows: track outputs warnings, related time component provided . Indeed, provided frame numbers track doesn’t know convert date-time POSIXct objects , therefore, defaulted using now start experiment, UTC time zone, 1 second time two consecutive observations. can, however, help track provided missing information origin (start experiment), tz (time zone), period (time two successive observations) parameter function: like include track table additional data contained raw data, simple adding extra columns creating data frames. instance, let’s include ignore data raw data set: Finally, track default using base::data.frame data frame class storing data. prefer work tibble::tibble data.table::data.table, can specify track function follows. tibble::tibble: data.table::data.table:","code":"raw <- read.csv(system.file(\"extdata/video/01.csv\", package = \"trackdf\")) print(raw, max = 10 * ncol(raw)) ## id x y size frame track ignore track_fixed ## 1 1 629.3839 882.4783 1154 1 1 FALSE 1 ## 2 2 1056.1692 656.5207 1064 1 2 FALSE 2 ## 3 3 508.0092 375.2451 1624 1 3 FALSE 3 ## 4 4 1277.6466 373.7491 1443 1 4 FALSE 4 ## 5 5 1379.2844 343.0853 1431 1 5 FALSE 5 ## 6 6 1137.1378 174.5110 1321 1 6 FALSE 6 ## 7 7 737.1931 115.9394 1419 1 7 FALSE 7 ## 8 8 921.8634 103.3508 1237 1 8 FALSE 8 ## 9 1 629.4024 882.4129 1148 2 1 FALSE 1 ## 10 2 1056.1704 656.4691 1068 2 2 FALSE 2 ## [ reached 'max' / getOption(\"max.print\") -- omitted 21972 rows ] library(trackdf) ## ## Attaching package: 'trackdf' ## The following object is masked from 'package:stats': ## ## filter tt <- track(x = raw$x, y = raw$y, t = raw$frame, id = raw$track_fixed) ## No timezone provided. Defaulting to UTC. ## No origin provided. Defaulting to Sys.time(). ## No period provided. Defaulting to 1 second. print(tt, max = 10 * ncol(tt)) ## Track table [21982 observations] ## Number of tracks: 81 ## Dimensions: 2D ## Geographic: FALSE ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2023-01-16 19:02:59 629.3839 882.4783 ## 2 2 2023-01-16 19:02:59 1056.1692 656.5207 ## 3 3 2023-01-16 19:02:59 508.0092 375.2451 ## 4 4 2023-01-16 19:02:59 1277.6466 373.7491 ## 5 5 2023-01-16 19:02:59 1379.2844 343.0853 ## 6 6 2023-01-16 19:02:59 1137.1378 174.5110 ## 7 7 2023-01-16 19:02:59 737.1931 115.9394 ## 8 8 2023-01-16 19:02:59 921.8634 103.3508 ## 9 1 2023-01-16 19:03:00 629.4024 882.4129 ## 10 2 2023-01-16 19:03:00 1056.1704 656.4691 ## [ reached 'max' / getOption(\"max.print\") -- omitted 21972 rows ] tt <- track(x = raw$x, y = raw$y, t = raw$frame, id = raw$track_fixed, origin = \"2019-03-24 12:55:23\", period = \"0.04S\", # 1/25 of a second tz = \"America/New_York\") print(tt, max = 10 * ncol(tt)) ## Track table [21982 observations] ## Number of tracks: 81 ## Dimensions: 2D ## Geographic: FALSE ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2019-03-24 12:55:23 629.3839 882.4783 ## 2 2 2019-03-24 12:55:23 1056.1692 656.5207 ## 3 3 2019-03-24 12:55:23 508.0092 375.2451 ## 4 4 2019-03-24 12:55:23 1277.6466 373.7491 ## 5 5 2019-03-24 12:55:23 1379.2844 343.0853 ## 6 6 2019-03-24 12:55:23 1137.1378 174.5110 ## 7 7 2019-03-24 12:55:23 737.1931 115.9394 ## 8 8 2019-03-24 12:55:23 921.8634 103.3508 ## 9 1 2019-03-24 12:55:23 629.4024 882.4129 ## 10 2 2019-03-24 12:55:23 1056.1704 656.4691 ## [ reached 'max' / getOption(\"max.print\") -- omitted 21972 rows ] tt <- track(x = raw$x, y = raw$y, t = raw$frame, id = raw$track_fixed, ignore = raw$ignore, origin = \"2019-03-24 12:55:23\", period = \"0.04S\", # 1/25 of a second tz = \"America/New_York\") print(tt, max = 10 * ncol(tt)) ## Track table [21982 observations] ## Number of tracks: 81 ## Dimensions: 2D ## Geographic: FALSE ## Table class: data frame ('data.frame') ## id t x y ignore ## 1 1 2019-03-24 12:55:23 629.3839 882.4783 FALSE ## 2 2 2019-03-24 12:55:23 1056.1692 656.5207 FALSE ## 3 3 2019-03-24 12:55:23 508.0092 375.2451 FALSE ## 4 4 2019-03-24 12:55:23 1277.6466 373.7491 FALSE ## 5 5 2019-03-24 12:55:23 1379.2844 343.0853 FALSE ## 6 6 2019-03-24 12:55:23 1137.1378 174.5110 FALSE ## 7 7 2019-03-24 12:55:23 737.1931 115.9394 FALSE ## 8 8 2019-03-24 12:55:23 921.8634 103.3508 FALSE ## 9 1 2019-03-24 12:55:23 629.4024 882.4129 FALSE ## 10 2 2019-03-24 12:55:23 1056.1704 656.4691 FALSE ## [ reached 'max' / getOption(\"max.print\") -- omitted 21972 rows ] tt <- track(x = raw$x, y = raw$y, t = raw$frame, id = raw$track_fixed, ignore = raw$ignore, origin = \"2019-03-24 12:55:23\", period = \"0.04S\", # 1/25 of a second tz = \"America/New_York\", table = \"tbl\") print(tt) ## Track table [21982 observations] ## Number of tracks: 81 ## Dimensions: 2D ## Geographic: FALSE ## Table class: tibble ('tbl_df') ## # A tibble: 21,982 × 5 ## id t x y ignore ## ## 1 1 2019-03-24 12:55:23 629. 882. FALSE ## 2 2 2019-03-24 12:55:23 1056. 657. FALSE ## 3 3 2019-03-24 12:55:23 508. 375. FALSE ## 4 4 2019-03-24 12:55:23 1278. 374. FALSE ## 5 5 2019-03-24 12:55:23 1379. 343. FALSE ## 6 6 2019-03-24 12:55:23 1137. 175. FALSE ## 7 7 2019-03-24 12:55:23 737. 116. FALSE ## 8 8 2019-03-24 12:55:23 922. 103. FALSE ## 9 1 2019-03-24 12:55:23 629. 882. FALSE ## 10 2 2019-03-24 12:55:23 1056. 656. FALSE ## # … with 21,972 more rows tt <- track(x = raw$x, y = raw$y, t = raw$frame, id = raw$track_fixed, ignore = raw$ignore, origin = \"2019-03-24 12:55:23\", period = \"0.04S\", # 1/25 of a second tz = \"America/New_York\", table = \"dt\") print(tt) ## Track table [21982 observations] ## Number of tracks: 81 ## Dimensions: 2D ## Geographic: FALSE ## Table class: data table ('data.table') ## id t x y ignore ## 1: 1 2019-03-24 12:55:23 629.3839 882.4783 FALSE ## 2: 2 2019-03-24 12:55:23 1056.1692 656.5207 FALSE ## 3: 3 2019-03-24 12:55:23 508.0092 375.2451 FALSE ## 4: 4 2019-03-24 12:55:23 1277.6466 373.7491 FALSE ## 5: 5 2019-03-24 12:55:23 1379.2844 343.0853 FALSE ## --- ## 21978: 82 2019-03-24 12:57:15 580.7614 587.2513 FALSE ## 21979: 34 2019-03-24 12:57:15 493.5477 529.5454 FALSE ## 21980: 47 2019-03-24 12:57:15 498.8001 432.5990 FALSE ## 21981: 58 2019-03-24 12:57:15 562.6123 266.9754 FALSE ## 21982: 67 2019-03-24 12:57:15 1046.3904 146.4723 FALSE"},{"path":"https://swarm-lab.github.io/trackdf/articles/z2_build.html","id":"building-a-track-table-from-gps-data","dir":"Articles","previous_headings":"","what":"2.3 - Building a track table from GPS data","title":"2 - Building a track table","text":"Building track table geographic data follows similar principles, except track also expect receive information coordinate reference system data using. can pass information track using proj parameter function. first, let’s load data generated GPS collar worn goat Namibia: track uses sf::st_crs interpret information coordinate reference systems. Therefore, format accepted sf::st_crs specify coordinate reference system can used track. data generated using GPS units, character string “+proj=longlat” often ’s needed. can create GPS-based track table follows: Note raw data already contains dates times observations, can simply combine paste pass result track interpret automatically. Everything else works similarly shown previous section video-tracking data. tutorial manipulating data stored track table provided separate vignette.","code":"raw <- read.csv(system.file(\"extdata/gps/02.csv\", package = \"trackdf\")) print(raw, max = 10 * ncol(raw)) ## date time lon lat ## 1 2015-09-10 07:00:00 15.76459 -22.37971 ## 2 2015-09-10 07:00:01 15.76459 -22.37971 ## 3 2015-09-10 07:00:02 15.76459 -22.37971 ## 4 2015-09-10 07:00:03 15.76459 -22.37971 ## 5 2015-09-10 07:00:04 15.76459 -22.37971 ## 6 2015-09-10 07:00:05 15.76459 -22.37971 ## 7 2015-09-10 07:00:06 15.76459 -22.37971 ## 8 2015-09-10 07:00:07 15.76459 -22.37971 ## 9 2015-09-10 07:00:08 15.76459 -22.37971 ## 10 2015-09-10 07:00:09 15.76459 -22.37971 ## [ reached 'max' / getOption(\"max.print\") -- omitted 3590 rows ] tt <- track(x = raw$lon, y = raw$lat, t = paste(raw$date, raw$time), id = 1, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\") print(tt, max = 10 * ncol(tt)) ## Track table [3600 observations] ## Number of tracks: 1 ## Dimensions: 2D ## Geographic: TRUE ## Projection: +proj=longlat ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2015-09-10 07:00:00 15.76459 -22.37971 ## 2 1 2015-09-10 07:00:01 15.76459 -22.37971 ## 3 1 2015-09-10 07:00:02 15.76459 -22.37971 ## 4 1 2015-09-10 07:00:03 15.76459 -22.37971 ## 5 1 2015-09-10 07:00:04 15.76459 -22.37971 ## 6 1 2015-09-10 07:00:05 15.76459 -22.37971 ## 7 1 2015-09-10 07:00:06 15.76459 -22.37971 ## 8 1 2015-09-10 07:00:07 15.76459 -22.37971 ## 9 1 2015-09-10 07:00:08 15.76459 -22.37971 ## 10 1 2015-09-10 07:00:09 15.76459 -22.37971 ## [ reached 'max' / getOption(\"max.print\") -- omitted 3590 rows ]"},{"path":"https://swarm-lab.github.io/trackdf/articles/z3_manipulate.html","id":"basic-information-about-the-track-table","dir":"Articles","previous_headings":"","what":"3.1 - Basic information about the track table","title":"3 - Manipulating a track table","text":"addition usual information can ask data frame (e.g., number rows columns, class column, etc), can access additional information content track table. First, can check whether object indeed track table follows: can also check whether track table contains geographic coordinates follows: can find number different tracks included track table follows: Finally, can retrieve dimensionality (2D 3D) track table follows:","code":"is_track(tracks) ## [1] TRUE is_geo(tracks) ## [1] TRUE n_tracks(tracks) ## [1] 2 n_dims(tracks) ## [1] 2"},{"path":"https://swarm-lab.github.io/trackdf/articles/z3_manipulate.html","id":"accessing-data","dir":"Articles","previous_headings":"","what":"3.2 - Accessing data","title":"3 - Manipulating a track table","text":"Accessing modifying different parts (rows, columns, elements) track table similar accessing modifying different parts underlying data frame. , therefore, discuss topic something already familar . Note, however, different data frame classes may thing slightly differently . Make sure know class used track tables working . instance, track table loaded tutorial class data.frame, indicated 6th line print track table:","code":"print(tracks, max = 10 * ncol(tracks)) ## Track table [7195 observations] ## Number of tracks: 2 ## Dimensions: 2D ## Geographic: TRUE ## Projection: +proj=longlat ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2015-09-10 07:00:00 15.76468 -22.37957 ## 2 1 2015-09-10 07:00:01 15.76468 -22.37957 ## 3 1 2015-09-10 07:00:04 15.76468 -22.37958 ## 4 1 2015-09-10 07:00:05 15.76468 -22.37958 ## 5 1 2015-09-10 07:00:08 15.76467 -22.37959 ## 6 1 2015-09-10 07:00:09 15.76467 -22.37959 ## 7 1 2015-09-10 07:00:09 15.76467 -22.37959 ## 8 1 2015-09-10 07:00:10 15.76467 -22.37959 ## 9 1 2015-09-10 07:00:11 15.76467 -22.37959 ## 10 1 2015-09-10 07:00:12 15.76467 -22.37959 ## [ reached 'max' / getOption(\"max.print\") -- omitted 7185 rows ]"},{"path":"https://swarm-lab.github.io/trackdf/articles/z3_manipulate.html","id":"accessing-the-projection-information-of-a-track-table","dir":"Articles","previous_headings":"","what":"3.3 - Accessing the projection information of a track table","title":"3 - Manipulating a track table","text":"One particularity track tables regular data frames can store geographic data explicitly perform projection operations change coordinate reference system necessary. order access coordinate reference system (projection) track table containing geographic data, simply need execute following command: returns object class crs list consisting input object (usually character string entered track proj parameter), wkt object automatically generated WKT 2 representation coordinate reference system. can modify place projection track table follows. automatically convert x y coordinates contained track table appropriate projection system: back original projection: prefer modify original object, can create new one new projection using theproject function follows:","code":"projection(tracks) ## Coordinate Reference System: ## User input: +proj=longlat ## wkt: ## GEOGCRS[\"unknown\", ## DATUM[\"World Geodetic System 1984\", ## ELLIPSOID[\"WGS 84\",6378137,298.257223563, ## LENGTHUNIT[\"metre\",1]], ## ID[\"EPSG\",6326]], ## PRIMEM[\"Greenwich\",0, ## ANGLEUNIT[\"degree\",0.0174532925199433], ## ID[\"EPSG\",8901]], ## CS[ellipsoidal,2], ## AXIS[\"longitude\",east, ## ORDER[1], ## ANGLEUNIT[\"degree\",0.0174532925199433, ## ID[\"EPSG\",9122]]], ## AXIS[\"latitude\",north, ## ORDER[2], ## ANGLEUNIT[\"degree\",0.0174532925199433, ## ID[\"EPSG\",9122]]]] projection(tracks) <- \"+proj=somerc +lat_0=46.9524056 +lon_0=7.43958333 +ellps=bessel +x_0=2600000 +y_0=1200000 +towgs84=674.374,15.056,405.346 +units=m +k_0=1 +no_defs\" print(tracks, max = 10 * ncol(tracks)) ## Track table [7195 observations] ## Number of tracks: 2 ## Dimensions: 2D ## Geographic: TRUE ## Projection: +proj=somerc +lat_0=46.9524056 +lon_0=7.43958333 +ellps=bessel +x_0=2600000 +y_0=1200000 +towgs84=674.374,15.056,405.346 +units=m +k_0=1 +no_defs ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2015-09-10 07:00:00 4927487 -9217299 ## 2 1 2015-09-10 07:00:01 4927487 -9217299 ## 3 1 2015-09-10 07:00:04 4927487 -9217301 ## 4 1 2015-09-10 07:00:05 4927487 -9217302 ## 5 1 2015-09-10 07:00:08 4927486 -9217304 ## 6 1 2015-09-10 07:00:09 4927485 -9217305 ## 7 1 2015-09-10 07:00:09 4927485 -9217305 ## 8 1 2015-09-10 07:00:10 4927485 -9217306 ## 9 1 2015-09-10 07:00:11 4927485 -9217306 ## 10 1 2015-09-10 07:00:12 4927485 -9217306 ## [ reached 'max' / getOption(\"max.print\") -- omitted 7185 rows ] projection(tracks) <- \"+proj=longlat\" print(tracks, max = 10 * ncol(tracks)) ## Track table [7195 observations] ## Number of tracks: 2 ## Dimensions: 2D ## Geographic: TRUE ## Projection: +proj=longlat ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2015-09-10 07:00:00 15.76468 -22.37957 ## 2 1 2015-09-10 07:00:01 15.76468 -22.37957 ## 3 1 2015-09-10 07:00:04 15.76468 -22.37958 ## 4 1 2015-09-10 07:00:05 15.76468 -22.37958 ## 5 1 2015-09-10 07:00:08 15.76467 -22.37959 ## 6 1 2015-09-10 07:00:09 15.76467 -22.37959 ## 7 1 2015-09-10 07:00:09 15.76467 -22.37959 ## 8 1 2015-09-10 07:00:10 15.76466 -22.37959 ## 9 1 2015-09-10 07:00:11 15.76466 -22.37959 ## 10 1 2015-09-10 07:00:12 15.76466 -22.37959 ## [ reached 'max' / getOption(\"max.print\") -- omitted 7185 rows ] tracks_somerc <- project(tracks, \"+proj=somerc +lat_0=46.9524056 +lon_0=7.43958333 +ellps=bessel +x_0=2600000 +y_0=1200000 +towgs84=674.374,15.056,405.346 +units=m +k_0=1 +no_defs\") print(tracks_somerc, max = 10 * ncol(tracks)) ## Track table [7195 observations] ## Number of tracks: 2 ## Dimensions: 2D ## Geographic: TRUE ## Projection: +proj=somerc +lat_0=46.9524056 +lon_0=7.43958333 +ellps=bessel +x_0=2600000 +y_0=1200000 +towgs84=674.374,15.056,405.346 +units=m +k_0=1 +no_defs ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2015-09-10 07:00:00 4927487 -9217299 ## 2 1 2015-09-10 07:00:01 4927487 -9217299 ## 3 1 2015-09-10 07:00:04 4927487 -9217301 ## 4 1 2015-09-10 07:00:05 4927487 -9217302 ## 5 1 2015-09-10 07:00:08 4927486 -9217304 ## 6 1 2015-09-10 07:00:09 4927485 -9217305 ## 7 1 2015-09-10 07:00:09 4927485 -9217305 ## 8 1 2015-09-10 07:00:10 4927485 -9217306 ## 9 1 2015-09-10 07:00:11 4927485 -9217306 ## 10 1 2015-09-10 07:00:12 4927485 -9217306 ## [ reached 'max' / getOption(\"max.print\") -- omitted 7185 rows ]"},{"path":"https://swarm-lab.github.io/trackdf/articles/z3_manipulate.html","id":"combining-track-tables","dir":"Articles","previous_headings":"","what":"3.4 - Combining track tables","title":"3 - Manipulating a track table","text":"Combining track tables requires bit caution. Indeed, traditional methods combine data frames (e.g., base::rbind, data.table::rbindlist, dplyr::bind_rows) successfully bind together multiple track tables check whether track tables compatible . instance, check coordinates using coordinate reference system time stamps time zone. order ensure different track tables can combined without creating problems analysis pipeline, trackdf provides method bind multiple track tables together: bind_tracks. demonstrate bind_tracks works, let’s first create 3 track tables, 2 compatible , 1 . try combine 3 track tables using bind_tracks, error thrown let know compatible : Compare happens one traditional binding methods: , tracks tables combined despite different coordinate reference systems time zones. Using bind_tracks instead ensures happen.","code":"raw1 <- read.csv(system.file(\"extdata/gps/02.csv\", package = \"trackdf\")) raw2 <- read.csv(system.file(\"extdata/gps/03.csv\", package = \"trackdf\")) raw3 <- read.csv(system.file(\"extdata/video/01.csv\", package = \"trackdf\")) track1 <- track(x = raw1$lon, y = raw1$lat, t = paste(raw1$date, raw1$time), id = 1, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\") track2 <- track(x = raw2$lon, y = raw2$lat, t = paste(raw2$date, raw2$time), id = 2, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\") track3 <- track(x = raw3$x, y = raw3$y, t = raw3$frame, id = raw3$track_fixed, origin = \"2019-03-24 12:55:23\", period = \"0.04S\", tz = \"America/New_York\") bounded_tracks <- bind_tracks(track1, track2, track3) ## Error in bind_tracks(track1, track2, track3): All track tables should have the same projection. bounded_tracks <- rbind(track1, track2, track3) print(bounded_tracks, max = 10 * ncol(bounded_tracks)) ## Track table [29182 observations] ## Number of tracks: 81 ## Dimensions: 2D ## Geographic: TRUE ## Projection: +proj=longlat ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2015-09-10 07:00:00 15.76459 -22.37971 ## 2 1 2015-09-10 07:00:01 15.76459 -22.37971 ## 3 1 2015-09-10 07:00:02 15.76459 -22.37971 ## 4 1 2015-09-10 07:00:03 15.76459 -22.37971 ## 5 1 2015-09-10 07:00:04 15.76459 -22.37971 ## 6 1 2015-09-10 07:00:05 15.76459 -22.37971 ## 7 1 2015-09-10 07:00:06 15.76459 -22.37971 ## 8 1 2015-09-10 07:00:07 15.76459 -22.37971 ## 9 1 2015-09-10 07:00:08 15.76459 -22.37971 ## 10 1 2015-09-10 07:00:09 15.76459 -22.37971 ## [ reached 'max' / getOption(\"max.print\") -- omitted 29172 rows ]"},{"path":"https://swarm-lab.github.io/trackdf/articles/z3_manipulate.html","id":"tidyverse","dir":"Articles","previous_headings":"","what":"3.5 - Tidyverse","title":"3 - Manipulating a track table","text":"Track tables compatible () functions “tidyverse”. instance, can use dplyr verbs filter, mutate, group, etc., track table, way tibble::tibble base::data.frame. long result operation applying track table affect fundamental structure (see vignette “Building track table”), output get remain track table specific attributes. instance, filter track table keep observations 2 specific time stamps:","code":"library(dplyr) ## ## Attaching package: 'dplyr' ## The following objects are masked from 'package:stats': ## ## filter, lag ## The following objects are masked from 'package:base': ## ## intersect, setdiff, setequal, union filtered_tracks <- tracks %>% filter(., t >= as.POSIXct(\"2015-09-10 07:01:00\", tz = \"Africa/Windhoek\"), t <= as.POSIXct(\"2015-09-10 07:11:00 CAT\", tz = \"Africa/Windhoek\")) print(filtered_tracks, max = 10 * ncol(filtered_tracks)) ## Track table [1202 observations] ## Number of tracks: 2 ## Dimensions: 2D ## Geographic: TRUE ## Projection: +proj=longlat ## Table class: data frame ('data.frame') ## id t x y ## 1 1 2015-09-10 07:01:00 15.76468 -22.37961 ## 2 1 2015-09-10 07:01:01 15.76469 -22.37960 ## 3 1 2015-09-10 07:01:02 15.76469 -22.37960 ## 4 1 2015-09-10 07:01:03 15.76469 -22.37960 ## 5 1 2015-09-10 07:01:04 15.76470 -22.37960 ## 6 1 2015-09-10 07:01:05 15.76469 -22.37960 ## 7 1 2015-09-10 07:01:06 15.76469 -22.37960 ## 8 1 2015-09-10 07:01:07 15.76469 -22.37959 ## 9 1 2015-09-10 07:01:08 15.76469 -22.37959 ## 10 1 2015-09-10 07:01:09 15.76469 -22.37959 ## [ reached 'max' / getOption(\"max.print\") -- omitted 1192 rows ]"},{"path":"https://swarm-lab.github.io/trackdf/articles/z3_manipulate.html","id":"plotting","dir":"Articles","previous_headings":"","what":"3.6 - Plotting","title":"3 - Manipulating a track table","text":"can use plotting method accepting data frame class represent data track table. example using ggplot2:","code":"library(ggplot2) ggplot(data = tracks) + aes(x = x, y = y, color = id) + geom_path() + coord_map()"},{"path":"https://swarm-lab.github.io/trackdf/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Simon Garnier. Author, maintainer.","code":""},{"path":"https://swarm-lab.github.io/trackdf/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Garnier S (2023). trackdf: Data Frame Class Tracking Data. https://swarm-lab.github.io/trackdf/, https://github.com/swarm-lab/trackdf.","code":"@Manual{, title = {trackdf: Data Frame Class for Tracking Data}, author = {Simon Garnier}, year = {2023}, note = {https://swarm-lab.github.io/trackdf/, https://github.com/swarm-lab/trackdf}, }"},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/index.html","id":"description","dir":"","previous_headings":"","what":"Description","title":"Data Frame Class for Tracking Data","text":"trackdf R package aims standardize accelerate processing data describing animal trajectories captured lab (e.g., video tracking) field (e.g., GPS trackers). trackdf provides data frame-like class based popular tibble class compatible base R functions tidyverse (e.g., dplyr, ggplot2). trackdf work progress. Functions yet stable state likely change package gets developed.","code":""},{"path":"https://swarm-lab.github.io/trackdf/index.html","id":"quick-start-guides","dir":"","previous_headings":"","what":"Quick start guides","title":"Data Frame Class for Tracking Data","text":"1 - Installing trackdf 2 - Building track table 3 - Manipulating track table","code":""},{"path":"https://swarm-lab.github.io/trackdf/index.html","id":"faq","dir":"","previous_headings":"","what":"FAQ","title":"Data Frame Class for Tracking Data","text":"can help? trackdf open-source project, meaning can freely modify code implement new functionalities. coding skills, welcome contribute new code code improvement submitting pull requests GitHub repository project : https://github.com/swarm-lab/trackdf. best review integrate quickly. feel like contributing code, can also help submitting bug reports feature requests using issue tracker GitHub repository project : https://github.com/swarm-lab/trackdf/issues. extremely helpful catch correct errors code, guide development trackdf integrating functionalities requested community.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/bind_tracks.html","id":null,"dir":"Reference","previous_headings":"","what":"Bind Multiple Track Tables by Row — bind_tracks","title":"Bind Multiple Track Tables by Row — bind_tracks","text":"bind_tracks uses data.table::rbindlist combine track tables rows, makes sure bind together two tables different projections time zones, projection attribute inherited resulting track table, track tables based different table classes coerced table class.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/bind_tracks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Bind Multiple Track Tables by Row — bind_tracks","text":"","code":"bind_tracks(...)"},{"path":"https://swarm-lab.github.io/trackdf/reference/bind_tracks.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Bind Multiple Track Tables by Row — bind_tracks","text":"... list containing track table objects, names track table objects separated commas. track tables must projection time zone.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/bind_tracks.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Bind Multiple Track Tables by Row — bind_tracks","text":"track table.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/bind_tracks.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Bind Multiple Track Tables by Row — bind_tracks","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/bind_tracks.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Bind Multiple Track Tables by Row — bind_tracks","text":"","code":"data(short_tracks) bind_tracks(short_tracks, short_tracks) #> Track table [240 observations] #> Number of tracks: 2 #> Dimensions: 2D #> Geographic: TRUE #> Projection: +proj=longlat #> Table class: data frame ('data.frame') #> id t x y #> 1 1 2015-09-10 07:01:00 15.76468 -22.37961 #> 2 1 2015-09-10 07:01:01 15.76469 -22.37960 #> 3 1 2015-09-10 07:01:02 15.76469 -22.37960 #> 4 1 2015-09-10 07:01:03 15.76469 -22.37960 #> 5 1 2015-09-10 07:01:04 15.76470 -22.37960 #> 6 1 2015-09-10 07:01:05 15.76469 -22.37960 #> 7 1 2015-09-10 07:01:06 15.76469 -22.37960 #> 8 1 2015-09-10 07:01:07 15.76469 -22.37959 #> 9 1 2015-09-10 07:01:08 15.76469 -22.37959 #> 10 1 2015-09-10 07:01:09 15.76469 -22.37959 #> 11 1 2015-09-10 07:01:10 15.76469 -22.37959 #> 12 1 2015-09-10 07:01:11 15.76469 -22.37960 #> 13 1 2015-09-10 07:01:12 15.76469 -22.37960 #> 14 1 2015-09-10 07:01:13 15.76469 -22.37960 #> 15 1 2015-09-10 07:01:14 15.76469 -22.37960 #> 16 1 2015-09-10 07:01:15 15.76468 -22.37960 #> 17 1 2015-09-10 07:01:16 15.76468 -22.37960 #> 18 1 2015-09-10 07:01:17 15.76468 -22.37960 #> 19 1 2015-09-10 07:01:18 15.76468 -22.37960 #> 20 1 2015-09-10 07:01:19 15.76468 -22.37960 #> 21 1 2015-09-10 07:01:20 15.76468 -22.37960 #> 22 1 2015-09-10 07:01:21 15.76468 -22.37960 #> 23 1 2015-09-10 07:01:22 15.76468 -22.37960 #> 24 1 2015-09-10 07:01:23 15.76468 -22.37960 #> 25 1 2015-09-10 07:01:24 15.76468 -22.37960 #> 26 1 2015-09-10 07:01:25 15.76468 -22.37960 #> 27 1 2015-09-10 07:01:26 15.76468 -22.37960 #> 28 1 2015-09-10 07:01:27 15.76468 -22.37960 #> 29 1 2015-09-10 07:01:28 15.76468 -22.37960 #> 30 1 2015-09-10 07:01:29 15.76468 -22.37960 #> 31 1 2015-09-10 07:01:30 15.76468 -22.37960 #> 32 1 2015-09-10 07:01:31 15.76468 -22.37960 #> 33 1 2015-09-10 07:01:32 15.76469 -22.37960 #> 34 1 2015-09-10 07:01:33 15.76469 -22.37960 #> 35 1 2015-09-10 07:01:34 15.76469 -22.37960 #> 36 1 2015-09-10 07:01:35 15.76469 -22.37960 #> 37 1 2015-09-10 07:01:36 15.76469 -22.37960 #> 38 1 2015-09-10 07:01:37 15.76469 -22.37960 #> 39 1 2015-09-10 07:01:38 15.76469 -22.37960 #> 40 1 2015-09-10 07:01:39 15.76469 -22.37960 #> 41 1 2015-09-10 07:01:40 15.76469 -22.37960 #> 42 1 2015-09-10 07:01:41 15.76469 -22.37960 #> 43 1 2015-09-10 07:01:42 15.76469 -22.37960 #> 44 1 2015-09-10 07:01:43 15.76469 -22.37960 #> 45 1 2015-09-10 07:01:44 15.76469 -22.37960 #> 46 1 2015-09-10 07:01:45 15.76469 -22.37960 #> 47 1 2015-09-10 07:01:46 15.76469 -22.37960 #> 48 1 2015-09-10 07:01:47 15.76469 -22.37960 #> 49 1 2015-09-10 07:01:48 15.76469 -22.37960 #> 50 1 2015-09-10 07:01:49 15.76469 -22.37959 #> 51 1 2015-09-10 07:01:50 15.76469 -22.37959 #> 52 1 2015-09-10 07:01:51 15.76470 -22.37959 #> 53 1 2015-09-10 07:01:52 15.76470 -22.37959 #> 54 1 2015-09-10 07:01:53 15.76470 -22.37959 #> 55 1 2015-09-10 07:01:54 15.76470 -22.37960 #> 56 1 2015-09-10 07:01:55 15.76470 -22.37960 #> 57 1 2015-09-10 07:01:56 15.76471 -22.37960 #> 58 1 2015-09-10 07:01:57 15.76471 -22.37959 #> 59 1 2015-09-10 07:01:58 15.76471 -22.37959 #> 60 1 2015-09-10 07:01:59 15.76471 -22.37959 #> 61 2 2015-09-10 07:01:00 15.76459 -22.37971 #> 62 2 2015-09-10 07:01:01 15.76459 -22.37971 #> 63 2 2015-09-10 07:01:02 15.76459 -22.37971 #> 64 2 2015-09-10 07:01:03 15.76459 -22.37971 #> 65 2 2015-09-10 07:01:04 15.76459 -22.37971 #> 66 2 2015-09-10 07:01:05 15.76459 -22.37971 #> 67 2 2015-09-10 07:01:06 15.76459 -22.37971 #> 68 2 2015-09-10 07:01:07 15.76459 -22.37971 #> 69 2 2015-09-10 07:01:08 15.76459 -22.37971 #> 70 2 2015-09-10 07:01:09 15.76459 -22.37971 #> 71 2 2015-09-10 07:01:10 15.76459 -22.37971 #> 72 2 2015-09-10 07:01:11 15.76459 -22.37971 #> 73 2 2015-09-10 07:01:12 15.76459 -22.37971 #> 74 2 2015-09-10 07:01:13 15.76459 -22.37971 #> 75 2 2015-09-10 07:01:14 15.76459 -22.37971 #> 76 2 2015-09-10 07:01:15 15.76459 -22.37971 #> 77 2 2015-09-10 07:01:16 15.76459 -22.37971 #> 78 2 2015-09-10 07:01:17 15.76459 -22.37971 #> 79 2 2015-09-10 07:01:18 15.76459 -22.37971 #> 80 2 2015-09-10 07:01:19 15.76459 -22.37971 #> 81 2 2015-09-10 07:01:20 15.76459 -22.37971 #> 82 2 2015-09-10 07:01:21 15.76459 -22.37971 #> 83 2 2015-09-10 07:01:22 15.76459 -22.37971 #> 84 2 2015-09-10 07:01:23 15.76459 -22.37971 #> 85 2 2015-09-10 07:01:24 15.76459 -22.37971 #> 86 2 2015-09-10 07:01:25 15.76458 -22.37971 #> 87 2 2015-09-10 07:01:26 15.76459 -22.37971 #> 88 2 2015-09-10 07:01:27 15.76459 -22.37971 #> 89 2 2015-09-10 07:01:28 15.76459 -22.37971 #> 90 2 2015-09-10 07:01:29 15.76458 -22.37971 #> 91 2 2015-09-10 07:01:30 15.76458 -22.37971 #> 92 2 2015-09-10 07:01:31 15.76457 -22.37971 #> 93 2 2015-09-10 07:01:32 15.76456 -22.37971 #> 94 2 2015-09-10 07:01:33 15.76455 -22.37972 #> 95 2 2015-09-10 07:01:34 15.76455 -22.37972 #> 96 2 2015-09-10 07:01:35 15.76455 -22.37973 #> 97 2 2015-09-10 07:01:36 15.76455 -22.37973 #> 98 2 2015-09-10 07:01:37 15.76455 -22.37974 #> 99 2 2015-09-10 07:01:38 15.76455 -22.37974 #> 100 2 2015-09-10 07:01:39 15.76455 -22.37975 #> 101 2 2015-09-10 07:01:40 15.76455 -22.37975 #> 102 2 2015-09-10 07:01:41 15.76454 -22.37976 #> 103 2 2015-09-10 07:01:42 15.76455 -22.37976 #> 104 2 2015-09-10 07:01:43 15.76455 -22.37976 #> 105 2 2015-09-10 07:01:44 15.76455 -22.37977 #> 106 2 2015-09-10 07:01:45 15.76456 -22.37977 #> 107 2 2015-09-10 07:01:46 15.76457 -22.37978 #> 108 2 2015-09-10 07:01:47 15.76458 -22.37978 #> 109 2 2015-09-10 07:01:48 15.76459 -22.37979 #> 110 2 2015-09-10 07:01:49 15.76459 -22.37979 #> 111 2 2015-09-10 07:01:50 15.76460 -22.37980 #> 112 2 2015-09-10 07:01:51 15.76461 -22.37980 #> 113 2 2015-09-10 07:01:52 15.76461 -22.37981 #> 114 2 2015-09-10 07:01:53 15.76461 -22.37981 #> 115 2 2015-09-10 07:01:54 15.76462 -22.37981 #> 116 2 2015-09-10 07:01:55 15.76463 -22.37982 #> 117 2 2015-09-10 07:01:56 15.76463 -22.37982 #> 118 2 2015-09-10 07:01:57 15.76464 -22.37982 #> 119 2 2015-09-10 07:01:58 15.76465 -22.37982 #> 120 2 2015-09-10 07:01:59 15.76466 -22.37982 #> 121 1 2015-09-10 07:01:00 15.76468 -22.37961 #> 122 1 2015-09-10 07:01:01 15.76469 -22.37960 #> 123 1 2015-09-10 07:01:02 15.76469 -22.37960 #> 124 1 2015-09-10 07:01:03 15.76469 -22.37960 #> 125 1 2015-09-10 07:01:04 15.76470 -22.37960 #> 126 1 2015-09-10 07:01:05 15.76469 -22.37960 #> 127 1 2015-09-10 07:01:06 15.76469 -22.37960 #> 128 1 2015-09-10 07:01:07 15.76469 -22.37959 #> 129 1 2015-09-10 07:01:08 15.76469 -22.37959 #> 130 1 2015-09-10 07:01:09 15.76469 -22.37959 #> 131 1 2015-09-10 07:01:10 15.76469 -22.37959 #> 132 1 2015-09-10 07:01:11 15.76469 -22.37960 #> 133 1 2015-09-10 07:01:12 15.76469 -22.37960 #> 134 1 2015-09-10 07:01:13 15.76469 -22.37960 #> 135 1 2015-09-10 07:01:14 15.76469 -22.37960 #> 136 1 2015-09-10 07:01:15 15.76468 -22.37960 #> 137 1 2015-09-10 07:01:16 15.76468 -22.37960 #> 138 1 2015-09-10 07:01:17 15.76468 -22.37960 #> 139 1 2015-09-10 07:01:18 15.76468 -22.37960 #> 140 1 2015-09-10 07:01:19 15.76468 -22.37960 #> 141 1 2015-09-10 07:01:20 15.76468 -22.37960 #> 142 1 2015-09-10 07:01:21 15.76468 -22.37960 #> 143 1 2015-09-10 07:01:22 15.76468 -22.37960 #> 144 1 2015-09-10 07:01:23 15.76468 -22.37960 #> 145 1 2015-09-10 07:01:24 15.76468 -22.37960 #> 146 1 2015-09-10 07:01:25 15.76468 -22.37960 #> 147 1 2015-09-10 07:01:26 15.76468 -22.37960 #> 148 1 2015-09-10 07:01:27 15.76468 -22.37960 #> 149 1 2015-09-10 07:01:28 15.76468 -22.37960 #> 150 1 2015-09-10 07:01:29 15.76468 -22.37960 #> 151 1 2015-09-10 07:01:30 15.76468 -22.37960 #> 152 1 2015-09-10 07:01:31 15.76468 -22.37960 #> 153 1 2015-09-10 07:01:32 15.76469 -22.37960 #> 154 1 2015-09-10 07:01:33 15.76469 -22.37960 #> 155 1 2015-09-10 07:01:34 15.76469 -22.37960 #> 156 1 2015-09-10 07:01:35 15.76469 -22.37960 #> 157 1 2015-09-10 07:01:36 15.76469 -22.37960 #> 158 1 2015-09-10 07:01:37 15.76469 -22.37960 #> 159 1 2015-09-10 07:01:38 15.76469 -22.37960 #> 160 1 2015-09-10 07:01:39 15.76469 -22.37960 #> 161 1 2015-09-10 07:01:40 15.76469 -22.37960 #> 162 1 2015-09-10 07:01:41 15.76469 -22.37960 #> 163 1 2015-09-10 07:01:42 15.76469 -22.37960 #> 164 1 2015-09-10 07:01:43 15.76469 -22.37960 #> 165 1 2015-09-10 07:01:44 15.76469 -22.37960 #> 166 1 2015-09-10 07:01:45 15.76469 -22.37960 #> 167 1 2015-09-10 07:01:46 15.76469 -22.37960 #> 168 1 2015-09-10 07:01:47 15.76469 -22.37960 #> 169 1 2015-09-10 07:01:48 15.76469 -22.37960 #> 170 1 2015-09-10 07:01:49 15.76469 -22.37959 #> 171 1 2015-09-10 07:01:50 15.76469 -22.37959 #> 172 1 2015-09-10 07:01:51 15.76470 -22.37959 #> 173 1 2015-09-10 07:01:52 15.76470 -22.37959 #> 174 1 2015-09-10 07:01:53 15.76470 -22.37959 #> 175 1 2015-09-10 07:01:54 15.76470 -22.37960 #> 176 1 2015-09-10 07:01:55 15.76470 -22.37960 #> 177 1 2015-09-10 07:01:56 15.76471 -22.37960 #> 178 1 2015-09-10 07:01:57 15.76471 -22.37959 #> 179 1 2015-09-10 07:01:58 15.76471 -22.37959 #> 180 1 2015-09-10 07:01:59 15.76471 -22.37959 #> 181 2 2015-09-10 07:01:00 15.76459 -22.37971 #> 182 2 2015-09-10 07:01:01 15.76459 -22.37971 #> 183 2 2015-09-10 07:01:02 15.76459 -22.37971 #> 184 2 2015-09-10 07:01:03 15.76459 -22.37971 #> 185 2 2015-09-10 07:01:04 15.76459 -22.37971 #> 186 2 2015-09-10 07:01:05 15.76459 -22.37971 #> 187 2 2015-09-10 07:01:06 15.76459 -22.37971 #> 188 2 2015-09-10 07:01:07 15.76459 -22.37971 #> 189 2 2015-09-10 07:01:08 15.76459 -22.37971 #> 190 2 2015-09-10 07:01:09 15.76459 -22.37971 #> 191 2 2015-09-10 07:01:10 15.76459 -22.37971 #> 192 2 2015-09-10 07:01:11 15.76459 -22.37971 #> 193 2 2015-09-10 07:01:12 15.76459 -22.37971 #> 194 2 2015-09-10 07:01:13 15.76459 -22.37971 #> 195 2 2015-09-10 07:01:14 15.76459 -22.37971 #> 196 2 2015-09-10 07:01:15 15.76459 -22.37971 #> 197 2 2015-09-10 07:01:16 15.76459 -22.37971 #> 198 2 2015-09-10 07:01:17 15.76459 -22.37971 #> 199 2 2015-09-10 07:01:18 15.76459 -22.37971 #> 200 2 2015-09-10 07:01:19 15.76459 -22.37971 #> 201 2 2015-09-10 07:01:20 15.76459 -22.37971 #> 202 2 2015-09-10 07:01:21 15.76459 -22.37971 #> 203 2 2015-09-10 07:01:22 15.76459 -22.37971 #> 204 2 2015-09-10 07:01:23 15.76459 -22.37971 #> 205 2 2015-09-10 07:01:24 15.76459 -22.37971 #> 206 2 2015-09-10 07:01:25 15.76458 -22.37971 #> 207 2 2015-09-10 07:01:26 15.76459 -22.37971 #> 208 2 2015-09-10 07:01:27 15.76459 -22.37971 #> 209 2 2015-09-10 07:01:28 15.76459 -22.37971 #> 210 2 2015-09-10 07:01:29 15.76458 -22.37971 #> 211 2 2015-09-10 07:01:30 15.76458 -22.37971 #> 212 2 2015-09-10 07:01:31 15.76457 -22.37971 #> 213 2 2015-09-10 07:01:32 15.76456 -22.37971 #> 214 2 2015-09-10 07:01:33 15.76455 -22.37972 #> 215 2 2015-09-10 07:01:34 15.76455 -22.37972 #> 216 2 2015-09-10 07:01:35 15.76455 -22.37973 #> 217 2 2015-09-10 07:01:36 15.76455 -22.37973 #> 218 2 2015-09-10 07:01:37 15.76455 -22.37974 #> 219 2 2015-09-10 07:01:38 15.76455 -22.37974 #> 220 2 2015-09-10 07:01:39 15.76455 -22.37975 #> 221 2 2015-09-10 07:01:40 15.76455 -22.37975 #> 222 2 2015-09-10 07:01:41 15.76454 -22.37976 #> 223 2 2015-09-10 07:01:42 15.76455 -22.37976 #> 224 2 2015-09-10 07:01:43 15.76455 -22.37976 #> 225 2 2015-09-10 07:01:44 15.76455 -22.37977 #> 226 2 2015-09-10 07:01:45 15.76456 -22.37977 #> 227 2 2015-09-10 07:01:46 15.76457 -22.37978 #> 228 2 2015-09-10 07:01:47 15.76458 -22.37978 #> 229 2 2015-09-10 07:01:48 15.76459 -22.37979 #> 230 2 2015-09-10 07:01:49 15.76459 -22.37979 #> 231 2 2015-09-10 07:01:50 15.76460 -22.37980 #> 232 2 2015-09-10 07:01:51 15.76461 -22.37980 #> 233 2 2015-09-10 07:01:52 15.76461 -22.37981 #> 234 2 2015-09-10 07:01:53 15.76461 -22.37981 #> 235 2 2015-09-10 07:01:54 15.76462 -22.37981 #> 236 2 2015-09-10 07:01:55 15.76463 -22.37982 #> 237 2 2015-09-10 07:01:56 15.76463 -22.37982 #> 238 2 2015-09-10 07:01:57 15.76464 -22.37982 #> 239 2 2015-09-10 07:01:58 15.76465 -22.37982 #> 240 2 2015-09-10 07:01:59 15.76466 -22.37982 bind_tracks(list(short_tracks, short_tracks)) #> Track table [240 observations] #> Number of tracks: 2 #> Dimensions: 2D #> Geographic: TRUE #> Projection: +proj=longlat #> Table class: data frame ('data.frame') #> id t x y #> 1 1 2015-09-10 07:01:00 15.76468 -22.37961 #> 2 1 2015-09-10 07:01:01 15.76469 -22.37960 #> 3 1 2015-09-10 07:01:02 15.76469 -22.37960 #> 4 1 2015-09-10 07:01:03 15.76469 -22.37960 #> 5 1 2015-09-10 07:01:04 15.76470 -22.37960 #> 6 1 2015-09-10 07:01:05 15.76469 -22.37960 #> 7 1 2015-09-10 07:01:06 15.76469 -22.37960 #> 8 1 2015-09-10 07:01:07 15.76469 -22.37959 #> 9 1 2015-09-10 07:01:08 15.76469 -22.37959 #> 10 1 2015-09-10 07:01:09 15.76469 -22.37959 #> 11 1 2015-09-10 07:01:10 15.76469 -22.37959 #> 12 1 2015-09-10 07:01:11 15.76469 -22.37960 #> 13 1 2015-09-10 07:01:12 15.76469 -22.37960 #> 14 1 2015-09-10 07:01:13 15.76469 -22.37960 #> 15 1 2015-09-10 07:01:14 15.76469 -22.37960 #> 16 1 2015-09-10 07:01:15 15.76468 -22.37960 #> 17 1 2015-09-10 07:01:16 15.76468 -22.37960 #> 18 1 2015-09-10 07:01:17 15.76468 -22.37960 #> 19 1 2015-09-10 07:01:18 15.76468 -22.37960 #> 20 1 2015-09-10 07:01:19 15.76468 -22.37960 #> 21 1 2015-09-10 07:01:20 15.76468 -22.37960 #> 22 1 2015-09-10 07:01:21 15.76468 -22.37960 #> 23 1 2015-09-10 07:01:22 15.76468 -22.37960 #> 24 1 2015-09-10 07:01:23 15.76468 -22.37960 #> 25 1 2015-09-10 07:01:24 15.76468 -22.37960 #> 26 1 2015-09-10 07:01:25 15.76468 -22.37960 #> 27 1 2015-09-10 07:01:26 15.76468 -22.37960 #> 28 1 2015-09-10 07:01:27 15.76468 -22.37960 #> 29 1 2015-09-10 07:01:28 15.76468 -22.37960 #> 30 1 2015-09-10 07:01:29 15.76468 -22.37960 #> 31 1 2015-09-10 07:01:30 15.76468 -22.37960 #> 32 1 2015-09-10 07:01:31 15.76468 -22.37960 #> 33 1 2015-09-10 07:01:32 15.76469 -22.37960 #> 34 1 2015-09-10 07:01:33 15.76469 -22.37960 #> 35 1 2015-09-10 07:01:34 15.76469 -22.37960 #> 36 1 2015-09-10 07:01:35 15.76469 -22.37960 #> 37 1 2015-09-10 07:01:36 15.76469 -22.37960 #> 38 1 2015-09-10 07:01:37 15.76469 -22.37960 #> 39 1 2015-09-10 07:01:38 15.76469 -22.37960 #> 40 1 2015-09-10 07:01:39 15.76469 -22.37960 #> 41 1 2015-09-10 07:01:40 15.76469 -22.37960 #> 42 1 2015-09-10 07:01:41 15.76469 -22.37960 #> 43 1 2015-09-10 07:01:42 15.76469 -22.37960 #> 44 1 2015-09-10 07:01:43 15.76469 -22.37960 #> 45 1 2015-09-10 07:01:44 15.76469 -22.37960 #> 46 1 2015-09-10 07:01:45 15.76469 -22.37960 #> 47 1 2015-09-10 07:01:46 15.76469 -22.37960 #> 48 1 2015-09-10 07:01:47 15.76469 -22.37960 #> 49 1 2015-09-10 07:01:48 15.76469 -22.37960 #> 50 1 2015-09-10 07:01:49 15.76469 -22.37959 #> 51 1 2015-09-10 07:01:50 15.76469 -22.37959 #> 52 1 2015-09-10 07:01:51 15.76470 -22.37959 #> 53 1 2015-09-10 07:01:52 15.76470 -22.37959 #> 54 1 2015-09-10 07:01:53 15.76470 -22.37959 #> 55 1 2015-09-10 07:01:54 15.76470 -22.37960 #> 56 1 2015-09-10 07:01:55 15.76470 -22.37960 #> 57 1 2015-09-10 07:01:56 15.76471 -22.37960 #> 58 1 2015-09-10 07:01:57 15.76471 -22.37959 #> 59 1 2015-09-10 07:01:58 15.76471 -22.37959 #> 60 1 2015-09-10 07:01:59 15.76471 -22.37959 #> 61 2 2015-09-10 07:01:00 15.76459 -22.37971 #> 62 2 2015-09-10 07:01:01 15.76459 -22.37971 #> 63 2 2015-09-10 07:01:02 15.76459 -22.37971 #> 64 2 2015-09-10 07:01:03 15.76459 -22.37971 #> 65 2 2015-09-10 07:01:04 15.76459 -22.37971 #> 66 2 2015-09-10 07:01:05 15.76459 -22.37971 #> 67 2 2015-09-10 07:01:06 15.76459 -22.37971 #> 68 2 2015-09-10 07:01:07 15.76459 -22.37971 #> 69 2 2015-09-10 07:01:08 15.76459 -22.37971 #> 70 2 2015-09-10 07:01:09 15.76459 -22.37971 #> 71 2 2015-09-10 07:01:10 15.76459 -22.37971 #> 72 2 2015-09-10 07:01:11 15.76459 -22.37971 #> 73 2 2015-09-10 07:01:12 15.76459 -22.37971 #> 74 2 2015-09-10 07:01:13 15.76459 -22.37971 #> 75 2 2015-09-10 07:01:14 15.76459 -22.37971 #> 76 2 2015-09-10 07:01:15 15.76459 -22.37971 #> 77 2 2015-09-10 07:01:16 15.76459 -22.37971 #> 78 2 2015-09-10 07:01:17 15.76459 -22.37971 #> 79 2 2015-09-10 07:01:18 15.76459 -22.37971 #> 80 2 2015-09-10 07:01:19 15.76459 -22.37971 #> 81 2 2015-09-10 07:01:20 15.76459 -22.37971 #> 82 2 2015-09-10 07:01:21 15.76459 -22.37971 #> 83 2 2015-09-10 07:01:22 15.76459 -22.37971 #> 84 2 2015-09-10 07:01:23 15.76459 -22.37971 #> 85 2 2015-09-10 07:01:24 15.76459 -22.37971 #> 86 2 2015-09-10 07:01:25 15.76458 -22.37971 #> 87 2 2015-09-10 07:01:26 15.76459 -22.37971 #> 88 2 2015-09-10 07:01:27 15.76459 -22.37971 #> 89 2 2015-09-10 07:01:28 15.76459 -22.37971 #> 90 2 2015-09-10 07:01:29 15.76458 -22.37971 #> 91 2 2015-09-10 07:01:30 15.76458 -22.37971 #> 92 2 2015-09-10 07:01:31 15.76457 -22.37971 #> 93 2 2015-09-10 07:01:32 15.76456 -22.37971 #> 94 2 2015-09-10 07:01:33 15.76455 -22.37972 #> 95 2 2015-09-10 07:01:34 15.76455 -22.37972 #> 96 2 2015-09-10 07:01:35 15.76455 -22.37973 #> 97 2 2015-09-10 07:01:36 15.76455 -22.37973 #> 98 2 2015-09-10 07:01:37 15.76455 -22.37974 #> 99 2 2015-09-10 07:01:38 15.76455 -22.37974 #> 100 2 2015-09-10 07:01:39 15.76455 -22.37975 #> 101 2 2015-09-10 07:01:40 15.76455 -22.37975 #> 102 2 2015-09-10 07:01:41 15.76454 -22.37976 #> 103 2 2015-09-10 07:01:42 15.76455 -22.37976 #> 104 2 2015-09-10 07:01:43 15.76455 -22.37976 #> 105 2 2015-09-10 07:01:44 15.76455 -22.37977 #> 106 2 2015-09-10 07:01:45 15.76456 -22.37977 #> 107 2 2015-09-10 07:01:46 15.76457 -22.37978 #> 108 2 2015-09-10 07:01:47 15.76458 -22.37978 #> 109 2 2015-09-10 07:01:48 15.76459 -22.37979 #> 110 2 2015-09-10 07:01:49 15.76459 -22.37979 #> 111 2 2015-09-10 07:01:50 15.76460 -22.37980 #> 112 2 2015-09-10 07:01:51 15.76461 -22.37980 #> 113 2 2015-09-10 07:01:52 15.76461 -22.37981 #> 114 2 2015-09-10 07:01:53 15.76461 -22.37981 #> 115 2 2015-09-10 07:01:54 15.76462 -22.37981 #> 116 2 2015-09-10 07:01:55 15.76463 -22.37982 #> 117 2 2015-09-10 07:01:56 15.76463 -22.37982 #> 118 2 2015-09-10 07:01:57 15.76464 -22.37982 #> 119 2 2015-09-10 07:01:58 15.76465 -22.37982 #> 120 2 2015-09-10 07:01:59 15.76466 -22.37982 #> 121 1 2015-09-10 07:01:00 15.76468 -22.37961 #> 122 1 2015-09-10 07:01:01 15.76469 -22.37960 #> 123 1 2015-09-10 07:01:02 15.76469 -22.37960 #> 124 1 2015-09-10 07:01:03 15.76469 -22.37960 #> 125 1 2015-09-10 07:01:04 15.76470 -22.37960 #> 126 1 2015-09-10 07:01:05 15.76469 -22.37960 #> 127 1 2015-09-10 07:01:06 15.76469 -22.37960 #> 128 1 2015-09-10 07:01:07 15.76469 -22.37959 #> 129 1 2015-09-10 07:01:08 15.76469 -22.37959 #> 130 1 2015-09-10 07:01:09 15.76469 -22.37959 #> 131 1 2015-09-10 07:01:10 15.76469 -22.37959 #> 132 1 2015-09-10 07:01:11 15.76469 -22.37960 #> 133 1 2015-09-10 07:01:12 15.76469 -22.37960 #> 134 1 2015-09-10 07:01:13 15.76469 -22.37960 #> 135 1 2015-09-10 07:01:14 15.76469 -22.37960 #> 136 1 2015-09-10 07:01:15 15.76468 -22.37960 #> 137 1 2015-09-10 07:01:16 15.76468 -22.37960 #> 138 1 2015-09-10 07:01:17 15.76468 -22.37960 #> 139 1 2015-09-10 07:01:18 15.76468 -22.37960 #> 140 1 2015-09-10 07:01:19 15.76468 -22.37960 #> 141 1 2015-09-10 07:01:20 15.76468 -22.37960 #> 142 1 2015-09-10 07:01:21 15.76468 -22.37960 #> 143 1 2015-09-10 07:01:22 15.76468 -22.37960 #> 144 1 2015-09-10 07:01:23 15.76468 -22.37960 #> 145 1 2015-09-10 07:01:24 15.76468 -22.37960 #> 146 1 2015-09-10 07:01:25 15.76468 -22.37960 #> 147 1 2015-09-10 07:01:26 15.76468 -22.37960 #> 148 1 2015-09-10 07:01:27 15.76468 -22.37960 #> 149 1 2015-09-10 07:01:28 15.76468 -22.37960 #> 150 1 2015-09-10 07:01:29 15.76468 -22.37960 #> 151 1 2015-09-10 07:01:30 15.76468 -22.37960 #> 152 1 2015-09-10 07:01:31 15.76468 -22.37960 #> 153 1 2015-09-10 07:01:32 15.76469 -22.37960 #> 154 1 2015-09-10 07:01:33 15.76469 -22.37960 #> 155 1 2015-09-10 07:01:34 15.76469 -22.37960 #> 156 1 2015-09-10 07:01:35 15.76469 -22.37960 #> 157 1 2015-09-10 07:01:36 15.76469 -22.37960 #> 158 1 2015-09-10 07:01:37 15.76469 -22.37960 #> 159 1 2015-09-10 07:01:38 15.76469 -22.37960 #> 160 1 2015-09-10 07:01:39 15.76469 -22.37960 #> 161 1 2015-09-10 07:01:40 15.76469 -22.37960 #> 162 1 2015-09-10 07:01:41 15.76469 -22.37960 #> 163 1 2015-09-10 07:01:42 15.76469 -22.37960 #> 164 1 2015-09-10 07:01:43 15.76469 -22.37960 #> 165 1 2015-09-10 07:01:44 15.76469 -22.37960 #> 166 1 2015-09-10 07:01:45 15.76469 -22.37960 #> 167 1 2015-09-10 07:01:46 15.76469 -22.37960 #> 168 1 2015-09-10 07:01:47 15.76469 -22.37960 #> 169 1 2015-09-10 07:01:48 15.76469 -22.37960 #> 170 1 2015-09-10 07:01:49 15.76469 -22.37959 #> 171 1 2015-09-10 07:01:50 15.76469 -22.37959 #> 172 1 2015-09-10 07:01:51 15.76470 -22.37959 #> 173 1 2015-09-10 07:01:52 15.76470 -22.37959 #> 174 1 2015-09-10 07:01:53 15.76470 -22.37959 #> 175 1 2015-09-10 07:01:54 15.76470 -22.37960 #> 176 1 2015-09-10 07:01:55 15.76470 -22.37960 #> 177 1 2015-09-10 07:01:56 15.76471 -22.37960 #> 178 1 2015-09-10 07:01:57 15.76471 -22.37959 #> 179 1 2015-09-10 07:01:58 15.76471 -22.37959 #> 180 1 2015-09-10 07:01:59 15.76471 -22.37959 #> 181 2 2015-09-10 07:01:00 15.76459 -22.37971 #> 182 2 2015-09-10 07:01:01 15.76459 -22.37971 #> 183 2 2015-09-10 07:01:02 15.76459 -22.37971 #> 184 2 2015-09-10 07:01:03 15.76459 -22.37971 #> 185 2 2015-09-10 07:01:04 15.76459 -22.37971 #> 186 2 2015-09-10 07:01:05 15.76459 -22.37971 #> 187 2 2015-09-10 07:01:06 15.76459 -22.37971 #> 188 2 2015-09-10 07:01:07 15.76459 -22.37971 #> 189 2 2015-09-10 07:01:08 15.76459 -22.37971 #> 190 2 2015-09-10 07:01:09 15.76459 -22.37971 #> 191 2 2015-09-10 07:01:10 15.76459 -22.37971 #> 192 2 2015-09-10 07:01:11 15.76459 -22.37971 #> 193 2 2015-09-10 07:01:12 15.76459 -22.37971 #> 194 2 2015-09-10 07:01:13 15.76459 -22.37971 #> 195 2 2015-09-10 07:01:14 15.76459 -22.37971 #> 196 2 2015-09-10 07:01:15 15.76459 -22.37971 #> 197 2 2015-09-10 07:01:16 15.76459 -22.37971 #> 198 2 2015-09-10 07:01:17 15.76459 -22.37971 #> 199 2 2015-09-10 07:01:18 15.76459 -22.37971 #> 200 2 2015-09-10 07:01:19 15.76459 -22.37971 #> 201 2 2015-09-10 07:01:20 15.76459 -22.37971 #> 202 2 2015-09-10 07:01:21 15.76459 -22.37971 #> 203 2 2015-09-10 07:01:22 15.76459 -22.37971 #> 204 2 2015-09-10 07:01:23 15.76459 -22.37971 #> 205 2 2015-09-10 07:01:24 15.76459 -22.37971 #> 206 2 2015-09-10 07:01:25 15.76458 -22.37971 #> 207 2 2015-09-10 07:01:26 15.76459 -22.37971 #> 208 2 2015-09-10 07:01:27 15.76459 -22.37971 #> 209 2 2015-09-10 07:01:28 15.76459 -22.37971 #> 210 2 2015-09-10 07:01:29 15.76458 -22.37971 #> 211 2 2015-09-10 07:01:30 15.76458 -22.37971 #> 212 2 2015-09-10 07:01:31 15.76457 -22.37971 #> 213 2 2015-09-10 07:01:32 15.76456 -22.37971 #> 214 2 2015-09-10 07:01:33 15.76455 -22.37972 #> 215 2 2015-09-10 07:01:34 15.76455 -22.37972 #> 216 2 2015-09-10 07:01:35 15.76455 -22.37973 #> 217 2 2015-09-10 07:01:36 15.76455 -22.37973 #> 218 2 2015-09-10 07:01:37 15.76455 -22.37974 #> 219 2 2015-09-10 07:01:38 15.76455 -22.37974 #> 220 2 2015-09-10 07:01:39 15.76455 -22.37975 #> 221 2 2015-09-10 07:01:40 15.76455 -22.37975 #> 222 2 2015-09-10 07:01:41 15.76454 -22.37976 #> 223 2 2015-09-10 07:01:42 15.76455 -22.37976 #> 224 2 2015-09-10 07:01:43 15.76455 -22.37976 #> 225 2 2015-09-10 07:01:44 15.76455 -22.37977 #> 226 2 2015-09-10 07:01:45 15.76456 -22.37977 #> 227 2 2015-09-10 07:01:46 15.76457 -22.37978 #> 228 2 2015-09-10 07:01:47 15.76458 -22.37978 #> 229 2 2015-09-10 07:01:48 15.76459 -22.37979 #> 230 2 2015-09-10 07:01:49 15.76459 -22.37979 #> 231 2 2015-09-10 07:01:50 15.76460 -22.37980 #> 232 2 2015-09-10 07:01:51 15.76461 -22.37980 #> 233 2 2015-09-10 07:01:52 15.76461 -22.37981 #> 234 2 2015-09-10 07:01:53 15.76461 -22.37981 #> 235 2 2015-09-10 07:01:54 15.76462 -22.37981 #> 236 2 2015-09-10 07:01:55 15.76463 -22.37982 #> 237 2 2015-09-10 07:01:56 15.76463 -22.37982 #> 238 2 2015-09-10 07:01:57 15.76464 -22.37982 #> 239 2 2015-09-10 07:01:58 15.76465 -22.37982 #> 240 2 2015-09-10 07:01:59 15.76466 -22.37982"},{"path":"https://swarm-lab.github.io/trackdf/reference/conversions.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert a Track Table to/from Other Formats — conversions","title":"Convert a Track Table to/from Other Formats — conversions","text":"following methods convert track tables common formats used processing tracking spatial data.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/conversions.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert a Track Table to/from Other Formats — conversions","text":"","code":"as_track(x, table = \"df\", ...) # S3 method for MoveStack as_track(x, table = \"df\", ...) # S3 method for Move as_track(x, table = \"df\", ...) as_move(x, ...) # S3 method for track as_move(x, ...) # S3 method for SpatialPointsDataFrame as_track(x, table = \"df\", ...) as_sp(x, ...) # S3 method for track as_sp(x, ...) # S3 method for ltraj as_track(x, table = \"df\", ...) as_ltraj(x, ...) # S3 method for track as_ltraj(x, ...) # S3 method for telemetry as_track(x, table = \"df\", ...) # S3 method for list as_track(x, table = \"df\", ...) as_telemetry(x, ...) # S3 method for track as_telemetry(x, ...) # S3 method for moveData as_track(x, table = \"df\", type = c(\"LL\", \"UTM\"), ...) as_moveHMM(x, ...) # S3 method for track as_moveHMM(x, ...)"},{"path":"https://swarm-lab.github.io/trackdf/reference/conversions.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert a Track Table to/from Other Formats — conversions","text":"x object convert. table string indicating class table track table built. can data.frame (\"df\", default), tibble (\"tbl\"), data.table (\"dt\"). ... parameters passed : track_df, track_tbl track_dt as_track used. moveVis::df2move as_move used. sp::SpatialPointsDataFrame as_sp used. adehabitatLT::.ltraj as_ltraj used. ctmm::.telemetry as_telemetry used. moveHMM::prepData as_moveHMM used. type converting moveHMM::moveData track table , character string indicating type coordinates stored moveHMM::moveData object: \"LL\" longitude/latitude (default), \"UTM\" easting/northing.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/conversions.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert a Track Table to/from Other Formats — conversions","text":"coordinates converted chosen format.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/conversions.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Convert a Track Table to/from Other Formats — conversions","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/conversions.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert a Track Table to/from Other Formats — conversions","text":"","code":"if (FALSE) { data(short_tracks) if (requireNamespace(\"moveVis\", quietly = TRUE)) { mv <- as_move(short_tracks) as_track(mv) } if (requireNamespace(\"sp\", quietly = TRUE)) { sp <- as_sp(short_tracks) as_track(sp) } if (requireNamespace(\"adehabitatLT\", quietly = TRUE)) { lt <- as_ltraj(short_tracks) as_track(lt) } if (requireNamespace(\"ctmm\", quietly = TRUE)) { tl <- as_telemetry(short_tracks) as_track(tl) } if (requireNamespace(\"moveHMM\", quietly = TRUE)) { hhm <- as_moveHMM(short_tracks, type = \"LL\") as_track(hhm) } }"},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-Mode.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute The Mode(s) Of A Discrete Distribution — .Mode","title":"Compute The Mode(s) Of A Discrete Distribution — .Mode","text":"internal utility function compute mode(s) discrete distribution.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-Mode.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute The Mode(s) Of A Discrete Distribution — .Mode","text":"","code":".Mode(x, na.rm = TRUE)"},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-Mode.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute The Mode(s) Of A Discrete Distribution — .Mode","text":"x vector matrix discrete values. na.rm logical value indicating whether NA values stripped computation proceeds (default: TRUE).","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-Mode.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute The Mode(s) Of A Discrete Distribution — .Mode","text":"vector values corresponding mode(s) x.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-Mode.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Compute The Mode(s) Of A Discrete Distribution — .Mode","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-reclass.html","id":null,"dir":"Reference","previous_headings":"","what":"Maintain Class After Modification — .reclass","title":"Maintain Class After Modification — .reclass","text":"Copy class attributes original version object modified version.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-reclass.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Maintain Class After Modification — .reclass","text":"","code":".reclass(x, result)"},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-reclass.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Maintain Class After Modification — .reclass","text":"x original object, class/attributes copy result modified object, /might missing class/attributes.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-reclass.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Maintain Class After Modification — .reclass","text":"result, now class/attributes restored.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dot-reclass.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Maintain Class After Modification — .reclass","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dplyr_track.html","id":null,"dir":"Reference","previous_headings":"","what":"Dplyr Methods For Track Tables — dplyr_track","title":"Dplyr Methods For Track Tables — dplyr_track","text":"dplyr methods track tables objects.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/dplyr_track.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Dplyr Methods For Track Tables — dplyr_track","text":"","code":"# S3 method for track select(.data, ...) # S3 method for track rename(.data, ...) # S3 method for track filter(.data, ...) # S3 method for track arrange(.data, ...) # S3 method for track mutate(.data, ...) # S3 method for track transmute(.data, ...) # S3 method for track summarise(.data, ...) # S3 method for track summarize(.data, ...) # S3 method for track group_by(.data, ...) # S3 method for track ungroup(.data, ...) # S3 method for track sample_n(.data, ...) # S3 method for track sample_frac(.data, ...) # S3 method for track do(.data, ...) # S3 method for track slice(.data, ...) # S3 method for track semi_join(.data, ...) # S3 method for track anti_join(.data, ...) # S3 method for track inner_join(.data, ...) # S3 method for track left_join(.data, ...) # S3 method for track right_join(.data, ...) # S3 method for track full_join(.data, ...) # S3 method for track nest_join(.data, ...) # S3 method for track distinct(.data, ...) # S3 method for track rowwise(.data, ...)"},{"path":"https://swarm-lab.github.io/trackdf/reference/dplyr_track.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Dplyr Methods For Track Tables — dplyr_track","text":".data track table. ... Additional arguments passed corresponding dplyr method.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_t.html","id":null,"dir":"Reference","previous_headings":"","what":"Find Duplicated Timestamps in a Track Table — duplicated_t","title":"Find Duplicated Timestamps in a Track Table — duplicated_t","text":"function attempts automatically detect duplicated timestamps track tables.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_t.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Find Duplicated Timestamps in a Track Table — duplicated_t","text":"","code":"duplicated_t(x)"},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_t.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Find Duplicated Timestamps in a Track Table — duplicated_t","text":"x track table produced track function.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_t.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Find Duplicated Timestamps in a Track Table — duplicated_t","text":"data frame/table/tibble duplicated timestamps individual track x. duplicated data detected, function returns NULL.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_t.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Find Duplicated Timestamps in a Track Table — duplicated_t","text":"Incomplete data (, data containing \"NAs\") ignored.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_t.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Find Duplicated Timestamps in a Track Table — duplicated_t","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_t.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Find Duplicated Timestamps in a Track Table — duplicated_t","text":"","code":"# Create data set with duplicated data data(short_tracks) t_df <- track(x = short_tracks$x, y = short_tracks$y, t = short_tracks$t, id = short_tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\", table = \"df\") t_df <- bind_tracks(t_df, t_df[1:10, ], t_df[100:110, ]) # Find duplicated timestamps duplicated <- duplicated_t(t_df)"},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_xyt.html","id":null,"dir":"Reference","previous_headings":"","what":"Find Duplicated Data in a Track Table — duplicated_xyt","title":"Find Duplicated Data in a Track Table — duplicated_xyt","text":"function attempts automatically detect fully duplicated data track tables.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_xyt.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Find Duplicated Data in a Track Table — duplicated_xyt","text":"","code":"duplicated_xyt(x)"},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_xyt.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Find Duplicated Data in a Track Table — duplicated_xyt","text":"x track table produced track function.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_xyt.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Find Duplicated Data in a Track Table — duplicated_xyt","text":"data frame/table/tibble duplicated timestamps coordinates individual track x. duplicated data detected, function returns NULL.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_xyt.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Find Duplicated Data in a Track Table — duplicated_xyt","text":"Incomplete data (, data containing \"NAs\") ignored.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_xyt.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Find Duplicated Data in a Track Table — duplicated_xyt","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/duplicated_xyt.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Find Duplicated Data in a Track Table — duplicated_xyt","text":"","code":"# Create data set with duplicated data data(short_tracks) t_df <- track(x = short_tracks$x, y = short_tracks$y, t = short_tracks$t, id = short_tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\", table = \"df\") t_df <- bind_tracks(t_df, t_df[1:10, ], t_df[100:110, ]) # Find duplicated data duplicated <- duplicated_xyt(t_df)"},{"path":"https://swarm-lab.github.io/trackdf/reference/filter.html","id":null,"dir":"Reference","previous_headings":"","what":"Subset rows using column values — filter","title":"Subset rows using column values — filter","text":"re-export filter function dplyr package. See help","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/filter.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Subset rows using column values — filter","text":".data See filter explanation. ... args","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/inconsistent_xy.html","id":null,"dir":"Reference","previous_headings":"","what":"Find Inconsistent Locations in a Track Table — inconsistent_xy","title":"Find Inconsistent Locations in a Track Table — inconsistent_xy","text":"function attempts automatically detect inconsistent locations (instance due writing error GPS innacuracies) track tables.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/inconsistent_xy.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Find Inconsistent Locations in a Track Table — inconsistent_xy","text":"","code":"inconsistent_xy(x, s = 5)"},{"path":"https://swarm-lab.github.io/trackdf/reference/inconsistent_xy.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Find Inconsistent Locations in a Track Table — inconsistent_xy","text":"x track table produced track function. s discrimination threshold outlier detection algorithm. Higher values correspond less outliers.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/inconsistent_xy.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Find Inconsistent Locations in a Track Table — inconsistent_xy","text":"data frame/table/tibble timestamps coordinates inconsistent data individual track x. inconsistencies detected, function returns NULL.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/inconsistent_xy.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Find Inconsistent Locations in a Track Table — inconsistent_xy","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/inconsistent_xy.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Find Inconsistent Locations in a Track Table — inconsistent_xy","text":"","code":"# Create data set with inconsistent data data(tracks) t_df <- track(x = tracks$x, y = tracks$y, t = tracks$t, id = tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\", table = \"df\") t_df$x[1000] <- t_df$x[1000] * 1.0001 t_df$y[4000] <- t_df$y[4000] * 1.00001 # Find inconsistent data inconsitent <- inconsistent_xy(t_df)"},{"path":"https://swarm-lab.github.io/trackdf/reference/is_geo.html","id":null,"dir":"Reference","previous_headings":"","what":"Check if Track Table Uses Geographic Coordinates — is_geo","title":"Check if Track Table Uses Geographic Coordinates — is_geo","text":"Track tables produced track_df can use cartesian (x, y, z) geographic (latitude, longitude, altitude) coordinate system. function helps determine used particular table.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/is_geo.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check if Track Table Uses Geographic Coordinates — is_geo","text":"","code":"is_geo(x)"},{"path":"https://swarm-lab.github.io/trackdf/reference/is_geo.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check if Track Table Uses Geographic Coordinates — is_geo","text":"x track data table produced track_df.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/is_geo.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check if Track Table Uses Geographic Coordinates — is_geo","text":"logical.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/is_geo.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Check if Track Table Uses Geographic Coordinates — is_geo","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/is_geo.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check if Track Table Uses Geographic Coordinates — is_geo","text":"","code":"data(short_tracks) is_geo(short_tracks) #> [1] TRUE"},{"path":"https://swarm-lab.github.io/trackdf/reference/is_track.html","id":null,"dir":"Reference","previous_headings":"","what":"Check Validity of Track Table — is_track","title":"Check Validity of Track Table — is_track","text":"Test whether variable contains track table produced track_df, track_tbl, track_dt.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/is_track.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check Validity of Track Table — is_track","text":"","code":"is_track(x)"},{"path":"https://swarm-lab.github.io/trackdf/reference/is_track.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check Validity of Track Table — is_track","text":"x object test.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/is_track.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check Validity of Track Table — is_track","text":"logical indicating whether variable contains track table (TRUE) (FALSE).","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/is_track.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Check Validity of Track Table — is_track","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/is_track.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check Validity of Track Table — is_track","text":"","code":"data(short_tracks) is_track(short_tracks) #> [1] TRUE"},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_t.html","id":null,"dir":"Reference","previous_headings":"","what":"Find Missing Data in a Track Table — missing_t","title":"Find Missing Data in a Track Table — missing_t","text":"function attempts automatically detect missing data ( instance due writing errors) track tables.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_t.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Find Missing Data in a Track Table — missing_t","text":"","code":"missing_t(x, begin = NULL, end = NULL, step = NULL)"},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_t.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Find Missing Data in a Track Table — missing_t","text":"x track table produced track function. begin full timestamp (date+time) POSIXct format corresponding time missing data looked . set, first timestamp track table used. end full timestamp (date+time) POSIXct format corresponding time missing data looked . set, last timestamp track table used. step difftime object representing expected time two consecutive locations trajectory. set, set common time difference successive locations x.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_t.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Find Missing Data in a Track Table — missing_t","text":"data frame/table/tibble missing timestamps individual track x. missing data detected, function returns NULL.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_t.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Find Missing Data in a Track Table — missing_t","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_t.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Find Missing Data in a Track Table — missing_t","text":"","code":"# Create data set with missing timestamps data(short_tracks) t_df <- track(x = short_tracks$x, y = short_tracks$y, t = short_tracks$t, id = short_tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\", table = \"df\") t_df <- t_df[-c(10, 100), ] # Find missing data missing <- missing_t(t_df)"},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_xy.html","id":null,"dir":"Reference","previous_headings":"","what":"Find Missing Locations in a Track Table — missing_xy","title":"Find Missing Locations in a Track Table — missing_xy","text":"function attempts automatically detect missing location data track tables.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_xy.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Find Missing Locations in a Track Table — missing_xy","text":"","code":"missing_xy(x)"},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_xy.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Find Missing Locations in a Track Table — missing_xy","text":"x track table produced track function.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_xy.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Find Missing Locations in a Track Table — missing_xy","text":"data frame/table/tibble timestamps type missing data individual track x. missing data detected, function returns NULL.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_xy.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Find Missing Locations in a Track Table — missing_xy","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/missing_xy.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Find Missing Locations in a Track Table — missing_xy","text":"","code":"# Create data set with missing coordinates data(short_tracks) t_df <- track(x = short_tracks$x, y = short_tracks$y, t = short_tracks$t, id = short_tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\", table = \"df\") t_df$x[c(10, 100)] <- NA t_df$y[c(20, 110)] <- NA # Find missing data missing <- missing_xy(t_df)"},{"path":"https://swarm-lab.github.io/trackdf/reference/n_dims.html","id":null,"dir":"Reference","previous_headings":"","what":"Number of Spatial Dimensions of a Track Table — n_dims","title":"Number of Spatial Dimensions of a Track Table — n_dims","text":"Track tables produced track_df can 2 (x,y) 3 (x, y, z) spatial dimensions. function returns number spatial dimensions track table.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/n_dims.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Number of Spatial Dimensions of a Track Table — n_dims","text":"","code":"n_dims(x)"},{"path":"https://swarm-lab.github.io/trackdf/reference/n_dims.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Number of Spatial Dimensions of a Track Table — n_dims","text":"x track data table produced track_df.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/n_dims.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Number of Spatial Dimensions of a Track Table — n_dims","text":"numeric value.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/n_dims.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Number of Spatial Dimensions of a Track Table — n_dims","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/n_dims.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Number of Spatial Dimensions of a Track Table — n_dims","text":"","code":"data(short_tracks) n_dims(short_tracks) #> [1] 2"},{"path":"https://swarm-lab.github.io/trackdf/reference/n_tracks.html","id":null,"dir":"Reference","previous_headings":"","what":"Number of Tracks in a Track Table — n_tracks","title":"Number of Tracks in a Track Table — n_tracks","text":"Track tables produced track_df can contain multiple tracks (e.g., different animals). function returns number tracks track table.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/n_tracks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Number of Tracks in a Track Table — n_tracks","text":"","code":"n_tracks(x)"},{"path":"https://swarm-lab.github.io/trackdf/reference/n_tracks.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Number of Tracks in a Track Table — n_tracks","text":"x track data table produced track_df.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/n_tracks.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Number of Tracks in a Track Table — n_tracks","text":"numeric value.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/n_tracks.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Number of Tracks in a Track Table — n_tracks","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/n_tracks.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Number of Tracks in a Track Table — n_tracks","text":"","code":"data(short_tracks) n_tracks(short_tracks) #> [1] 2"},{"path":"https://swarm-lab.github.io/trackdf/reference/projection.html","id":null,"dir":"Reference","previous_headings":"","what":"Access/Modify the Projection of a Track Table — projection","title":"Access/Modify the Projection of a Track Table — projection","text":"Functions access modify projection data table. Changing projection trigger automatically conversion locations new coordinate system.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/projection.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Access/Modify the Projection of a Track Table — projection","text":"","code":"projection(x) projection(x) <- value project(x, value)"},{"path":"https://swarm-lab.github.io/trackdf/reference/projection.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Access/Modify the Projection of a Track Table — projection","text":"x track table. value character string terra::crs object representing projection coordinates. \"+proj=longlat\" suitable outputs GPS trackers.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/projection.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Access/Modify the Projection of a Track Table — projection","text":"track table.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/projection.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Access/Modify the Projection of a Track Table — projection","text":"possible modify projection missing coordinates present.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/projection.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Access/Modify the Projection of a Track Table — projection","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/projection.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Access/Modify the Projection of a Track Table — projection","text":"","code":"data(short_tracks) projection(short_tracks) #> Coordinate Reference System: #> User input: +proj=longlat #> wkt: #> GEOGCRS[\"unknown\", #> DATUM[\"World Geodetic System 1984\", #> ELLIPSOID[\"WGS 84\",6378137,298.257223563, #> LENGTHUNIT[\"metre\",1]], #> ID[\"EPSG\",6326]], #> PRIMEM[\"Greenwich\",0, #> ANGLEUNIT[\"degree\",0.0174532925199433], #> ID[\"EPSG\",8901]], #> CS[ellipsoidal,2], #> AXIS[\"longitude\",east, #> ORDER[1], #> ANGLEUNIT[\"degree\",0.0174532925199433, #> ID[\"EPSG\",9122]]], #> AXIS[\"latitude\",north, #> ORDER[2], #> ANGLEUNIT[\"degree\",0.0174532925199433, #> ID[\"EPSG\",9122]]]] tracks_projected <- project(short_tracks, \"+proj=somerc\") projection(tracks_projected) #> Coordinate Reference System: #> User input: +proj=somerc #> wkt: #> PROJCRS[\"unknown\", #> BASEGEOGCRS[\"unknown\", #> DATUM[\"World Geodetic System 1984\", #> ELLIPSOID[\"WGS 84\",6378137,298.257223563, #> LENGTHUNIT[\"metre\",1]], #> ID[\"EPSG\",6326]], #> PRIMEM[\"Greenwich\",0, #> ANGLEUNIT[\"degree\",0.0174532925199433], #> ID[\"EPSG\",8901]]], #> CONVERSION[\"unknown\", #> METHOD[\"Hotine Oblique Mercator (variant B)\", #> ID[\"EPSG\",9815]], #> PARAMETER[\"Latitude of projection centre\",0, #> ANGLEUNIT[\"degree\",0.0174532925199433], #> ID[\"EPSG\",8811]], #> PARAMETER[\"Longitude of projection centre\",0, #> ANGLEUNIT[\"degree\",0.0174532925199433], #> ID[\"EPSG\",8812]], #> PARAMETER[\"Azimuth of initial line\",90, #> ANGLEUNIT[\"degree\",0.0174532925199433], #> ID[\"EPSG\",8813]], #> PARAMETER[\"Angle from Rectified to Skew Grid\",90, #> ANGLEUNIT[\"degree\",0.0174532925199433], #> ID[\"EPSG\",8814]], #> PARAMETER[\"Scale factor on initial line\",1, #> SCALEUNIT[\"unity\",1], #> ID[\"EPSG\",8815]], #> PARAMETER[\"Easting at projection centre\",0, #> LENGTHUNIT[\"metre\",1], #> ID[\"EPSG\",8816]], #> PARAMETER[\"Northing at projection centre\",0, #> LENGTHUNIT[\"metre\",1], #> ID[\"EPSG\",8817]]], #> CS[Cartesian,2], #> AXIS[\"(E)\",east, #> ORDER[1], #> LENGTHUNIT[\"metre\",1, #> ID[\"EPSG\",9001]]], #> AXIS[\"(N)\",north, #> ORDER[2], #> LENGTHUNIT[\"metre\",1, #> ID[\"EPSG\",9001]]]] projection(tracks_projected) <- \"+proj=longlat\" projection(tracks_projected) #> Coordinate Reference System: #> User input: +proj=longlat #> wkt: #> GEOGCRS[\"unknown\", #> DATUM[\"World Geodetic System 1984\", #> ELLIPSOID[\"WGS 84\",6378137,298.257223563, #> LENGTHUNIT[\"metre\",1]], #> ID[\"EPSG\",6326]], #> PRIMEM[\"Greenwich\",0, #> ANGLEUNIT[\"degree\",0.0174532925199433], #> ID[\"EPSG\",8901]], #> CS[ellipsoidal,2], #> AXIS[\"longitude\",east, #> ORDER[1], #> ANGLEUNIT[\"degree\",0.0174532925199433, #> ID[\"EPSG\",9122]]], #> AXIS[\"latitude\",north, #> ORDER[2], #> ANGLEUNIT[\"degree\",0.0174532925199433, #> ID[\"EPSG\",9122]]]]"},{"path":"https://swarm-lab.github.io/trackdf/reference/short_tracks.html","id":null,"dir":"Reference","previous_headings":"","what":"Trajectories of Two Goats Through the Namibian Desert (short version) — short_tracks","title":"Trajectories of Two Goats Through the Namibian Desert (short version) — short_tracks","text":"dataset containing trajectories two goats Namibian desert.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/short_tracks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Trajectories of Two Goats Through the Namibian Desert (short version) — short_tracks","text":"","code":"short_tracks"},{"path":"https://swarm-lab.github.io/trackdf/reference/short_tracks.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Trajectories of Two Goats Through the Namibian Desert (short version) — short_tracks","text":"track table 18 rows 4 variables: id Identity goat t Time observation x Longitude y Latitude","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/sub-.track.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract or Replace Parts of a Track Table — [.track","title":"Extract or Replace Parts of a Track Table — [.track","text":"Accessing columns, rows, cells via $, [[, [ mostly similar regular data frames. However, behavior sometimes different track tables based tibble data.table. info, refer tibble's data.table's subsetting documentation.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/sub-.track.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract or Replace Parts of a Track Table — [.track","text":"","code":"# S3 method for track [(x, ...) # S3 method for track [(x, ...) <- value"},{"path":"https://swarm-lab.github.io/trackdf/reference/sub-.track.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract or Replace Parts of a Track Table — [.track","text":"x track table. ... parameters passed extracting/subsetting functions data.frame, tibble, data.table. value suitable replacement value: repeated whole number times necessary may coerced: see `Coercion` section data.frame. `NULL`, deletes column single column selected.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/sub-.track.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract or Replace Parts of a Track Table — [.track","text":"subset track table [ called, modified version track table [<- called.","code":""},{"path":[]},{"path":"https://swarm-lab.github.io/trackdf/reference/sub-.track.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Extract or Replace Parts of a Track Table — [.track","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/sub-.track.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract or Replace Parts of a Track Table — [.track","text":"","code":"data(short_tracks) short_tracks[1] #> id #> 56 1 #> 57 1 #> 58 1 #> 59 1 #> 60 1 #> 61 1 #> 62 1 #> 63 1 #> 64 1 #> 65 1 #> 66 1 #> 67 1 #> 68 1 #> 69 1 #> 70 1 #> 71 1 #> 72 1 #> 73 1 #> 74 1 #> 75 1 #> 76 1 #> 77 1 #> 78 1 #> 79 1 #> 80 1 #> 81 1 #> 82 1 #> 83 1 #> 84 1 #> 85 1 #> 86 1 #> 87 1 #> 88 1 #> 89 1 #> 90 1 #> 91 1 #> 92 1 #> 93 1 #> 94 1 #> 95 1 #> 96 1 #> 97 1 #> 98 1 #> 99 1 #> 100 1 #> 101 1 #> 102 1 #> 103 1 #> 104 1 #> 105 1 #> 106 1 #> 107 1 #> 108 1 #> 109 1 #> 110 1 #> 111 1 #> 112 1 #> 113 1 #> 114 1 #> 115 1 #> 3656 2 #> 3657 2 #> 3658 2 #> 3659 2 #> 3660 2 #> 3661 2 #> 3662 2 #> 3663 2 #> 3664 2 #> 3665 2 #> 3666 2 #> 3667 2 #> 3668 2 #> 3669 2 #> 3670 2 #> 3671 2 #> 3672 2 #> 3673 2 #> 3674 2 #> 3675 2 #> 3676 2 #> 3677 2 #> 3678 2 #> 3679 2 #> 3680 2 #> 3681 2 #> 3682 2 #> 3683 2 #> 3684 2 #> 3685 2 #> 3686 2 #> 3687 2 #> 3688 2 #> 3689 2 #> 3690 2 #> 3691 2 #> 3692 2 #> 3693 2 #> 3694 2 #> 3695 2 #> 3696 2 #> 3697 2 #> 3698 2 #> 3699 2 #> 3700 2 #> 3701 2 #> 3702 2 #> 3703 2 #> 3704 2 #> 3705 2 #> 3706 2 #> 3707 2 #> 3708 2 #> 3709 2 #> 3710 2 #> 3711 2 #> 3712 2 #> 3713 2 #> 3714 2 #> 3715 2 short_tracks[1, ] #> Track table [1 observations] #> Number of tracks: 1 #> Dimensions: 2D #> Geographic: TRUE #> Projection: +proj=longlat #> Table class: data frame ('data.frame') #> id t x y #> 56 1 2015-09-10 07:01:00 15.76468 -22.37961 short_tracks[1, 1] #> [1] \"1\" short_tracks$id[short_tracks$id == \"1\"] <- \"0\" short_tracks[short_tracks[, 1] == \"0\", 1] <- \"1\""},{"path":"https://swarm-lab.github.io/trackdf/reference/track_.html","id":null,"dir":"Reference","previous_headings":"","what":"Build a Track Table — track_","title":"Build a Track Table — track_","text":"track constructs track tables based data.frame (default), tibble, data.table. track convenience function executes track_df, track_tbl, track_dt based value `table` parameter. Track tables can used like data structure build upon notable difference: extra attribute store projection track coordinates, modifying projection automatically trigger appropriate conversion coordinates.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/track_.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Build a Track Table — track_","text":"","code":"track(x, y, z, t, id, ..., proj, origin, period, tz, format, table = \"df\") track_df(x, y, z, t, id, ..., proj, origin, period, tz, format) track_tbl(x, y, z, t, id, ..., proj, origin, period, tz, format) track_dt(x, y, z, t, id, ..., proj, origin, period, tz, format)"},{"path":"https://swarm-lab.github.io/trackdf/reference/track_.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Build a Track Table — track_","text":"x, y, z Numeric vectors representing coordinates locations. x y required. z can ignored trajectories 2-dimensional. Note: vectors length, shorter ones recycled match length longer one. t numeric vector vector objects can coerced date-time objects as_datetime representing times (frames) location recorded. numeric, origin period time points can set using origin period . id vector can coerced character vector .character representing identity animal location belong. ... set name-value pairs. Arguments evaluated sequentially, can refer previously created elements. arguments processed rlang::quos() support unquote via !! unquote-splice via !!!. Use := create columns start dot. proj character string crs object (see st_crs information) representing projection coordinates. Leave empty coordinates projected (e.g., output video tracking). \"+proj=longlat\" suitable output GPS trackers. origin Something can coerced date-time object as_datetime representing start date time observations t numeric vector. period character vector shorthand format (e.g. \"1 second\") ISO 8601 specification. used t numeric vector represent time unit observations. unambiguous name units abbreviations supported, \"m\" stands months, \"M\" minutes unless ISO 8601 \"P\" modifier present (see examples). Fractional units supported fractional part always converted seconds. See period details. tz time zone name. See OlsonNames. format character string indicating formatting `t`. See strptime specify parameter. supplied parsing performed strptime(). reason consider using specialized parsing functions lubridate. table string indicating class table track table built. can data.frame (\"df\", default), tibble (\"tbl\"), data.table (\"dt\").","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/track_.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Build a Track Table — track_","text":"track table, colloquial term object class track.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/track_.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"Build a Track Table — track_","text":"Simon Garnier, garnier@njit.edu","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/track_.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Build a Track Table — track_","text":"","code":"data(short_tracks) t_df <- track(x = short_tracks$x, y = short_tracks$y, t = short_tracks$t, id = short_tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\", table = \"df\") t_df <- track_df(x = short_tracks$x, y = short_tracks$y, t = short_tracks$t, id = short_tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\") t_tbl <- track_tbl(x = short_tracks$x, y = short_tracks$y, t = short_tracks$t, id = short_tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\") t_dt <- track_dt(x = short_tracks$x, y = short_tracks$y, t = short_tracks$t, id = short_tracks$id, proj = \"+proj=longlat\", tz = \"Africa/Windhoek\")"},{"path":"https://swarm-lab.github.io/trackdf/reference/tracks.html","id":null,"dir":"Reference","previous_headings":"","what":"Trajectories of Two Goats Through the Namibian Desert — tracks","title":"Trajectories of Two Goats Through the Namibian Desert — tracks","text":"dataset containing trajectories two goats Namibian desert.","code":""},{"path":"https://swarm-lab.github.io/trackdf/reference/tracks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Trajectories of Two Goats Through the Namibian Desert — tracks","text":"","code":"tracks"},{"path":"https://swarm-lab.github.io/trackdf/reference/tracks.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Trajectories of Two Goats Through the Namibian Desert — tracks","text":"track table 7194 rows 4 variables: id Identity goat t Time observation x Longitude y Latitude","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"trackdf-030","dir":"Changelog","previous_headings":"","what":"trackdf 0.3.0","title":"trackdf 0.3.0","text":"CRAN release: 2023-01-10","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"new-features-0-3-0","dir":"Changelog","previous_headings":"","what":"New features","title":"trackdf 0.3.0","text":"Adds error detection functions. Removes dplyr dependency (necessary anymore). Replaces sp sf handling projections.","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"minor-improvements-and-fixes-0-3-0","dir":"Changelog","previous_headings":"","what":"Minor improvements and fixes","title":"trackdf 0.3.0","text":"Cleans functions documentation.","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"trackdf-022","dir":"Changelog","previous_headings":"","what":"trackdf 0.2.2","title":"trackdf 0.2.2","text":"CRAN release: 2021-01-13","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"new-features-0-2-2","dir":"Changelog","previous_headings":"","what":"New features","title":"trackdf 0.2.2","text":"N/","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"minor-improvements-and-fixes-0-2-2","dir":"Changelog","previous_headings":"","what":"Minor improvements and fixes","title":"trackdf 0.2.2","text":"Fixes issue preventing adding 1 extra column creation track. Adds possibility provide date formatting creating track.","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"trackdf-021","dir":"Changelog","previous_headings":"","what":"trackdf 0.2.1","title":"trackdf 0.2.1","text":"CRAN release: 2019-08-04","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"new-features-0-2-1","dir":"Changelog","previous_headings":"","what":"New features","title":"trackdf 0.2.1","text":"N/","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"minor-improvements-and-fixes-0-2-1","dir":"Changelog","previous_headings":"","what":"Minor improvements and fixes","title":"trackdf 0.2.1","text":"Fixes examples vignettes run suggested packages present system.","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"trackdf-020","dir":"Changelog","previous_headings":"","what":"trackdf 0.2.0","title":"trackdf 0.2.0","text":"CRAN release: 2019-08-03","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"new-features-0-2-0","dir":"Changelog","previous_headings":"","what":"New features","title":"trackdf 0.2.0","text":"Package ready release CRAN.","code":""},{"path":"https://swarm-lab.github.io/trackdf/news/index.html","id":"minor-improvements-and-fixes-0-2-0","dir":"Changelog","previous_headings":"","what":"Minor improvements and fixes","title":"trackdf 0.2.0","text":"N/","code":""}]
diff --git a/vignettes/z3_manipulate.Rmd b/vignettes/z3_manipulate.Rmd
index ac1cef8..b036249 100644
--- a/vignettes/z3_manipulate.Rmd
+++ b/vignettes/z3_manipulate.Rmd
@@ -212,7 +212,7 @@ print(filtered_tracks, max = 10 * ncol(filtered_tracks))
You can use any plotting method accepting a data frame of any class to represent
the data in a track table.
-Here is an example using [`ggplot2`]{https://ggplot2.tidyverse.org/}:
+Here is an example using [`ggplot2`](https://ggplot2.tidyverse.org/):
```{r}
library(ggplot2)
diff --git a/vignettes/z3_manipulate.html b/vignettes/z3_manipulate.html
index a5743e8..4a67880 100644
--- a/vignettes/z3_manipulate.html
+++ b/vignettes/z3_manipulate.html
@@ -648,7 +648,7 @@ 3.5 - Tidyverse
3.6 - Plotting
You can use any plotting method accepting a data frame of any class
to represent the data in a track table.
-Here is an example using [ggplot2
]{https://ggplot2.tidyverse.org/}:
+Here is an example using ggplot2
:
library(ggplot2)
ggplot(data = tracks) +