From ffba931baa969ce3185dd0fd88094df696df2260 Mon Sep 17 00:00:00 2001 From: Moradii Date: Fri, 16 Nov 2018 20:05:23 +0100 Subject: [PATCH 01/44] some updates on the text and References --- vignettes/article.pdf | Bin 1161891 -> 1162489 bytes vignettes/article.tex | 67 +- vignettes/jss.bst | 1653 +++++++++++++++++++++++++++++++++++++++++ vignettes/jss.cls | 509 +++++++++++++ vignettes/refs.bib | 59 +- 5 files changed, 2225 insertions(+), 63 deletions(-) create mode 100644 vignettes/jss.bst create mode 100644 vignettes/jss.cls diff --git a/vignettes/article.pdf b/vignettes/article.pdf index d3d35236d0d09f0b3e2757dd952ac448856fb75e..ec3c0e57961580f52c1b1a0dfec4a3fdee96dd99 100644 GIT binary patch delta 265190 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 UdAboE3^p(@GB64yB}Gq03RDu{>;M1& delta 264611 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

WWgsp@i>?a6p=DLSwu!qd%N=ykEgjh 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≻9|~cfA7dMS3NAgv6kYIf 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

|ehZ4xwmQQjVJ$GHKf*(7Z-{^ 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 diff --git a/vignettes/article.tex b/vignettes/article.tex index 3ec1ea3..2524202 100644 --- a/vignettes/article.tex +++ b/vignettes/article.tex @@ -40,9 +40,9 @@ %% - \title{} in title case %% - \Plaintitle{} without LaTeX markup (if any) %% - \Shorttitle{} with LaTeX markup (if any), used as running title -\title{trajectories: Classes and Methods for Trajectory Data} - \Plaintitle{trajectories: Classes and Methods for Trajectory Data} -\Shorttitle{trajectories: analysing movement data} +\title{\pkg{trajectories}: Classes and Methods for Trajectory Data} + \Plaintitle{\pkg{trajectories}: Classes and Methods for Trajectory Data} +\Shorttitle{\pkg{trajectories}: analysing movement data} %% - \Abstract{} almost as usual \Abstract{ @@ -52,7 +52,7 @@ %% - \Keywords{} with LaTeX markup, at least one required %% - \Plainkeywords{} without LaTeX markup (if necessary) %% - Should be comma-separated and in sentence case. -\Keywords{Chi-map, Distance, Intensity, \proglang{R}, Second-order characteristics, Spatio-Temporal, Taxi Movements, Trajectory} +\Keywords{Chi-map, Distance, Intensity, \proglang{R}, Second-order characteristics, Spatio-temporal, Taxi Movements, Trajectory} \Plainkeywords{JSS, style guide, comma-separated, not capitalized, R} %% - \Address{} of at least one author @@ -99,11 +99,9 @@ %% -- Introduction ------------------------------------------------------------- \section[Introduction]{Introduction}\label{sec:intro} -Modern data collection techniques allow tracking objects continuously. This means that we do not only know the current location of a moving object, but we also track the objects over time. A set of some tracks from different moving objects may be considered a trajectory pattern. Another example is that in which we record the location of a group of moving objects (e.g., cars, pedestrians, animals) within a regular/irregular time sequence. \cite{guting05} focused on moving objects databases and extended database technology to deal with moving objects. \cite{challa2011} presented an introduction to the field of object tracking and provided solid foundation to the collection of diverse algorithms developed by academics, scientific researchers and engineers. \cite{hanks15} proposed a continuous-time, discrete-space (CTDS) model for animal movement. \cite{niu2016modeling} considered a multivariate Ornstein Uhlenbeck diffusion process to model the movement of animals in continuous time. \cite{russell16} introduced an approach that models dependent movement by augmenting a dynamic marginal movement model with a spatial point process interaction function within a weighted distribution framework. \cite{hooten17} presented a natural basis function approach to constructing appropriate covariance models for movement processes. There are already some \proglang{R} packages available in \href{https://cran.r-project.org}{CRAN Task View: Handling and Analyzing Spatio-Temporal Data} to handle moving objects. Most of them are focused on handling and analysing animal movements such as \pkg{adehabitatLT} \citep{calenge06}, \pkg{tripEstimation} \citep{sumner2009}, \pkg{argosfilter} \citep{argosf}, \pkg{V-Track} \citep{V-Track}, \pkg{animalTrack} \citep{animalTrack}, \pkg{BBMM} \citep{BBMM}, \pkg{bcpa} \citep{bcpa}, \pkg{BayesianAnimalTracker} \citep{BayesianAnimalTracker}, \pkg{TrackReconstruction} \citep{TrackReconstruction}, \pkg{mkde} \citep{mkde}, \pkg{SimilarityMeasures} \citep{SimilarityMeasures}, \pkg{smam} \citep{smam}, \pkg{trip}\citep{trip}, \pkg{moveHMM} \citep{moveHMM}, \pkg{FLightR} \citep{FLightR}. In particular, the package \pkg{adehabitatLT} \citep{calenge06} provides tools to simulate trajectories using a Brownian motion, correlated Random walks and Levy walks. \cite{SimilarityMeasures} presented four different similarity measures in \pkg{SimilarityMeasures}. \cite{moveHMM} in \pkg{moveHMM} provided animal movement modelling using hidden Markov models. Using multiple regression, \pkg{fishmove} \citep{fishmove} provides functions to predict fish movement parameters. The \proglang{R} package \pkg{trackeR} \citep{frick} provides infrastructure for running and cycling Data. +Modern data collection techniques allow tracking objects continuously. This means that we do not only know the current location of a moving object, but we also track the objects over time. A set of some tracks from different moving objects may be considered a trajectory pattern. Another example is that in which we record the location of a group of moving objects (e.g., cars, pedestrians, animals) within a regular/irregular time sequence. \cite{guting05} focused on moving objects databases and extended database technology to deal with moving objects. \cite{challa2011} presented an introduction to the field of object tracking and provided solid foundation to the collection of diverse algorithms developed by academics, scientific researchers and engineers. \cite{hanks15} proposed a continuous-time discrete-space (CTDS) model for animal movement. \cite{niu2016modeling} considered a multivariate Ornstein Uhlenbeck diffusion process to model the movement of animals in continuous time. \cite{russell16} introduced an approach that models dependent movement by augmenting a dynamic marginal movement model with a spatial point process interaction function within a weighted distribution framework. \cite{hooten17} presented a natural basis function approach to constructing appropriate covariance models for movement processes. There are already some \proglang{R} packages available in \href{https://cran.r-project.org}{CRAN Task View: Handling and Analyzing Spatio-Temporal Data} to handle moving objects. Most of them are focused on handling and analysing animal movements such as \pkg{adehabitatLT} \citep{calenge06}, \pkg{tripEstimation} \citep{sumner2009}, \pkg{argosfilter} \citep{argosf}, \pkg{V-Track} \citep{V-Track}, \pkg{animalTrack} \citep{animalTrack}, \pkg{BBMM} \citep{BBMM}, \pkg{bcpa} \citep{bcpa}, \pkg{BayesianAnimalTracker} \citep{BayesianAnimalTracker}, \pkg{TrackReconstruction} \citep{TrackReconstruction}, \pkg{mkde} \citep{mkde}, \pkg{SimilarityMeasures} \citep{SimilarityMeasures}, \pkg{smam} \citep{smam}, \pkg{trip}\citep{trip}, \pkg{moveHMM} \citep{moveHMM}, \pkg{FLightR} \citep{FLightR}. In particular, the package \pkg{adehabitatLT} \citep{calenge06} provides tools to simulate trajectories using a Brownian motion, correlated Random walks and Levy walks. \cite{SimilarityMeasures} presented four different similarity measures in \pkg{SimilarityMeasures}. \cite{moveHMM} in \pkg{moveHMM} provided animal movement modelling using hidden Markov models. Using multiple regression, \pkg{fishmove} \citep{fishmove} provides functions to predict fish movement parameters. The \proglang{R} package \pkg{trackeR} \citep{frick} provides infrastructure for running and cycling Data. -However, to the best of our knowledge, \proglang{R} is still missing a complete set of generic data structures and methods to effectively analyse trajectories without being limited to a particular domain. Figure~\ref{taxitracks} shows routes passed by 5 different taxis on the 4th of Feb 2008 in Beijing, China. Each taxi has a different start/end time. To avoid having a complicated plot, we have only displayed 5 tracks; the entire dataset will be analysed in Section \ref{sec:explo}. - -The entire dataset is stored in the \proglang{R} package \pkg{taxidata} and can be installed through the following code. +However, to the best of our knowledge, \proglang{R} is still missing a complete set of generic data structures and methods to effectively analyse trajectories without being limited to a particular domain. Figure~\ref{taxitracks} shows the routes passed by 5 different taxis on the 4th of Feb 2008 in Beijing, China. Each taxi has a different start/end time. To avoid having a complicated plot, we have only displayed 5 tracks. The entire dataset is stored in the \proglang{R} package \pkg{taxidata} that can be installed through the following code %\begin{Schunk} \begin{Sinput} R> install.packages("taxidata", @@ -113,8 +111,7 @@ Figure~\ref{taxitracks} is generated using the following lines of code. -\begin{figure}[!h] -\begin{center} + %\begin{Schunk} \begin{Sinput} R> library("trajectories") @@ -132,6 +129,8 @@ R> plot(Z[[15]],add=T,col=4,lwd=2) \end{Sinput} %\end{Schunk} +\begin{figure}[!h] +\begin{center} \includegraphics{article-003} \end{center} \caption{Trajectory pattern containing tracks of five taxis on the 4th of Feb 2008 in Beijing, China. Each color represents a different taxi track.} @@ -144,9 +143,9 @@ % \label{taxitracks} % \end{figure} -Studying the behaviour of moving objects over time and their interaction, either between objects or with environment, plays a crucial role in understanding how they use space and more importantly how they interact each other. Moving objects are moving within a particular area over time, thus a snapshot of a trajectory pattern might be seen as a spatial point pattern. This aspect then empowers us to study the behaviour of moving objects within space and over time. A set of locations, usually non-uniformly distributed within a certain region, can be considered as a realisation of a spatial point process. Analysis of spatial point processes has been widely discussed in the literature \citep{MW03,IPSS08,D13,BRT15}. The \proglang{R} package \pkg{spatstat} \citep{baddeley05,BRT15} provides different tools for statistical analysis, model-fitting, simulation and tests on spatial point patterns. \cite{D13} has broadly considered the details of spatio-temporal point processes. Application of such processes can be found in traffic management, geography, forestry, ecology, epidemiology, seismology, astronomy and criminology. +Studying the behaviour of moving objects over time and their interaction, either between objects or with environment, plays a crucial role in understanding how they use space and more importantly how they interact each other. Moving objects are moving within a particular area over time, thus a snapshot of a trajectory pattern might be seen as a spatial point pattern. This aspect then allows to study the behaviour of moving objects within space and over time. A set of locations, usually non-uniformly distributed within a certain region, can be considered as a realisation of a spatial point process. Analysis of spatial point processes has been widely discussed in the literature \citep{MW03,IPSS08,D13,BRT15}. The \proglang{R} package \pkg{spatstat} \citep{baddeley05,BRT15} provides different tools for statistical analysis, model-fitting, simulation and tests on spatial point patterns. \cite{D13} has broadly considered the details of spatio-temporal point processes. Application of such processes can be found in traffic management, geography, forestry, ecology, epidemiology, seismology, astronomy and criminology. -This paper describes a collection of tools provided by the \proglang{R} package \pkg{trajectories} to handle, simulate and statistically analyse movement data regardless of the domain, converting a trajectory pattern into a list of point patterns based on regular timestamps. We here propose different functions to analyse the behaviour of objects over time and how they use space and also how they interact with each other. The type of interaction between objects may vary over time. The effect of the environment on the type of interaction might also be of interest. Therefore, using the literature of spatial point processes, the \proglang{R} package \pkg{trajectories} opens up a new way of thinking about trajectory datasets. We define different classes to handle trajectories, and different functions for simulating and performing exploratory data analysis. We also borrow first and second-order characteristics from the literature of spatial point processes and, by adapting them to trajectory patterns, we aim at highlighting the most frequently used routes within the studied area together with disclosing the type of interaction between the objects over time. Moreover, the \pkg{trajectories} package fits time series models to the spatial coordinates of a trajectory dataset. +This paper describes a collection of tools provided by the \proglang{R} package \pkg{trajectories} to handle, simulate and statistically analyse movement data regardless of the domain, converting a trajectory pattern into a list of point patterns based on regular timestamps. We here propose different functions to analyse the behaviour of objects over time, the way they use space and also how they interact with each other. The type of interaction between objects may vary over time. The effect of the environment on the type of interaction might also be of interest. Therefore, using the literature of spatial point processes, the \proglang{R} package \pkg{trajectories} opens up a new way of thinking about trajectory datasets. We define different classes to handle trajectories, and different functions for simulating and performing exploratory data analysis. We also borrow the first- and second-order characteristics from the literature of spatial point processes and, by adapting them to trajectory patterns, we aim at highlighting the most frequently used routes within the studied area together with disclosing the type of interaction between the objects over time. We further, and based on $\chi^2$ statistics, introduce Chi maps which show the discrepancy between the estimated intensity and expected intensity over the studied area. Moreover, the \pkg{trajectories} package fits time series models to the spatial coordinates of a trajectory dataset. The plan of the paper is the following. Section \ref{sec:setdef} presents some background and definitions. @@ -157,16 +156,16 @@ \section{Setup and definition}\label{sec:setdef} \begin{eqnarray}\label{campbell} \ee \left[\sum\limits_{x \in X} f(x)\right]=\int_{\R^2} f(u)\lambda(u) \de u, \hspace{1cm} u \in \R^2. \end{eqnarray} -Equation~\ref{campbell} has been broadly used in the literature of spatial point processes and it is called \textit{Campbell's formula}. Generally speaking, $\lambda(\cdot) $ is the expected number of points per unit area. Recall that if $\lambda(\cdot)$ is constant then $X$ is homogeneous, otherwise $X$ is called an inhomogeneous point process. One of the first and an important step in studying point processes is to investigate the intensity function. Estimating the intensity function of spatial point processes has been largely discussed \citep{D85,jones93,CSKWM13}. We denote a realisation of the point process $X$ with $n$ points as $\mathbf{x}=\{x_1,x_2,\ldots,x_n \}$; note that $n$ is not fixed in advance. -In point process analysis, we only consider a single realisation of the underlying point process, and then analyse the behaviour of that realisation. However, we might be able to collect the location of spatial events according to regular or irregular timestamps over time. We then have a series of points over time per single object which can be considered as a single track. For instance, recording the location of a taxi over particular times results in the route passed by that taxi. We here consider a {\em trajectory pattern} as a point pattern which lives in $\R^2$ but moves over time. This allows us to adapt the point process statistical methodology into the literature of trajectory patterns. +Equation~\ref{campbell} has been broadly used in the literature of spatial point processes and it is called Campbell's formula. Generally speaking, $\lambda(\cdot) $ is the expected number of points per unit area. Recall that if $\lambda(\cdot)$ is constant then $X$ is homogeneous, otherwise $X$ is called an inhomogeneous point process. One of the first and an important step in studying point processes is to investigate the intensity function. Estimating the intensity function of spatial point processes has been largely discussed \citep{D85,jones93,CSKWM13}. We denote a realisation of the point process $X$ with $n$ points as $\mathbf{x}=\{x_1,x_2,\ldots,x_n \}$; note that $n$ is not fixed in advance. +In point process analysis, we only consider a single realisation of the underlying point process, and then analyse the behaviour of that realisation. However, we might be able to collect the location of spatial events according to regular or irregular timestamps over time. We then have a series of points over time per single object which can be considered as a single track. For instance, recording the location of a taxi over particular times results in the route passed by that taxi. We here consider a trajectory pattern as a point pattern which lives in $\R^2$ but moves over time. This allows us to adapt the point process statistical methodology into the literature of trajectory patterns. \begin{definition} A \textit{trajectory pattern} is a dataset which provides observed -tracks $(s_i)$ of a set of moving objects such as cars, humans, etc over a finite time period $T$. We denote a trajectory pattern consisted by $n>0$ single tracks as $S=\{s_i: s_i \subset \R^2, \hspace{1mm} i=1,\ldots,n \}$, that is a countable set of tracks. Each $s_i$ is itself a countable set of points, e.g., $s_i=\{x_1^{s_i},x_2^{s_i}.\cdots, x_{m_i}^{s_i} \}$ with $i=1,\cdots,n$ where each $s_i$ consists of $m_i<\infty$ points that are associated with an increasing set of time stamps $t_1,...,t_{m_i}$, $t_j > t_{j+1} \forall j$. +tracks $(s_i)$ of a set of moving objects such as cars, humans, etc over a finite time period $T$. We denote a trajectory pattern consisting of $n>0$ single tracks as $S=\{s_i: s_i \subset \R^2, \hspace{1mm} i=1,\ldots,n \}$, that is a countable set of tracks. Each $s_i$ is itself a countable set of points, e.g., $s_i=\{x_1^{s_i},x_2^{s_i}.\cdots, x_{m_i}^{s_i} \}$ with $i=1,\cdots,n$ where each $s_i$ consists of $m_i<\infty$ points that are associated with an increasing set of time stamps $t_1,...,t_{m_i}$, $t_j > t_{j+1} \forall j$. \end{definition} We point out that the length of each of the tracks $s_i$ is not necessarily the same for all tracks. In other words, they might have different start/end times. Each single track $s_i$ represents the movement of a moving object within a finite time/area. It is usually supposed that locations of a moving object are recorded in regular timestamps. However, if timestamps are not regular, one can still interpolate the locations in regular timestamps. Therefore, each single track in $S$ might be seen as a set of points corresponding to the considered timestamps. Discretising all tracks of $S$ according to regular timestamps results in a list of point patterns (one per each time) which enables us to consider a trajectory pattern as a point pattern which is changing over time. Therefore, using point pattern methodology, one can study the behaviour of moving objects over time. For instance, the spatially varying distribution of objects and the type of interaction between them over time can be of interest. Assume that the trajectory pattern $S$ is observed within the time period $T$, thus discretising $T$ into a time sequence $\{t_i: t_i \subset T, i=1,\ldots,k \quad \text{where} \quad t_i < t_j \quad \text{if} \quad i< j \}$ generates a collection of spatial point patterns, say, $\textbf{x}_1,\textbf{x}_2, \ldots, \textbf{x}_k$ $(k>1)$. Details are provided in Section \ref{sec:explo}. Nevertheless, one may still consider $S$ as a point process on $\R^{2\otimes k}$, where $\R^{2\otimes k}$ means $\R^2 \times \cdots \times \R^2$ for $k$ times when the length of timestamps is $k$. We do not discuss this other approach here. \section{Classes and methods} \label{sec:classes} -In this section, we review different classes of trajectories to handle movement data in \proglang{R}. These classes were initially defined in the \proglang{R} package \pkg{spacetime} \citep{spacetime}. Before moving into the details and start analysing trajectory patterns, we load the package with: +In this section, we review different classes of trajectories to handle movement data in \proglang{R}. These classes were initially defined in the \proglang{R} package \pkg{spacetime} \citep{spacetime}. Before moving into the details and start analysing trajectory patterns, we load the package with %\begin{Schunk} \begin{Sinput} @@ -239,7 +238,7 @@ \subsection{Track} %\end{Schunk} \subsection{Tracks} - The class \class{Tracks} embodies a collection of tracks followed by a single person, animal or object. The class contains two slots: @tracks to store the tracks as objects of class \class{Track} and @tracksData to hold a summary record for each particular track (e.g., minimum and maximum time, total distance and average speed). An object of class \class{Tracks} can be created by: + The class \class{Tracks} embodies a collection of tracks followed by a single person, animal or object. The class contains two slots: @tracks to store the tracks as objects of class \class{Track} and @tracksData to hold a summary record for each particular track (e.g., minimum and maximum time, total distance and average speed). An object of class \class{Tracks} can be created by %\begin{Schunk} \begin{Sinput} @@ -262,7 +261,7 @@ \subsection{Tracks} where \code{A1} and \code{A2} are of class \class{Track}. By default, the minimum and maximum coordinates and time, the total number of geometries, the total distance as well as the average speed are computed as the summary information data. As for the \class{Track} method, a data frame and/or a custom function can be passed to expand the default data. \subsection{TracksCollection} -The class \class{TracksCollection} represents a collection of tracks followed by many persons, animals or objects. The class contains two slots: @tracksCollection to store the tracks as objects of class \class{Tracks} and @tracksCollectionData to hold summary information about each particular person, animal or object (e.g., the total number of tracks per each object). A \class{TracksCollection} object can be created by: +The class \class{TracksCollection} represents a collection of tracks followed by many persons, animals or objects. The class contains two slots: @tracksCollection to store the tracks as objects of class \class{Tracks} and @tracksCollectionData to hold summary information about each particular person, animal or object (e.g., the total number of tracks per each object). A \class{TracksCollection} object can be created by %\begin{Schunk} \begin{Sinput} R> # person B, track 1: @@ -304,8 +303,9 @@ \subsection{segments} \label{classes} \end{figure} -Figure~\ref{classes} shows the classes and their connection. We point out that classes \class{STIDF},\class{STI} and \class{ST} belong to the package \pkg{spacetime} inherently . - % \section{Methods} \label{sec:methods} +Figure~\ref{classes} shows the classes and their connection. We point out that classes \class{STIDF},\class{STI} and \class{ST} belong to the package \pkg{spacetime} inherently. + + \subsection{Methods} \label{sec:methods} A wealth of methods have been implemented to cover the most frequently used use cases. Table~\ref{Tablemethod} lists some of the methods applied to the objects of classes \code{Track}, \code{Tracks} and \code{TracksCollection}. Apart from those listed in Table~\ref{Tablemethod}, attribute data can be obtained or replaced by using \code{[]}, \code{[[]]}, \code{@} and \code{$}. \begin{table}[!h] @@ -323,7 +323,7 @@ \subsection{segments} \code{stbox}& The spatio-temporal box (window) which contains the objects\\ \code{aggregate}& Spatially aggregate track properties (coercing fixes to points)\\ \code{compare}& Compares two \class{Track} objects: for the common time period\\ - \code{dists}& Compares two \class{Tracks} using the mean distance, the Frechet distance,etc\\ + \code{dists}& Compares two \class{Tracks} using the mean distance, the Frechet distance, etc\\ \code{downsample}& Remove fixes from a \class{Track}, starting with the most densely sampled ones\\ \code{frechetDist}& Compute Frechet distance between two \class{Track} objects\\ \code{stcube} & Draw a space-time cube\\ @@ -389,7 +389,7 @@ \subsection{segments} \section{Simulation and model fitting}\label{simandfitt} \subsection{Trajectory simulation} - Simulating trajectory patterns can be a useful tool to imitate true models and understand their behaviour. The package \pkg{trajectories} allows simulating tracks using \code{rTrack}, \code{rTracks}, \code{rTracksCollection} where \code{rTrack()} generates a single track, \code{rTracks()} simulates a collection of tracks assumed to be passed by a single object and \code{rTracksCollection} is used to simulate a set of tracks passed by different objects. By default, these functions do not consider any box (or window) for the track to be simulated in and consider \code{origin=c(0,0)} as the origin of the track. However, one can still restrict the track to a desirable closed box using the argument \code{bbox}. If \code{transform=TRUE} and no \code{bbox} is given, then \code{rTrack} transforms the track to the default box $[0,1]\times [0,1]$, where in this case the origin is a random point in the default box. If a default box \code{bbox} (e.g., \code{m} in the following example) is given and \code{transform=TRUE}, then \code{origin} is a random point in \code{bbox} and the final track is also transformed into \code{bbox}. The function \code{rTrack} simulates tracks with a predefined number of points per track (indicated as \code{n} in the code with default $100$). However if \code{nrandom=TRUE} then it simulates a track with a random number of points based on a Poisson distribution with parameter \code{n}. An example of these functions is the following: + Simulating trajectory patterns can be a useful tool to imitate true models and understand their behaviour. The package \pkg{trajectories} allows simulating tracks using \code{rTrack}, \code{rTracks}, \code{rTracksCollection} where \code{rTrack()} generates a single track, \code{rTracks()} simulates a collection of tracks assumed to be passed by a single object and \code{rTracksCollection} is used to simulate a set of tracks passed by different objects. By default, these functions do not consider any box (or window) for the track to be simulated in and consider \code{origin=c(0,0)} as the origin of the track. However, one can still restrict the track to a desirable closed box using the argument \code{bbox}. If \code{transform=TRUE} and no \code{bbox} is given, then \code{rTrack} transforms the track to the default box $[0,1]\times [0,1]$, where in this case the origin is a random point in the default box. If a default box \code{bbox} (e.g., \code{m} in the following example) is given and \code{transform=TRUE}, then \code{origin} is a random point in \code{bbox} and the final track is also transformed into \code{bbox}. The function \code{rTrack} simulates tracks with a predefined number of points per track (indicated as \code{n} in the code with default $100$). However if \code{nrandom=TRUE} then it simulates a track with a random number of points based on a Poisson distribution with parameter \code{n}. An example of these functions is the following %\begin{Schunk} \begin{Sinput} R> set.seed(10) @@ -494,7 +494,8 @@ \subsection{Data} \item Regardless of taxis with no information, there are $4694$ taxis with less than $10$ recorded locations in at least one day. \item There are tracks with some jumps to the outside of the studied area and it may be caused by lack of GPS accuracy so that wrong locations have been removed. These locations might later be recovered by interpolation. \end{itemize} - We thus analyse the cleaned dataset which is based on moving data of $5642$ taxis. The map of the studied area is displayed in Figure~\ref{Beijingmapgoogle}. It is seen that the metropolitan area of Beijing is almost located in the centre of the map while there are some other townships, airports in the countryside of Beijing. + +The cleaned dataset contains the movements of $5642$ taxis, but here we only analyse the movements of 2000 taxis to speed up calculations. The map of the studied area is displayed in Figure~\ref{Beijingmapgoogle}. It is seen that the metropolitan area of Beijing is almost located in the centre of the map while there are some other townships, airports in the countryside of Beijing. \begin{figure}[!h] \centering \includegraphics[width = 4in]{Beijingmap} @@ -504,7 +505,7 @@ \subsection{Data} In the following, we present the implemented methods in \pkg{trajectories} by applying them to the taxi movement dataset in Beijing, China. \subsection{Distance analysis}\label{distanal} - A simple way to get into the nature of movement data is to study the distance between objects. The function \code{dists} provides users with calculating the distance between a pair of objects of class \class{Tracks}. This considers the distance between tracks when they overlap in time. The output is a matrix with distances between each pair of tracks or 'NA', if they do not overlap in time. A function to calculate distances can be passed to \code{dists}, such as \code{mean}, \code{sum}, \code{frechetDist}, etc. + A simple way to get into the nature of movement data is to study the distance between objects. The function \code{dists} provides users with calculating the distance between a pair of objects of class \class{Tracks}. This considers the distance between tracks when they overlap in time. The output is a matrix with distances between each pair of tracks or `NA', if they do not overlap in time. A function to calculate distances can be passed to \code{dists}, such as \code{mean}, \code{sum}, \code{frechetDist}, etc. %\begin{Schunk} \begin{Sinput} @@ -548,7 +549,7 @@ \subsubsection{Average distance over time} %\end{Schunk} \includegraphics{article-016} \end{center} -\caption{Average pairwise distances between taxis in Beijing, China. \emph{Left}: Within the period $2-8$, Feb $2008$. \emph{Right}: During $3$-rd of Feb $2008$.} +\caption{Average pairwise distances between taxis in Beijing, China. \emph{Left}: Within the period $2\text{-}8$, Feb $2008$. \emph{Right}: During $3$-{\it rd} of Feb $2008$.} \label{distbijing} \end{figure} @@ -559,7 +560,7 @@ \subsubsection{Average distance over time} % \caption{Average pairwise distance between taxis in Beijing, China. \emph{Left}: Within the period $2-8$, Feb $2008$. \emph{Right}: During $3$-rd of Feb $2008$.} % \label{distbijing} % \end{figure} -Figure~\ref{distbijing} shows the average distance between taxis in Beijing. The left plot shows the average pairwise distance between taxis for all the week and it is easily seen that there is a daily trend. In order to see the more crowded hours within a day, we show the average pairwise distances during the $3$-rd of Feb $2008$ in the right plot in Figure~\ref{distbijing}. It can be seen that the crowded time comes between midday and $17:00$. Also, it shows how taxis are getting far from each other during night. Note that small average distances between taxis might be a sign of traffic during the corresponding hours. We point out that the reason of having larger average distance in the last two days might be the Chinese new year holidays. +Figure~\ref{distbijing} shows the average distance between taxis in Beijing. The left plot shows the average pairwise distance between taxis for all the week and it is easily seen that there is a daily trend. In order to see the more crowded hours within a day, we show the average pairwise distances during the $3$-{\it rd} of Feb $2008$ in the right plot in Figure~\ref{distbijing}. It can be seen that the crowded time comes between midday and $17$. Also, it shows how taxis are getting far from each other during night. Note that small average distances between taxis might be a sign of traffic during the corresponding hours. We point out that the reason of having larger average distance in the last two days might be the Chinese new year holidays. As an alternative, one can use nearest neighbour distances instead of pairwise distances. But that might not distinguish patterns with different clusters, i.e., patterns with different sets of tracks concentrated in some particular subregions. \subsection{Movement smoothing} @@ -608,7 +609,7 @@ \subsubsection{Average distance over time} % \end{figure} Figure~\ref{idwBeijing} shows the movement smoothing for taxi data in Beijing according to the \code{timestamp= "20 mins"}. Here, we have not considered movements with length less than $1000$ meters. In other words, we assume taxis with the length of movements less than $1000$ meters per $20$ minutes as stopped. This confirms that moving in the centre is slower than countryside/highways in Beijing, and in particular, it reveals some highways/freeways in which taxis are moving faster. - After smoothing the length of movements over space, we now turn to see the changes in the average of the length of movements over time. The function \code{avemove} measures the average length of movements passed by a collection of tracks based on a desirable timestamps. Now, we apply this to the taxi data in Beijing as follows + After smoothing the length of movements over space, we now turn to see the changes in the average of the length of movements over time. The function \code{avemove} measures the average length of movements passed by a collection of tracks based on a desirable timestamps. Now, we apply this to the taxi data in Beijing. \begin{figure}[!h] \begin{center} %\begin{Schunk} @@ -625,7 +626,7 @@ \subsubsection{Average distance over time} %\end{Schunk} \includegraphics{article-018} \end{center} -\caption{Average length of movements by taxis in Beijing, China versus time based on \code{timestamp = "20 mins"}, and movements with length longer than $1000$ meters. \emph{Left}: Within the period $2-8$ Feb $2008$. \emph{Right}: During the $3$-rd of Feb $2008$.} +\caption{Average length of movements by taxis in Beijing, China versus time based on \code{timestamp = "20 mins"}, and movements with length longer than $1000$ meters. \emph{Left}: Within the period $2\text{-}8$ Feb $2008$. \emph{Right}: During the $3$-{\it rd} of Feb $2008$.} \label{avemovebijing} \end{figure} % \begin{figure}[!h] @@ -717,7 +718,7 @@ \subsection{Intensity function}\label{sec:intensity} \end{eqnarray*} is the expected intensity at time $t=t_1$ and location $u \in W$. Doing so for all $u \in W$ enables us to draw a map of $\chi^2$ values in a fixed time. The resulting map discloses the areas where the estimated intensity differs from the expected intensity. The function \code{chimaps} generates a map based on a given timestamp and rank. The argument rank is a number between one and the length of the generated time sequence based on the given timestamp, and with default one. - The chi maps of the $3$-rd of Feb based on three different ranks are displayed in Figure~\ref{bijingchi}. Values of each pixel is calculated by equation~\ref{chistat}. We show the chi maps for three different times during the day in which changes over time can be seen. The left plot of Figure~\ref{bijingchi} shows the chi map at \code{06:10:44} so that the estimated intensity is higher than the expected intensity in the countryside. The reason for this might be the movements from countryside to the city center in the early morning. The middle plot of Figure~\ref{bijingchi} shows that the estimated intensity in the city is higher than the expected intensity. This may be caused by heavier traffic in the city during the day than in the countryside. In the right plot of Figure~\ref{bijingchi}, although the estimated intensity is still slightly higher than the expected one in the city, we can see that the $\chi^2$ statistic~\ref{chistat} takes values around $0$ almost everywhere at night. These three plots together confirm the changes in the values of the $\chi^2$ statistic~\ref{chistat} over time so that the mass is moving to the city in the morning and goes away in the evening. This behaviour may be explained by the movements to the city in the morning and moving back to the countryside in the evening. + The chi maps of the $3$-{\it rd} of Feb based on three different ranks are displayed in Figure~\ref{bijingchi}. Value of each pixel is calculated by equation~\ref{chistat}. We show the chi maps for three different times during the day in which changes over time can be seen. The left plot of Figure~\ref{bijingchi} shows the chi map at \code{06:10:44} so that the estimated intensity is higher than the expected intensity in the countryside. The reason for this might be the movements from countryside to the city center in the early morning. The middle plot of Figure~\ref{bijingchi} shows that the estimated intensity in the city is higher than the expected intensity. This may be caused by heavier traffic in the city during the day than in the countryside. In the right plot of Figure~\ref{bijingchi}, although the estimated intensity is still slightly higher than the expected one in the city, we can see that the $\chi^2$ statistic~\ref{chistat} takes values around $0$ almost everywhere at night. These three plots together confirm the changes in the values of the $\chi^2$ statistic~\ref{chistat} over time so that the mass is moving to the city in the morning and goes away in the evening. This behaviour may be explained by the movements to the city in the morning and moving back to the countryside in the evening. \begin{figure}[!h] \begin{center} @@ -796,12 +797,12 @@ \subsection{Second-order summary statistics} \end{enumerate} \end{leftbar} -Note that, steps above can be applied to the pair correlation function as well. +Note that steps above can be applied to the pair correlation function as well. In both functions above, users can take advantage of the bandwidth selection to first estimate the intensity function and then pass estimated intensities to the function \code{Kinhom} or \code{pcfinhom}. Default is to not pass any estimated intensity function to \code{Kinhom} or \code{pcfinhom} in which the intensity will be estimated using the `leave-one-out' kernel smoother \citep{baddeley00,BRT15}. Different edge corrections can be also passed to \code{Kinhom.Track} and \code{pcfinhom.Track}. - Finally and taking into account that estimated intensity in Figure~\ref{bijingint} represent a non-unifrom distribution and/or clustering behaviour, we show the variability area of $K$-function and pair correlation function over time in Figure~\ref{Kgvariation} (considering the ``translate'' correction, see \cite{gabriel2014}). The left plot displays the variation of $K$-function, showing that for small distances taxis tend to have a clustering behaviour while for larger distances they favour inhibition. The right plot of the variation of the pair correlation function also confirms the same behaviour. Due to the preference of moving within particular zones, $K$-function and pair correlation function might result as what is displayed in Figure~\ref{Kgvariation}. In other words, taxis might prefer to take passengers to close destinations within particular zones rather than further destinations. Argument \code{q} is to use quantiles of the values of $K$-function (or pair correlation function) rather than using maximum and minimum. Default \code{q=0} uses maximum and minimum. + Finally and taking into account that estimated intensity in Figure~\ref{bijingint} represents a non-uniform distribution and/or clustering behaviour, we show the variability area of $K$-function and pair correlation function over time in Figure~\ref{Kgvariation} (considering the ``translate'' correction, see \cite{gabriel2014}). The left plot displays the variation of $K$-function, showing that for small distances taxis tend to have a clustering behaviour while for larger distances they favour inhibition. The right plot of the variation of the pair correlation function also confirms the same behaviour. Due to the preference of moving within particular zones, $K$-function and pair correlation function might result as what is displayed in Figure~\ref{Kgvariation}. In other words, taxis might prefer to take passengers to close destinations within particular zones rather than further destinations. Argument \code{q} is to use quantiles of the values of $K$-function (or pair correlation function) rather than using maximum and minimum. Default \code{q=0} uses maximum and minimum. \begin{figure}[!h] \begin{center} %\begin{Schunk} @@ -828,14 +829,14 @@ \subsection{Second-order summary statistics} % \label{Kgvariation} % \end{figure} - We point out that as this kind of discretising trajectory patterns results in a set of spatial point patterns, it may also drives us to consider them as replicated spatial point patterns. Therefore, one may be able to introduce a single $K$-function or pair correlation function for all patterns. Note that in this case, point patterns are not independent. For more details, see \citet[Section 5.4]{D13}. + We point out that as this kind of discretising trajectory patterns results in a set of spatial point patterns, it may also drive us to consider them as replicated spatial point patterns. Therefore, one may be able to introduce a single $K$-function or pair correlation function for all patterns. Note that in this case, point patterns are not independent. For more details, see \citet[Section 5.4]{D13}. \section{Summary and discussion} \label{sec:summary} Analysing trajectory data is often a challenge as moving objects are living in space while moving in time. Such data might be analysed in space or time separately. However, one may look at trajectory patterns with a different perspective. In this paper, we introduced a set of classes to handle trajectory data and defined a set of methods to summarise trajectory patterns. We have considered different classes to handle tracks passed by one object or a group of objects. We also aimed at statistically analysing trajectory data in space and see the changes in the behaviour of data over time. To do so, the literature of spatial point processes has been adapted to trajectory patterns. An average intensity function is defined for a trajectory pattern with tracks that overlap in time and it nicely reveals the more visited spots, streets, highways, etc. Pairwise distances between different objects have been also considered in \pkg{trajectories} showing how moving objects interact over time. Moreover, we have implemented methods to smooth the length of movements over time which highlights where objects move faster/slower. In addition, the discrepancy between the estimated intensity and the expected intensity per location per time can be studied in \pkg{trajectories} which shows how the mass is moving within the studied area over time. We finally presented a variability area for second-order summary statistics such as $K$-function and pair correlation function which displays the type of interaction between objects over time, highlighting possible clustering or inhibition. - To perform an exploratory data analysis, we finally applied the developed methodologies to a taxi data from Beijing, China. The results nicely highlight the behaviour of taxis over time. We have recognized where the more visited spots are and also at what time data pattern is denser or objects get closer to each other. We smoothed the movements of taxis and discovered where and at what time they move faster. Not surprisingly, results confirm that moving within the city is slower than countryside or highways. Also, in the afternoon there is a decrease in the length of movements which might be affected by traffic. Chi maps have been studied showing how the mass is moving within the studied area. They display that objects are moving from countryside to the city in the morning making a heavy traffic in the city in the afternoon, as the estimated intensity is higher than the expected one. Chi maps also confirm that the discrepancy between the estimated intensity and the expected one is less during the evening than any other time. The variability area of $K$-function and pair correlation function show that for small distances, taxis tend to show a clustering behaviour while for longer distances they show repulsion. + To perform an exploratory data analysis, we finally applied the developed methodologies to a taxi data from Beijing, China. The results nicely highlight the behaviour of taxis over time. We have recognised where the more visited spots are and also at what time data pattern is denser or objects get closer to each other. We smoothed the movements of taxis and discovered where and at what time they move faster. Not surprisingly, results confirm that moving within the city is slower than countryside or highways. Also, in the afternoon there is a decrease in the length of movements which might be affected by traffic. Chi maps have been studied showing how the mass is moving within the studied area. They display that objects are moving from countryside to the city in the morning making a heavy traffic in the city in the afternoon, as the estimated intensity is higher than the expected one. Chi maps also confirm that the discrepancy between the estimated intensity and the expected one is less during the evening than any other time. The variability area of $K$-function and pair correlation function show that for small distances, taxis tend to show a clustering behaviour while for longer distances they show repulsion. We leave open the analysis of the effect of the environment on moving objects and the corresponding parametric analysis for future works. diff --git a/vignettes/jss.bst b/vignettes/jss.bst new file mode 100644 index 0000000..ae75415 --- /dev/null +++ b/vignettes/jss.bst @@ -0,0 +1,1653 @@ +%% +%% This is file `jss.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,nm-rvx,keyxyr,dt-beg,yr-par,note-yr,tit-qq,atit-u,trnum-it,vol-bf,volp-com,num-xser,pre-edn,isbn,issn,edpar,pp,ed,xedn,xand,etal-it,revdata,eprint,url,url-blk,doi,nfss') +%% +%% ** BibTeX style file for JSS publications (http://www.jstatsoft.org/) +%% +%% License: GPL-2 | GPL-3 + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above, provided + % with kind permission of Patrick W Daly. + % + % This generated file can be redistributed and/or modified under the terms + % of the General Public License (Version 2 or 3). + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2011/11/18 4.33 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., 1990, p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + archive + author + booktitle + chapter + collaboration + doi + edition + editor + eid + eprint + howpublished + institution + isbn + issn + journal + key + month + note + number + numpages + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + new.block +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +STRINGS {z} + +FUNCTION {remove.dots} +{ 'z := + "" + { z empty$ not } + { z #1 #2 substring$ + duplicate$ "\." = + { z #3 global.max$ substring$ 'z := * } + { pop$ + z #1 #1 substring$ + z #2 global.max$ substring$ 'z := + duplicate$ "." = 'pop$ + { * } + if$ + } + if$ + } + while$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} +FUNCTION {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" swap$ * "}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edition" } + +FUNCTION {bbl.volume} +{ "volume" } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "number" } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.eidpp} +{ "pages" } + +FUNCTION {bbl.chapter} +{ "chapter" } + +FUNCTION {bbl.techrep} +{ "Technical Report" } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {format.eprint} +{ eprint duplicate$ empty$ + 'skip$ + { "\eprint" + archive empty$ + 'skip$ + { "[" * archive * "]" * } + if$ + "{" * swap$ * "}" * + } + if$ +} +FUNCTION {format.url} +{ + url + duplicate$ empty$ + { pop$ "" } + { "\urlprefix\url{" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + + +STRINGS { bibinfo} + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{ jj}{ f{}}" + format.name$ + remove.dots + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + "," * + t "others" = + { + " " * bbl.etal emphasize * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f{}~}{vv~}{ll}{ jj}" + format.name$ + remove.dots + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + "," * + t "others" = + { + + " " * bbl.etal emphasize * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names + duplicate$ empty$ 'skip$ + { collaboration "collaboration" bibinfo.check + duplicate$ empty$ 'skip$ + { " (" swap$ * ")" * } + if$ + * + } + if$ +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.isbn} +{ isbn "isbn" bibinfo.check + duplicate$ empty$ 'skip$ + { + new.block + "ISBN " swap$ * + } + if$ +} + +FUNCTION {format.issn} +{ issn "issn" bibinfo.check + duplicate$ empty$ 'skip$ + { + new.block + "ISSN " swap$ * + } + if$ +} + +FUNCTION {format.doi} +{ doi empty$ + { "" } + { + new.block + "\doi{" doi * "}" * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + "\enquote{" swap$ * + add.period$ "}" * + } + if$ +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + " (" swap$ * ")" * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ bbl.of space.word * swap$ + emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ", " * + } + if$ + swap$ * + numpages empty$ 'skip$ + { bbl.eidpp numpages tie.or.space.prefix + "numpages" bibinfo.check * * + " (" swap$ * ")" * * + } + if$ + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + bolden + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "(" swap$ * ")" * + } + if$ * + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + "(" swap$ * "), " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address "address" bibinfo.check * + } + { t * + address empty$ + 'skip$ + { ", " * address "address" bibinfo.check * } + if$ + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + format.edition output + new.sentence + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + format.isbn output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.isbn output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + format.edition output + new.sentence + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + crossref missing$ + { format.isbn output } + 'skip$ + if$ + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + new.sentence + format.publisher.address output + format.isbn output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.isbn output + format.issn output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + organization address new.block.checkb + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.block + howpublished "howpublished" bibinfo.check output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.isbn output + format.issn output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + new.block + format.tr.number emphasize output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + format.doi output + new.block + format.note "note" output.check + format.eprint output + format.url output + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal emphasize * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal emphasize * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" 't := } + 'skip$ + if$ + t sortify * + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num last.extra.num.extended last.extra.num.blank number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + "a" chr.to.int$ #1 - 'last.extra.num.blank := + last.extra.num.blank 'last.extra.num.extended := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num "z" chr.to.int$ > + { "a" chr.to.int$ 'last.extra.num := + last.extra.num.extended #1 + 'last.extra.num.extended := + } + 'skip$ + if$ + last.extra.num.extended last.extra.num.blank > + { last.extra.num.extended int.to.chr$ + last.extra.num int.to.chr$ + * 'extra.label := } + { last.extra.num int.to.chr$ 'extra.label := } + if$ + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\newcommand{\enquote}[1]{``#1''}" + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\providecommand{\urlprefix}{URL }" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax" + write$ newline$ + " \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else" + write$ newline$ + " \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi" + write$ newline$ + "\providecommand{\eprint}[2][]{\url{#2}}" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `jss.bst'. diff --git a/vignettes/jss.cls b/vignettes/jss.cls new file mode 100644 index 0000000..c38b8f6 --- /dev/null +++ b/vignettes/jss.cls @@ -0,0 +1,509 @@ +%% +%% This is file `jss.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% jss.dtx (with options: `class') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from jss.cls. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file jss.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\def\fileversion{3.0} +\def\filename{jss} +\def\filedate{2015/09/01} +%% +%% Package `jss' to use with LaTeX2e for JSS publications (http://www.jstatsoft.org/) +%% License: GPL-2 | GPL-3 +%% Copyright: (C) Achim Zeileis +%% Please report errors to Achim.Zeileis@R-project.org +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{jss}[\filedate\space\fileversion\space jss class by Achim Zeileis] +%% options +\newif\if@article +\newif\if@codesnippet +\newif\if@bookreview +\newif\if@softwarereview +\newif\if@review +\newif\if@shortnames +\newif\if@nojss +\newif\if@notitle +\newif\if@noheadings +\newif\if@nofooter + +\@articletrue +\@codesnippetfalse +\@bookreviewfalse +\@softwarereviewfalse +\@reviewfalse +\@shortnamesfalse +\@nojssfalse +\@notitlefalse +\@noheadingsfalse +\@nofooterfalse + +\DeclareOption{article}{\@articletrue% + \@codesnippetfalse \@bookreviewfalse \@softwarereviewfalse} +\DeclareOption{codesnippet}{\@articlefalse% + \@codesnippettrue \@bookreviewfalse \@softwarereviewfalse} +\DeclareOption{bookreview}{\@articlefalse% + \@codesnippetfalse \@bookreviewtrue \@softwarereviewfalse} +\DeclareOption{softwarereview}{\@articlefalse% + \@codesnippetfalse \@bookreviewfalse \@softwarereviewtrue} +\DeclareOption{shortnames}{\@shortnamestrue} +\DeclareOption{nojss}{\@nojsstrue} +\DeclareOption{notitle}{\@notitletrue} +\DeclareOption{noheadings}{\@noheadingstrue} +\DeclareOption{nofooter}{\@nofootertrue} + +\ProcessOptions +\LoadClass[11pt,a4paper,twoside]{article} +%% required packages +\RequirePackage{graphicx,color,ae,fancyvrb} +\RequirePackage[T1]{fontenc} +\IfFileExists{upquote.sty}{\RequirePackage{upquote}}{} +%% bibliography +\if@shortnames + \usepackage[authoryear,round]{natbib} +\else + \usepackage[authoryear,round,longnamesfirst]{natbib} +\fi +\bibpunct{(}{)}{;}{a}{}{,} +\bibliographystyle{jss} +%% page layout +\topmargin 0pt +\textheight 46\baselineskip +\advance\textheight by \topskip +\oddsidemargin 0.1in +\evensidemargin 0.15in +\marginparwidth 1in +\oddsidemargin 0.125in +\evensidemargin 0.125in +\marginparwidth 0.75in +\textwidth 6.125in +%% paragraphs +\setlength{\parskip}{0.7ex plus0.1ex minus0.1ex} +\setlength{\parindent}{0em} +%% for all publications +\newcommand{\Address}[1]{\def\@Address{#1}} +\newcommand{\Plaintitle}[1]{\def\@Plaintitle{#1}} +\newcommand{\Shorttitle}[1]{\def\@Shorttitle{#1}} +\newcommand{\Plainauthor}[1]{\def\@Plainauthor{#1}} +\newcommand{\Volume}[1]{\def\@Volume{#1}} +\newcommand{\Year}[1]{\def\@Year{#1}} +\newcommand{\Month}[1]{\def\@Month{#1}} +\newcommand{\Issue}[1]{\def\@Issue{#1}} +\newcommand{\Submitdate}[1]{\def\@Submitdate{#1}} +%% for articles and code snippets +\newcommand{\Acceptdate}[1]{\def\@Acceptdate{#1}} +\newcommand{\Abstract}[1]{\def\@Abstract{#1}} +\newcommand{\Keywords}[1]{\def\@Keywords{#1}} +\newcommand{\Plainkeywords}[1]{\def\@Plainkeywords{#1}} +%% for book and software reviews +\newcommand{\Reviewer}[1]{\def\@Reviewer{#1}} +\newcommand{\Booktitle}[1]{\def\@Booktitle{#1}} +\newcommand{\Bookauthor}[1]{\def\@Bookauthor{#1}} +\newcommand{\Publisher}[1]{\def\@Publisher{#1}} +\newcommand{\Pubaddress}[1]{\def\@Pubaddress{#1}} +\newcommand{\Pubyear}[1]{\def\@Pubyear{#1}} +\newcommand{\ISBN}[1]{\def\@ISBN{#1}} +\newcommand{\Pages}[1]{\def\@Pages{#1}} +\newcommand{\Price}[1]{\def\@Price{#1}} +\newcommand{\Plainreviewer}[1]{\def\@Plainreviewer{#1}} +\newcommand{\Softwaretitle}[1]{\def\@Softwaretitle{#1}} +\newcommand{\URL}[1]{\def\@URL{#1}} +\newcommand{\DOI}[1]{\def\@DOI{#1}} +%% for internal use +\newcommand{\Seriesname}[1]{\def\@Seriesname{#1}} +\newcommand{\Hypersubject}[1]{\def\@Hypersubject{#1}} +\newcommand{\Hyperauthor}[1]{\def\@Hyperauthor{#1}} +\newcommand{\Footername}[1]{\def\@Footername{#1}} +\newcommand{\Firstdate}[1]{\def\@Firstdate{#1}} +\newcommand{\Seconddate}[1]{\def\@Seconddate{#1}} +\newcommand{\Reviewauthor}[1]{\def\@Reviewauthor{#1}} +%% defaults +\author{Firstname Lastname\\Affiliation} +\title{Title} +\Abstract{---!!!---an abstract is required---!!!---} +\Plainauthor{\@author} +\Volume{VV} +\Year{YYYY} +\Month{MMMMMM} +\Issue{II} +\Submitdate{yyyy-mm-dd} +\Acceptdate{yyyy-mm-dd} +\Address{ + Firstname Lastname\\ + Affiliation\\ + Address, Country\\ + E-mail: \email{name@address}\\ + URL: \url{http://link/to/webpage/} +} + +\Reviewer{Firstname Lastname\\Affiliation} +\Plainreviewer{Firstname Lastname} +\Booktitle{Book Title} +\Bookauthor{Book Author} +\Publisher{Publisher} +\Pubaddress{Publisher's Address} +\Pubyear{YYY} +\ISBN{x-xxxxx-xxx-x} +\Pages{xv + 123} +\Price{USD 69.95 (P)} +\URL{http://link/to/webpage/} +\DOI{10.18637/jss.v000.i00} +\if@article + \Seriesname{Issue} + \Hypersubject{Journal of Statistical Software} + \Plaintitle{\@title} + \Shorttitle{\@title} + \Plainkeywords{\@Keywords} +\fi + +\if@codesnippet + \Seriesname{Code Snippet} + \Hypersubject{Journal of Statistical Software -- Code Snippets} + \Plaintitle{\@title} + \Shorttitle{\@title} + \Plainkeywords{\@Keywords} +\fi + +\if@bookreview + \Seriesname{Book Review} + \Hypersubject{Journal of Statistical Software -- Book Reviews} + \Plaintitle{\@Booktitle} + \Shorttitle{\@Booktitle} + \Reviewauthor{\@Bookauthor\\ + \@Publisher, \@Pubaddress, \@Pubyear.\\ + ISBN~\@ISBN. \@Pages~pp. \@Price.\\ + \url{\@URL}} + \Plainkeywords{} + \@reviewtrue +\fi + +\if@softwarereview + \Seriesname{Software Review} + \Hypersubject{Journal of Statistical Software -- Software Reviews} + \Plaintitle{\@Softwaretitle} + \Shorttitle{\@Softwaretitle} + \Booktitle{\@Softwaretitle} + \Reviewauthor{\@Publisher, \@Pubaddress. \@Price.\\ + \url{\@URL}} + \Plainkeywords{} + \@reviewtrue +\fi + +\if@review + \Hyperauthor{\@Plainreviewer} + \Keywords{} + \Footername{Reviewer} + \Firstdate{\textit{Published:} \@Submitdate} + \Seconddate{} +\else + \Hyperauthor{\@Plainauthor} + \Keywords{---!!!---at least one keyword is required---!!!---} + \Footername{Affiliation} + \Firstdate{\textit{Submitted:} \@Submitdate} + \Seconddate{\textit{Accepted:} \@Acceptdate} +\fi +%% Sweave(-like) +\DefineVerbatimEnvironment{Sinput}{Verbatim}{fontshape=sl} +\DefineVerbatimEnvironment{Soutput}{Verbatim}{} +\DefineVerbatimEnvironment{Scode}{Verbatim}{fontshape=sl} +\newenvironment{Schunk}{}{} +\DefineVerbatimEnvironment{Code}{Verbatim}{} +\DefineVerbatimEnvironment{CodeInput}{Verbatim}{fontshape=sl} +\DefineVerbatimEnvironment{CodeOutput}{Verbatim}{} +\newenvironment{CodeChunk}{}{} +\setkeys{Gin}{width=0.8\textwidth} +%% footer +\newlength{\footerskip} +\setlength{\footerskip}{2.5\baselineskip plus 2ex minus 0.5ex} + +\newcommand{\makefooter}{% + \vspace{\footerskip} + + \if@nojss + \begin{samepage} + \textbf{\large \@Footername: \nopagebreak}\\[.3\baselineskip] \nopagebreak + \@Address \nopagebreak + \end{samepage} + \else + \begin{samepage} + \textbf{\large \@Footername: \nopagebreak}\\[.3\baselineskip] \nopagebreak + \@Address \nopagebreak + \vfill + \hrule \nopagebreak + \vspace{.1\baselineskip} + {\fontfamily{pzc} \fontsize{13}{15} \selectfont Journal of Statistical Software} + \hfill + \url{http://www.jstatsoft.org/}\\ \nopagebreak + published by the Foundation for Open Access Statistics + \hfill + \url{http://www.foastat.org/}\\[.3\baselineskip] \nopagebreak + {\@Month{} \@Year, Volume~\@Volume, \@Seriesname~\@Issue} + \hfill + \@Firstdate\\ \nopagebreak + {\href{http://dx.doi.org/\@DOI}{\tt doi:\@DOI}} + \hfill + \@Seconddate \nopagebreak + \vspace{.3\baselineskip} + \hrule + \end{samepage} + \fi +} +\if@nofooter + %% \AtEndDocument{\makefooter} +\else + \AtEndDocument{\makefooter} +\fi +%% required packages +\RequirePackage{hyperref} +%% new \maketitle +\def\@myoddhead{ + {\color{white} JSS}\\[-1.42cm] + \hspace{-2em} \includegraphics[height=23mm,keepaspectratio]{jsslogo} \hfill + \parbox[b][23mm]{118mm}{\hrule height 3pt + \center{ + {\fontfamily{pzc} \fontsize{28}{32} \selectfont Journal of Statistical Software} + \vfill + {\it \small \@Month{} \@Year, Volume~\@Volume, \@Seriesname~\@Issue.% + \hfill \href{http://dx.doi.org/\@DOI}{doi:\,\@DOI}}}\\[0.1cm] + \hrule height 3pt}} +\if@review + \renewcommand{\maketitle}{ + \if@nojss + %% \@oddhead{\@myoddhead}\\[3\baselineskip] + \else + \@oddhead{\@myoddhead}\\[3\baselineskip] + \fi + {\large + \noindent + Reviewer: \@Reviewer + \vspace{\baselineskip} + \hrule + \vspace{\baselineskip} + \textbf{\@Booktitle} + \begin{quotation} \noindent + \@Reviewauthor + \end{quotation} + \vspace{0.7\baselineskip} + \hrule + \vspace{1.3\baselineskip} + } + + \thispagestyle{empty} + \if@nojss + \markboth{\centerline{\@Shorttitle}}{\centerline{\@Hyperauthor}} + \else + \markboth{\centerline{\@Shorttitle}}{\centerline{\@Hypersubject}} + \fi + \pagestyle{myheadings} + } +\else + \def\maketitle{ + \if@nojss + %% \@oddhead{\@myoddhead} \par + \else + \@oddhead{\@myoddhead} \par + \fi + \begingroup + \def\thefootnote{\fnsymbol{footnote}} + \def\@makefnmark{\hbox to 0pt{$^{\@thefnmark}$\hss}} + \long\def\@makefntext##1{\parindent 1em\noindent + \hbox to1.8em{\hss $\m@th ^{\@thefnmark}$}##1} + \@maketitle \@thanks + \endgroup + \setcounter{footnote}{0} + + \if@noheadings + %% \markboth{\centerline{\@Shorttitle}}{\centerline{\@Hypersubject}} + \else + \thispagestyle{empty} + \if@nojss + \markboth{\centerline{\@Shorttitle}}{\centerline{\@Hyperauthor}} + \else + \markboth{\centerline{\@Shorttitle}}{\centerline{\@Hypersubject}} + \fi + \pagestyle{myheadings} + \fi + + \let\maketitle\relax \let\@maketitle\relax + \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax + } + + \def\@maketitle{\vbox{\hsize\textwidth \linewidth\hsize + \if@nojss + %% \vskip 1in + \else + \vskip 1in + \fi + {\centering + {\LARGE\bf \@title\par} + \vskip 0.2in plus 1fil minus 0.1in + { + \def\and{\unskip\enspace{\rm and}\enspace}% + \def\And{\end{tabular}\hss \egroup \hskip 1in plus 2fil + \hbox to 0pt\bgroup\hss \begin{tabular}[t]{c}\large\bf\rule{\z@}{24pt}\ignorespaces}% + \def\AND{\end{tabular}\hss\egroup \hfil\hfil\egroup + \vskip 0.1in plus 1fil minus 0.05in + \hbox to \linewidth\bgroup\rule{\z@}{10pt} \hfil\hfil + \hbox to 0pt\bgroup\hss \begin{tabular}[t]{c}\large\bf\rule{\z@}{24pt}\ignorespaces} + \hbox to \linewidth\bgroup\rule{\z@}{10pt} \hfil\hfil + \hbox to 0pt\bgroup\hss \begin{tabular}[t]{c}\large\bf\rule{\z@}{24pt}\@author + \end{tabular}\hss\egroup + \hfil\hfil\egroup} + \vskip 0.3in minus 0.1in + \hrule + \begin{abstract} + \@Abstract + \end{abstract}} + \textit{Keywords}:~\@Keywords. + \vskip 0.1in minus 0.05in + \hrule + \vskip 0.2in minus 0.1in + }} +\fi +%% sections, subsections, and subsubsections +\newlength{\preXLskip} +\newlength{\preLskip} +\newlength{\preMskip} +\newlength{\preSskip} +\newlength{\postMskip} +\newlength{\postSskip} +\setlength{\preXLskip}{1.8\baselineskip plus 0.5ex minus 0ex} +\setlength{\preLskip}{1.5\baselineskip plus 0.3ex minus 0ex} +\setlength{\preMskip}{1\baselineskip plus 0.2ex minus 0ex} +\setlength{\preSskip}{.8\baselineskip plus 0.2ex minus 0ex} +\setlength{\postMskip}{.5\baselineskip plus 0ex minus 0.1ex} +\setlength{\postSskip}{.3\baselineskip plus 0ex minus 0.1ex} + +\newcommand{\jsssec}[2][default]{\vskip \preXLskip% + \pdfbookmark[1]{#1}{Section.\thesection.#1}% + \refstepcounter{section}% + \centerline{\textbf{\Large \thesection. #2}} \nopagebreak + \vskip \postMskip \nopagebreak} +\newcommand{\jsssecnn}[1]{\vskip \preXLskip% + \centerline{\textbf{\Large #1}} \nopagebreak + \vskip \postMskip \nopagebreak} + +\newcommand{\jsssubsec}[2][default]{\vskip \preMskip% + \pdfbookmark[2]{#1}{Subsection.\thesubsection.#1}% + \refstepcounter{subsection}% + \textbf{\large \thesubsection. #2} \nopagebreak + \vskip \postSskip \nopagebreak} +\newcommand{\jsssubsecnn}[1]{\vskip \preMskip% + \textbf{\large #1} \nopagebreak + \vskip \postSskip \nopagebreak} + +\newcommand{\jsssubsubsec}[2][default]{\vskip \preSskip% + \pdfbookmark[3]{#1}{Subsubsection.\thesubsubsection.#1}% + \refstepcounter{subsubsection}% + {\large \textit{#2}} \nopagebreak + \vskip \postSskip \nopagebreak} +\newcommand{\jsssubsubsecnn}[1]{\vskip \preSskip% + {\textit{\large #1}} \nopagebreak + \vskip \postSskip \nopagebreak} + +\newcommand{\jsssimplesec}[2][default]{\vskip \preLskip% +%% \pdfbookmark[1]{#1}{Section.\thesection.#1}% + \refstepcounter{section}% + \textbf{\large #1} \nopagebreak + \vskip \postSskip \nopagebreak} +\newcommand{\jsssimplesecnn}[1]{\vskip \preLskip% + \textbf{\large #1} \nopagebreak + \vskip \postSskip \nopagebreak} + +\if@review + \renewcommand{\section}{\secdef \jsssimplesec \jsssimplesecnn} + \renewcommand{\subsection}{\secdef \jsssimplesec \jsssimplesecnn} + \renewcommand{\subsubsection}{\secdef \jsssimplesec \jsssimplesecnn} +\else + \renewcommand{\section}{\secdef \jsssec \jsssecnn} + \renewcommand{\subsection}{\secdef \jsssubsec \jsssubsecnn} + \renewcommand{\subsubsection}{\secdef \jsssubsubsec \jsssubsubsecnn} +\fi +%% colors +\definecolor{Red}{rgb}{0.5,0,0} +\definecolor{Blue}{rgb}{0,0,0.5} +\if@review + \hypersetup{% + hyperindex = {true}, + colorlinks = {true}, + linktocpage = {true}, + plainpages = {false}, + linkcolor = {Blue}, + citecolor = {Blue}, + urlcolor = {Red}, + pdfstartview = {Fit}, + pdfpagemode = {None}, + pdfview = {XYZ null null null} + } +\else + \hypersetup{% + hyperindex = {true}, + colorlinks = {true}, + linktocpage = {true}, + plainpages = {false}, + linkcolor = {Blue}, + citecolor = {Blue}, + urlcolor = {Red}, + pdfstartview = {Fit}, + pdfpagemode = {UseOutlines}, + pdfview = {XYZ null null null} + } +\fi +\if@nojss + \AtBeginDocument{ + \hypersetup{% + pdfauthor = {\@Hyperauthor}, + pdftitle = {\@Plaintitle}, + pdfkeywords = {\@Plainkeywords} + } + } +\else + \AtBeginDocument{ + \hypersetup{% + pdfauthor = {\@Hyperauthor}, + pdftitle = {\@Plaintitle}, + pdfsubject = {\@Hypersubject}, + pdfkeywords = {\@Plainkeywords} + } + } +\fi +\if@notitle + %% \AtBeginDocument{\maketitle} +\else + \AtBeginDocument{\maketitle} +\fi +%% commands +\newcommand\code{\bgroup\@makeother\_\@makeother\~\@makeother\$\@codex} +\def\@codex#1{{\normalfont\ttfamily\hyphenchar\font=-1 #1}\egroup} +%%\let\code=\texttt +\let\proglang=\textsf +\newcommand{\pkg}[1]{{\fontseries{b}\selectfont #1}} +\newcommand{\email}[1]{\href{mailto:#1}{\normalfont\texttt{#1}}} +\ifx\csname urlstyle\endcsname\relax + \newcommand\@doi[1]{doi:\discretionary{}{}{}#1}\else + \newcommand\@doi{doi:\discretionary{}{}{}\begingroup +\urlstyle{tt}\Url}\fi +\newcommand{\doi}[1]{\href{http://dx.doi.org/#1}{\normalfont\texttt{\@doi{#1}}}} +\newcommand{\E}{\mathsf{E}} +\newcommand{\VAR}{\mathsf{VAR}} +\newcommand{\COV}{\mathsf{COV}} +\newcommand{\Prob}{\mathsf{P}} +\endinput +%% +%% End of file `jss.cls'. diff --git a/vignettes/refs.bib b/vignettes/refs.bib index 6da6794..4cf3772 100644 --- a/vignettes/refs.bib +++ b/vignettes/refs.bib @@ -10,7 +10,7 @@ @article{ABN12 } @book{guting05, - title={Moving objects databases}, + title={Moving Objects Databases}, author={G{\"u}ting, Ralf Hartmut and Schneider, Markus}, year={2005}, publisher={Elsevier} @@ -31,7 +31,7 @@ @book{BRT15 } @article{D85, - title={A kernel method for smoothing point process data}, + title={A Kernel Method for Smoothing Point Process Data}, author={Diggle, Peter}, journal={Applied Statistics}, volume={34}, @@ -294,7 +294,7 @@ @book{D13 @article{baddeley05, - title={\pkg{Spatstat}: an \proglang{R} package for analyzing spatial point patterns}, + title={\pkg{Spatstat}: An \proglang{R} Package for Analyzing Spatial Point Patterns}, author={Baddeley, Adrian and Turner, Rolf}, journal = {Journal of Statistical Software, Articles}, volume = {12}, @@ -384,7 +384,7 @@ @article{gloaguen15 } @article{baddeley00, - title={Non-and semi-parametric estimation of interaction in inhomogeneous point patterns}, + title={Non-and Semi-Parametric Estimation of Interaction in Inhomogeneous Point Patterns}, author={Baddeley, Adrian and M{\o}ller, Jesper and Waagepetersen, Rasmus}, journal={Statistica Neerlandica}, volume={54}, @@ -402,7 +402,7 @@ @article{benes17 } @article{calenge06, - title={The package \pkg{adehabitat} for the \proglang{R} software: a tool for the analysis of space and habitat use by animals}, + title={The Package \pkg{adehabitat} for the \proglang{R} Software: A Tool for the Analysis of Space and Habitat Use by Animals}, author={Calenge, Cl{\'e}ment}, journal={Ecological modelling}, volume={197}, @@ -422,14 +422,14 @@ @Manual{trip } @book{daley07, - title={An Introduction to The theory of Point Processes: Volume II: General Theory and Structure}, + title={An Introduction to the Theory of Point Processes: Volume II: General Theory and Structure}, author={Daley, Daryl J and Vere-Jones, David}, year={2007}, publisher={Springer-Verlag Science \& Business Media} } @article{jones93, - title={Simple boundary correction for kernel density estimation}, + title={Simple Boundary Correction for Kernel Density Estimation}, author={Jones, M Chris}, journal={Statistics and Computing}, volume={3}, @@ -443,13 +443,13 @@ @article{jones93 @article{Ord78, author={Ord, J.K.}, year={1978}, -title={How many trees in a forest?}, +title={How Many Trees in a Forest?}, journal={Mathematical Sciences}, volume={3}, pages={23--33} } @article{BSV10, - title={On the {V}oronoi estimator for the intensity of an inhomogeneous planar Poisson process}, + title={On the {V}oronoi Estimator for the Intensity of an Inhomogeneous Planar Poisson Process}, author={Barr, Christopher D and Schoenberg, Frederic Paik}, journal={Biometrika}, volume={97}, @@ -460,7 +460,7 @@ @article{BSV10 } @article{ripley77, - title={Modelling spatial patterns}, + title={Modelling Spatial Patterns}, author={Ripley, Brian D}, journal={Journal of the Royal Statistical Society. Series B (Methodological)}, volume={39}, @@ -471,7 +471,7 @@ @article{ripley77 } @article{sumner2009, - title={Bayesian estimation of animal movement from archival and satellite tags}, + title={Bayesian Estimation of Animal Movement from Archival and Satellite Tags}, author={Sumner, Michael D and Wotherspoon, Simon J and Hindell, Mark A}, journal={PLoS One}, doi={https://doi.org/10.1371/journal.pone.0007324}, @@ -483,7 +483,7 @@ @article{sumner2009 } @Manual{argosf, - title = {\pkg{argosfilter}: Argos locations filter}, + title = {\pkg{argosfilter}: Argos Locations Flter}, author = {Carla Freitas}, year = {2012}, note = {\proglang{R} package version 0.63}, @@ -491,7 +491,7 @@ @Manual{argosf } @Manual{animalTrack, - title = {\pkg{animalTrack}: Animal track reconstruction for high frequency 2-dimensional (2D) or 3-dimensional (3D) movement data}, + title = {\pkg{animalTrack}: Animal Track Reconstruction for High Frequency 2-Dimensional (2D) or 3-Dimensional (3D) Movement Data}, author = {Ed Farrell and Lee Fuiman}, year = {2013}, note = {\proglang{R} package version 1.0.0}, @@ -499,7 +499,7 @@ @Manual{animalTrack } @Manual{BBMM, - title = {\pkg{BBMM}: Brownian bridge movement model}, + title = {\pkg{BBMM}: Brownian Bridge Movement Model}, author = {Nielson, R. M. and Sawyer, H. and McDonald, T. L.}, year = {2013}, note = {\proglang{R} package version 3.0}, @@ -507,7 +507,7 @@ @Manual{BBMM } @Manual{bcpa, - title = {\pkg{bcpa}: Behavioral change point analysis of animal movement}, + title = {\pkg{bcpa}: Behavioral Change Point Analysis of Animal Movement}, author = {Eliezer Gurarie}, year = {2014}, note = {\proglang{R} package version 1.1}, @@ -531,8 +531,7 @@ @Manual{BayesianAnimalTracker } @Manual{TrackReconstruction, - title = {\pkg{TrackReconstruction}: Reconstruct animal tracks from magnetometer, accelerometer, depth and optional speed data, -depth and optional speed data.}, + title = {\pkg{TrackReconstruction}: Reconstruct Animal Tracks from Magnetometer, Accelerometer, Depth and Optional Speed Data.}, author = {Brian Battaile}, year = {2014}, note = {\proglang{R} package version 1.1}, @@ -540,7 +539,7 @@ @Manual{TrackReconstruction } @Manual{mkde, - title = {\pkg{mkde}: 2D and 3D movement-based kernel density estimates (MKDEs).}, + title = {\pkg{mkde}: 2D and 3D Movement-Based Kernel Density Estimates (MKDEs).}, author = {Jeff A. Tracey and James Sheppard and Jun Zhu and Robert Sinkovts and Amit Chourasia and Glenn Lockwood and Robert N. Fisher}, year = {2014}, note = {\proglang{R} package version 0.1}, @@ -548,7 +547,7 @@ @Manual{mkde } @Article{moveHMM, - title = {\pkg{moveHMM}: an \proglang{R} package for the statistical modelling of animal movement data using hidden Markov models}, + title = {\pkg{moveHMM}: An \proglang{R} Package for the Statistical Modelling of Animal Movement Data Using Hidden Markov Models}, author = {Theo Michelot and Roland Langrock and Toby A. Patterson}, journal = {Methods in Ecology and Evolution}, year = {2016}, @@ -558,7 +557,7 @@ @Article{moveHMM } @Article{V-Track, - title = {\pkg{V-Track}: software for analysing and visualising animal movement from acoustic telemetry detections}, + title = {\pkg{V-Track}: Software for Analysing and Visualising Animal Movement from Acoustic Telemetry Detections}, journal={Marine and Freshwater Research}, volume={63}, number={9}, @@ -577,7 +576,7 @@ @Manual{SimilarityMeasures } @article{FLightR, - title={\pkg{FLightR}: an \proglang{R} package for reconstructing animal paths from solar geolocation loggers}, + title={\pkg{FLightR}: An \proglang{R} Package for Reconstructing Animal Paths from Solar Geolocation Loggers}, author={Rakhimberdiev, Eldar and Saveliev, Anatoly and Piersma, Theunis and Karagicheva, Julia}, journal={Methods in Ecology and Evolution}, volume={8}, @@ -588,7 +587,7 @@ @article{FLightR } @article{hanks15, - title={Continuous-time discrete-space models for animal movement}, + title={Continuous-Time Discrete-Space Models for Animal Movement}, author={Hanks, Ephraim M and Hooten, Mevin B and Alldredge, Mat W and others}, journal={The Annals of Applied Statistics}, volume={9}, @@ -599,7 +598,7 @@ @article{hanks15 } @article{hooten17, - title={Basis function models for animal movement}, + title={Basis Function Models for Animal Movement}, author={Hooten, Mevin B and Johnson, Devin S}, journal={Journal of the American Statistical Association}, volume={112}, @@ -610,7 +609,7 @@ @article{hooten17 } @article{russell16, - title={Dynamic models of animal movement with spatial point process interactions}, + title={Dynamic Models of Animal Movement with Spatial Point Process Interactions}, author={Russell, James C and Hanks, Ephraim M and Haran, Murali}, journal={Journal of Agricultural, Biological, and Environmental Statistics}, volume={21}, @@ -621,7 +620,7 @@ @article{russell16 } @Article{fishmove, - title = {Patterns and predictors of fish dispersal in rivers}, + title = {Patterns and Predictors of Fish Dispersal in Rivers}, author = {J. Radinger and C. Wolter}, journal = {Fish and Fisheries}, year = {2014}, @@ -630,7 +629,7 @@ @Article{fishmove } @article{spacetime, - title={\pkg{spacetime}: Spatio-Temporal data in \proglang{R}}, + title={\pkg{spacetime}: Spatio-Temporal Data in \proglang{R}}, author = {Edzer Pebesma}, journal = {Journal of Statistical Software, Articles}, volume = {51}, @@ -645,7 +644,7 @@ @article{spacetime } @inproceedings{yuan11, - title={Driving with knowledge from the physical world}, + title={Driving with Knowledge from the Physical World}, author={Yuan, Jing and Zheng, Yu and Xie, Xing and Sun, Guangzhong}, booktitle={Proceedings of the 17th ACM SIGKDD international conference on Knowledge discovery and data mining}, pages={316--324}, @@ -654,7 +653,7 @@ @inproceedings{yuan11 } @inproceedings{yuan10, - title={T-drive: driving directions based on taxi trajectories}, + title={T-Drive: Driving Directions Based on Taxi Trajectories}, author={Yuan, Jing and Zheng, Yu and Zhang, Chengyang and Xie, Wenlei and Xie, Xing and Sun, Guangzhong and Huang, Yan}, booktitle={Proceedings of the 18th SIGSPATIAL International conference on advances in geographic information systems}, pages={99--108}, @@ -680,7 +679,7 @@ @article{frick @article{gabriel2014, - title={Estimating second-order characteristics of inhomogeneous spatio-temporal point processes}, + title={Estimating Second-Order Characteristics of Inhomogeneous Spatio-Temporal Point Processes}, author={Gabriel, Edith}, journal={Methodology and Computing in Applied Probability}, volume={16}, @@ -690,7 +689,7 @@ @article{gabriel2014 } @article{niu2016modeling, - title={Modeling interdependent animal movement in continuous time}, + title={Modeling Interdependent Animal Movement in Continuous Time}, author={Niu, Mu and Blackwell, Paul G and Skarin, Anna}, journal={Biometrics}, volume={72}, From 6b9af4be38aafe405d248bfb677c8ff2904028f3 Mon Sep 17 00:00:00 2001 From: Moradii Date: Tue, 21 May 2019 17:13:13 +0200 Subject: [PATCH 02/44] .Rd files updated + updates in some print functions --- R/Trackstat.R | 45 +++++++++++++------------- R/rtracks.R | 16 +++++----- man/Kinhom.Track.Rd | 56 ++++++++++++++++++--------------- man/Track.idw.Rd | 41 +++++++++++------------- man/as.Track.Rd | 41 ++++++++++-------------- man/as.Track.arrow.Rd | 33 ++++++++++--------- man/as.Track.ppp.Rd | 36 +++++++++++---------- man/as.list.Tracks.Rd | 27 ++++++---------- man/as.list.TracksCollection.Rd | 28 ++++++----------- man/auto.arima.Track.Rd | 30 +++++++++--------- man/avedistTrack.Rd | 44 +++++++++++++------------- man/avemove.Rd | 50 ++++++++++++++++------------- man/chimaps.Rd | 43 +++++++++++++------------ man/density.list.Rd | 36 ++++++++++----------- man/pcfinhom.Track.Rd | 43 ++++++++++++------------- man/plot.KTrack.Rd | 26 ++++++--------- man/plot.arwlen.Rd | 19 +++++------ man/plot.distrack.Rd | 16 ++++------ man/plot.gTrack.Rd | 21 ++++++------- man/print.ArimaTrack.Rd | 24 +++++--------- man/print.KTrack.Rd | 15 ++++----- man/print.Track.Rd | 17 ++++------ man/print.Tracks.Rd | 15 ++++----- man/print.TracksCollection.Rd | 15 ++++----- man/print.Trrow.Rd | 18 ++++------- man/print.arwlen.Rd | 20 +++++------- man/print.distrack.Rd | 40 +++++------------------ man/print.gTrack.Rd | 16 +++++----- man/range.Track.Rd | 24 ++++---------- man/reTrack.Rd | 33 ++++++++----------- man/rtrack.Rd | 2 +- man/tsqTracks.Rd | 34 ++++++++------------ man/unique.Track.Rd | 26 ++++++--------- 33 files changed, 413 insertions(+), 537 deletions(-) diff --git a/R/Trackstat.R b/R/Trackstat.R index 8636ea6..d37a132 100644 --- a/R/Trackstat.R +++ b/R/Trackstat.R @@ -72,6 +72,9 @@ range.Track <- function(X,...) { # tsqtracks returns a sequance of time based on a list of tracks (or a single object of class Track) and an argument timestamp tsqTracks <- function(X, timestamp){ + if(class(X)=="Tracks") X <- as.list.Tracks(X) + if (class(X)=="TracksCollection") X <- as.list.TracksCollection(X) + timerange = if (is.list(X)) lapply(X, range.Track) else @@ -117,8 +120,8 @@ avedistTrack <- function(X,timestamp){ attr(avedist,"tsq") <- attr(Y,"tsq") return(avedist) } -print.distrack <- function(x, ...){ - print(as.vector(x), ...) +print.distrack <- function(x){ + print(as.vector(x)) } plot.distrack <- function(x,...){ @@ -141,7 +144,7 @@ as.Track.ppp <- function(X,timestamp){ if(class(X)=="Tracks") X <- as.list.Tracks(X) if (class(X)=="TracksCollection") X <- as.list.TracksCollection(X) stopifnot(length(X)>1 & is.list(X)) - + if (!requireNamespace("spatstat", quietly = TRUE)) stop("spatstat required: install first?") @@ -170,9 +173,9 @@ as.Track.ppp <- function(X,timestamp){ return(Tppp) } -print.ppplist <- function(x,...){ +print.ppplist <- function(x){ attributes(x) <- NULL - print(x, ...) + print(x) } density.list <- function(x, timestamp, ...) { @@ -196,7 +199,7 @@ density.list <- function(x, timestamp, ...) { return(out) } -as.Track.arrow <- function(X,timestamp,epsilon=epsilon){ +as.Track.arrow <- function(X,timestamp,epsilon=0){ stopifnot(class(X)=="list" | class(X)=="Tracks" | class(X)=="TracksCollection") if(class(X)=="Tracks") X <- as.list.Tracks(X) @@ -237,12 +240,12 @@ as.Track.arrow <- function(X,timestamp,epsilon=epsilon){ return(Y) } -print.Trrow <- function(x, ...) { +print.Trrow <- function(x) { attributes(x) <- NULL - print(x, ...) + print(x) } -Track.idw <- function(X,timestamp,epsilon=epsilon,...){ +Track.idw <- function(X,timestamp,epsilon=0,...){ stopifnot(class(X)=="list" | class(X)=="Tracks" | class(X)=="TracksCollection") if(class(X)=="Tracks") X <- as.list.Tracks(X) @@ -258,7 +261,7 @@ Track.idw <- function(X,timestamp,epsilon=epsilon,...){ return(meanIDW) } -avemove <- function(X,timestamp,epsilon=epsilon){ +avemove <- function(X,timestamp,epsilon=0){ stopifnot(class(X)=="list" | class(X)=="Tracks" | class(X)=="TracksCollection") if(class(X)=="Tracks") X <- as.list.Tracks(X) @@ -281,8 +284,8 @@ avemove <- function(X,timestamp,epsilon=epsilon){ return(out) } -print.arwlen <- function(x, ...){ - print(as.vector(x), ...) +print.arwlen <- function(x){ + print(as.vector(x)) } plot.arwlen <- function(x,...){ @@ -325,8 +328,8 @@ chimaps <- function(X,timestamp,rank,...){ } Kinhom.Track <- function(X,timestamp, - correction=c("border", "bord.modif", "isotropic", "translate"),q, - sigma=c("default","bw.diggle","bw.ppl"," bw.scott"),...){ + correction=c("border", "bord.modif", "isotropic", "translate"),q=0, + sigma=c("default","bw.diggle","bw.ppl"," bw.scott"),...){ stopifnot(class(X)=="list" | class(X)=="Tracks" | class(X)=="TracksCollection") @@ -392,8 +395,8 @@ Kinhom.Track <- function(X,timestamp, attr(out,"out") <- out return(out) } -print.KTrack <- function(x, ...){ - print("variability area of K-function", ...) +print.KTrack <- function(x){ + print("variability area of K-function") } plot.KTrack <- function(x,type="l",col= "grey70",cex=1,line=2.2,...){ @@ -454,7 +457,7 @@ pcfinhom.Track <- function(X,timestamp, Z <- attr(ZZ,"Tracksim") Y <- attr(ZZ,"ppps") - + g <- lapply(X=1:length(Y), function(i){ gg <- spatstat::pcfinhom(Y[[i]],lambda = Z[[i]],correction=cor,...) return(as.data.frame(gg)) @@ -482,8 +485,8 @@ pcfinhom.Track <- function(X,timestamp, } -print.gTrack <- function(x, ...){ - print("variability area of pair correlatio function", ...) +print.gTrack <- function(x){ + print("variability area of pair correlatio function") } plot.gTrack <- function(x,type="l",col= "grey70",cex=1,line=2.2,...){ @@ -506,7 +509,7 @@ plot.gTrack <- function(x,type="l",col= "grey70",cex=1,line=2.2,...){ auto.arima.Track <- function(X,...){ if (! requireNamespace("forecast", quietly = TRUE)) stop("package forecast required, please install it first") - + stopifnot(class(X)=="Track") xseries <- coordinates(X)[,1] yseries <- coordinates(X)[,2] @@ -520,7 +523,7 @@ auto.arima.Track <- function(X,...){ return(out) } -print.ArimaTrack <- function(x, ...){ +print.ArimaTrack <- function(x){ attributes(x) <- NULL cat("Arima model fitted to x-coordinate: "); cat(paste0(x[[1]]),"\n") diff --git a/R/rtracks.R b/R/rtracks.R index 2c6a553..cfbed2a 100644 --- a/R/rtracks.R +++ b/R/rtracks.R @@ -1,5 +1,5 @@ rTrack <- function (n = 100, origin = c(0, 0), start = as.POSIXct("1970-01-01"), - ar = 0.8, step = 60, sd0 = 1,bbox=bbox, transform=FALSE,nrandom=FALSE, ...){ + ar = 0.8, step = 60, sd0 = 1,bbox=bbox, transform=FALSE,nrandom=FALSE,...){ if(nrandom) repeat{n <- rpois(1,n);if(!n==0) break()} if (missing(bbox) & transform) { @@ -14,12 +14,12 @@ rTrack <- function (n = 100, origin = c(0, 0), start = as.POSIXct("1970-01-01"), } if (length(ar) == 1 && ar == 0) xy = cbind(x=cumsum(rnorm(n, sd = sd0)) + origin[1], y=cumsum(rnorm(n, - sd = sd0)) + origin[2]) + sd = sd0)) + origin[2]) else {xy = cbind(x=origin[1] + cumsum(as.vector(arima.sim(list(ar = ar), - n, sd = sd0, ...))), + n, sd = sd0, ...))), y=origin[2] + cumsum(as.vector(arima.sim(list(ar = ar), - - n, sd = sd0, ...))))} + + n, sd = sd0, ...))))} if(transform) { if(missing(bbox)) bbox <- matrix(c(0,1,0,1),nrow = 2,byrow = T); colnames(bbox) <- c("min","max");rownames(bbox) <- c("x","y") @@ -52,19 +52,19 @@ rTracksCollection <- function (p = 10, sd2 = 0, ...) sd = sd2), ...))) -print.Track <- function(x,...){ +print.Track <- function(x){ X = x if (class(X@sp)=="SpatialPoints") { cat("An object of class Track \n"); cat(paste0(nrow(as.data.frame(X@sp)), "points"),"\n"); - } + } if (class(X@sp)=="SpatialLines") { cat("A generalized object of class Track \n"); cat(paste0(length(X@sp@lines), "lines"),"\n"); } cat(paste0("bbox:"),"\n"); print(X@sp@bbox); - cat(paste0("Time period: [",range(X@endTime)[1],", ", range(X@endTime)[2],"]")) + cat(paste0("Time period: [",range(X@endTime)[1],", ", range(X@endTime)[2],"]"),"\n") } print.Tracks <- function(X){ diff --git a/man/Kinhom.Track.Rd b/man/Kinhom.Track.Rd index 1e37187..ccfe44d 100644 --- a/man/Kinhom.Track.Rd +++ b/man/Kinhom.Track.Rd @@ -1,41 +1,49 @@ \name{Kinhom.Track} \alias{Kinhom.Track} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Inhomogeneous K-function for trajectory pattern +Inhomogeneous K-function for a trajectory pattern } + \description{ -Estimate the variability area of K-function of a list of tracks.} +Estimate the variability area of the K-function for an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects over time.} + \usage{ Kinhom.Track(X,timestamp, - correction=c("border", "bord.modif", "isotropic", "translate"),q, + correction=c("border", "bord.modif", "isotropic", "translate"),q=0, sigma=c("default","bw.diggle","bw.ppl"," bw.scott"),...) } -%- maybe also 'usage' for other objects documented here. + \arguments{ - \item{X}{ -A list of Track objects -} -\item{timestamp}{based on secs,mins,...} -\item{correction}{the type of correction to be used in computing K-function} -\item{q}{(optional) a numeric value between 0 and 1. quantile to be applied to calculate the variability area} -\item{sigma}{method to be used in computing intensity function} -\item{...}{passed to the arguments of Kinhom} +\item{X}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} +\item{timestamp}{based on secs,mins,... .} +\item{correction}{the type of correction to be used when computing K-function.} +\item{q}{(optional) a numeric value between 0 and 1. quantile to be applied to calculate the variability area.} +\item{sigma}{method to be considered for bandwidth selection in computing intensity function.} +\item{...}{arguments passed to the \link[spatstat]{Kinhom}.} } + \details{ -This calculates the variability area of K-function over time. If sigma=default, it calculates the variability area using the defaults of Kinhom, otherwise it first estimate the intensity function using the given sigma as bandwidth selection method and then using the estimated intensity function, it estimates the variability area. +The type of interaction (clustering, repulsion, randomness) between tracks in X might vary over time. The function \link[trajectories]{Kinhom.Track} calculates the variability area of \link[spatstat]{Kinhom} over time. The variability area is calculated based on the K-functions of all obtained point patterns when converting a trajectory pattern to a list of point patterns. + +If sigma=default, it calculates the variability area using the defaults of \link[spatstat]{Kinhom}, otherwise it first estimates the intensity function using the given bandwidth selection method and then using the estimated intensity function it estimates the variability area. + +The lower and upper border of the variability area is calculated based on the \link[stats]{quantile} of values of all obtained K-functions. q=0 means considering maximum and minimum. + +Note that, tracks in X should overlap in time. } + \value{ -an object of class "KTrack". +an object of class KTrack. } + \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } -%% ~Make other sections like Warning with \section{Warning }{....} ~ - \seealso{ -\link[trajectories]{rTrack}, \link[trajectories]{as.Track.ppp}, \link[spatstat]{Kinhom}} +\link[trajectories]{rTrack}, \link[trajectories]{as.Track.ppp}, \link[spatstat]{Kinhom} +} + \examples{ library(spatstat) X <- list() @@ -43,10 +51,6 @@ for(i in 1:100){ m <- matrix(c(0,10,0,10),nrow=2,byrow = TRUE) X[[i]] <- rTrack(bbox = m,transform = TRUE) } -Kinhom.Track(X,timestamp = "180 secs") - -} -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line +k <- Kinhom.Track(X,timestamp = "180 secs") +plot(k) +} \ No newline at end of file diff --git a/man/Track.idw.Rd b/man/Track.idw.Rd index d97e1ef..efc7110 100644 --- a/man/Track.idw.Rd +++ b/man/Track.idw.Rd @@ -1,40 +1,39 @@ \name{Track.idw} \alias{Track.idw} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Movement smoothing of trajectory pattern +Movement smoothing of a trajectory pattern } \description{ -Movement smoothing of trajectory pattern +Movement smoothing of an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects. } \usage{ -Track.idw(X,timestamp,epsilon=epsilon,...) +Track.idw(X,timestamp,epsilon=0,...) } -%- maybe also 'usage' for other objects documented here. + \arguments{ - \item{X}{ -a list of objects of class "Track" -} -\item{timestamp}{ -based on secs,mins, ... -} -\item{epsilon}{(optional) movements with length less than epsilon are not considered in the calculation} -\item{...}{passed to arguments of fucntion idw in spatstat} + \item{X}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} +\item{timestamp}{based on secs,mins, ... .} +\item{epsilon}{(optional) movements with a length less than epsilon are not considered in the calculation.} +\item{...}{arguments passed to \link[spatstat]{idw} function.} } \details{ -Performs spatial smoothing to the movements of a list of tracks. +Performs spatial smoothing to an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects. + +X will be converted to a list of marked point patterns using \link[trajectories]{as.Track.arrow} and then inverse-distance weighted smoothing will be applied to each obtained marked point pattern using \link[spatstat]{idw}. The average of all smoothed maps is considered as an inverse-distance weighted smoothing of X. + +Note that, tracks in X should overlap in time. } \value{ -an image of class "im". +an image of class \link[spatstat]{im}. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } -%% ~Make other sections like Warning with \section{Warning }{....} ~ - \seealso{ -\link[trajectories]{as.Track.arrow}, \link[spatstat]{idw}} +\link[trajectories]{as.Track.arrow}, \link[spatstat]{idw} +} + \examples{ X <- list() for(i in 1:10){ @@ -43,7 +42,3 @@ for(i in 1:10){ } Track.idw(X,timestamp="180 secs") } -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/man/as.Track.Rd b/man/as.Track.Rd index 4597950..6fa7bc1 100644 --- a/man/as.Track.Rd +++ b/man/as.Track.Rd @@ -1,41 +1,38 @@ \name{as.Track} \alias{as.Track} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Converts data to an object of class "Track" +Converts data to an object of class Track } \description{ -Function as.Track accepts converts x,y coordinates and thier corresponding time/date to an object of class Track. It can also accepts covariates for the corresponding - locations, covariates must be a dataframe with some columns and length of each column is equal - to length of x,y,t. +Function \link[trajectories]{as.Track} accepts x,y coordinates and thier corresponding time/date, and converts them to an object of class \link[trajectories]{Track}. It can also accepts covariates for the corresponding locations. } \usage{ as.Track(x,y,t,covariate) } -%- maybe also 'usage' for other objects documented here. + \arguments{ - \item{x}{ x coordinate. -} -\item{y}{ y coordinate. -} -\item{t}{ corresponding time and date of x,y. -} -\item{covariate}{ additional information. -} +\item{x}{ x coordinate.} +\item{y}{ y coordinate.} +\item{t}{ corresponding time and date of x,y.} +\item{covariate}{ additional information.} } + \details{ -An object of class "Track" can be created by some geographical locations and corresponding time/dates. Function as.Track converts locations and dates/times to an object of class "Track". time/date should be from class "POSIXct" "POSIXt". See example below. +An object of class \link[trajectories]{Track} can be created by some geographical locations and corresponding time/dates. The function \link[trajectories]{as.Track} converts locations and dates/times to an object of class \link[trajectories]{Track}. time/date should be of classes \link[base]{POSIXct} or \link[base]{POSIXt}. + +The additional covariates must be a dataframe with some columns (each column is conisdered as a convariate), and the length of each column must be equal to length of x,y,t. } + \value{ -An object of class "Track".} -\author{ -Mohammad Mehdi Moradi +An object of class \link[trajectories]{Track}. } -%% ~Make other sections like Warning with \section{Warning }{....} ~ +\author{ +Mohammad Mehdi Moradi +} \seealso{ -\link[trajectories]{Track}, \link[base]{as.POSIXct} +\link[trajectories]{Track}, \link[base]{as.POSIXct}, \link[base]{as.POSIXlt} } \examples{ x <- runif(10,0,1) @@ -44,7 +41,3 @@ date <- seq(as.POSIXct("2015-1-1 0:00"), as.POSIXct("2015-1-1 9:00"), by = "hour Z <- as.Track(x,y,date) plot(Z) } -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/man/as.Track.arrow.Rd b/man/as.Track.arrow.Rd index e2aeb1d..1f9f8d8 100644 --- a/man/as.Track.arrow.Rd +++ b/man/as.Track.arrow.Rd @@ -1,36 +1,39 @@ \name{as.Track.arrow} \alias{as.Track.arrow} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Convert trajectory pattern to a list of marked point patterns +Convert a trajectory pattern to a list of marked point patterns } + \description{ -Converting a list of Track objects to a list of marked point patterns. Each mark shows the length of movement. +Convert objects of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects to a list of marked point patterns. } + \usage{ -as.Track.arrow(X,timestamp,epsilon=epsilon) +as.Track.arrow(X,timestamp,epsilon=0) } -%- maybe also 'usage' for other objects documented here. + \arguments{ - \item{X}{ -A list of Track objects -} +\item{X}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} \item{timestamp}{based on secs, mins,...} -\item{epsilon}{(optional) movements with length less than epsilon are not considered in the calculation} +\item{epsilon}{(optional) movements with a length less than epsilon are not considered in the calculation.} } \details{ -Converting a list of Track objetcs to a list of marked point patterns. Marks show the length of movement with respect to the previous location. +This function converts an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects to a list of marked point patterns. +The function first converts X to a list of spatial point patterns based on a given timestamp and using the function \link[trajectories]{as.Track.ppp}. Then each two consecutive (according to their corresponding time) point patterns make a segment pattern of class \link[spatstat]{psp}. Finally, each segment pattern will be converted to a marked point pattern according to which points represent the midpoints of segments and marks are the length of segments. The segment point patterns are kept as attributes. + +Dealing with real data, sometimes moving objects such as taxies and pedestrians are not moving while being recorded their location. In order to deal with such a situation, argument epsilon is implemented in \link[trajectories]{as.Track.arrow} to ignore the movements with a length less than epsilon. epsilon=0 does not ignore any movement. + +Note that, tracks in X should overlap in time. } \value{ a list of marked point patterns. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } -%% ~Make other sections like Warning with \section{Warning }{....} ~ \seealso{ -\link[trajectories]{rTrack}, \link[trajectories]{as.Track.ppp} +\link[trajectories]{rTrack}, \link[trajectories]{as.Track.ppp}, \link[spatstat]{psp}, \link[spatstat]{midpoints.psp} } \examples{ X <- list() @@ -40,7 +43,3 @@ for(i in 1:10){ } Y <- as.Track.arrow(X,timestamp="120 secs") } -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/man/as.Track.ppp.Rd b/man/as.Track.ppp.Rd index 365dd86..3acabb7 100644 --- a/man/as.Track.ppp.Rd +++ b/man/as.Track.ppp.Rd @@ -1,34 +1,40 @@ \name{as.Track.ppp} \alias{as.Track.ppp} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Conver trajectory pattern to a list of objects of class ppp +Conver a trajectory pattern to a list of objects of class ppp } + \description{ -This function converts a list of Tracks to a list of point patterns (class "ppp")} +This function convert objects of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects to a list of spatial point patterns of class \link[spatstat]{ppp}. +} + \usage{ as.Track.ppp(X,timestamp) } -%- maybe also 'usage' for other objects documented here. + \arguments{ - \item{X}{ -a list of Track objects -} +\item{X}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} \item{timestamp}{based on secs, mins,...} } + \details{ -as.Track.ppp converts a list of Track objetcs to a list of ppp objetcs.} +The function \link[trajectories]{as.Track.ppp} converts objects of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects to a list of spatial point patterns of class \link[spatstat]{ppp} according to a given timestamp. Each obtained spatial point pattern represents the locatoin of "moving objects" (e.g., taxis) in its corresponding time. + +Note that, tracks in X should overlap in time. +} + \value{ -A list of point patterns, objects of class "ppp". +A list of spatial point patterns as objects of class \link[spatstat]{ppp}. } -\author{ -Mohammad Mehdi Moradi } -%% ~Make other sections like Warning with \section{Warning }{....} ~ +\author{ +Mohammad Mehdi Moradi +} \seealso{ \link[trajectories]{avedistTrack}, \link[spatstat]{as.ppp} } + \examples{ X <- list() for(i in 1:10){ @@ -36,8 +42,4 @@ for(i in 1:10){ X[[i]] <- rTrack(bbox = m,transform = TRUE) } Y <- as.Track.ppp(X,timestamp="120 secs") -} -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line +} \ No newline at end of file diff --git a/man/as.list.Tracks.Rd b/man/as.list.Tracks.Rd index 9abb7f9..3b12c55 100644 --- a/man/as.list.Tracks.Rd +++ b/man/as.list.Tracks.Rd @@ -1,40 +1,31 @@ \name{as.list.Tracks} \alias{as.list.Tracks} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -as.list.Tracks -%% ~~function to do ... ~~ +Tracks methods } \description{ -Convert a "Tracks" object to a list of tracks -%% ~~ A concise (1-5 lines) description of what the function does. ~~ +Convert an object of class \link[trajectories]{Tracks} to a list of tracks. } + \usage{ \method{as.list}{Tracks}(x,...) } -%- maybe also 'usage' for other objects documented here. + \arguments{ - \item{x}{ - an object of class "Tracks" -%% ~~Describe \code{X} here~~ -} -\item{...}{passed to arguments of as.list} +\item{x}{an object of class "Tracks".} +\item{...}{arguments passed on the \link[base]{as.list} fucntion.} } + \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } -%% ~Make other sections like Warning with \section{Warning }{....} ~ \seealso{ \link[trajectories]{rTrack}, \link[trajectories]{rTracks}, \link[trajectories]{rTracksCollection}, \link[base]{as.list} -%% ~~objects to See Also as \code{\link{help}}, ~~~ } + \examples{ x <- rTracks() as.list(x) } -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/man/as.list.TracksCollection.Rd b/man/as.list.TracksCollection.Rd index 7fce749..fdbdb0e 100644 --- a/man/as.list.TracksCollection.Rd +++ b/man/as.list.TracksCollection.Rd @@ -1,40 +1,30 @@ \name{as.list.TracksCollection} \alias{as.list.TracksCollection} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -as.list.TracksCollection -%% ~~function to do ... ~~ +TracksCollection methods } \description{ -Convert a "TracksCollection" object to a list of tracks -%% ~~ A concise (1-5 lines) description of what the function does. ~~ +Convert an object of class \link[trajectories]{TracksCollection} to a list of tracks. } + \usage{ \method{as.list}{TracksCollection}(x,...) } -%- maybe also 'usage' for other objects documented here. + \arguments{ - \item{x}{ - an object of class "TracksCollection" -%% ~~Describe \code{Y} here~~ -} -\item{...}{passed to arguments of as.list} +\item{x}{an object of class \link[trajectories]{TracksCollection}} +\item{...}{arguments passed on the \link[base]{as.list} fucntion.} } + \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } -%% ~Make other sections like Warning with \section{Warning }{....} ~ - \seealso{ \link[trajectories]{rTrack}, \link[trajectories]{rTracks}, \link[trajectories]{rTracksCollection}, \link[base]{as.list} -%% ~~objects to See Also as \code{\link{help}}, ~~~ } + \examples{ x <- rTracksCollection() as.list(x) } -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/man/auto.arima.Track.Rd b/man/auto.arima.Track.Rd index a6cc3f5..d9f1d96 100644 --- a/man/auto.arima.Track.Rd +++ b/man/auto.arima.Track.Rd @@ -1,38 +1,38 @@ \name{auto.arima.Track} \alias{auto.arima.Track} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Fitting arima model to a track +Fitting arima model to an object of class Track } \description{ -Fit arima models to objects of class "Track".} +Fit arima models to objects of class \link[trajectories]{Track}. +} + \usage{ auto.arima.Track(X, ...) } -%- maybe also 'usage' for other objects documented here. + \arguments{ - \item{X}{ an object of class "Track"} - \item{...}{ passed to arguments of \link[forecast]{auto.arima}} + \item{X}{an object of class \link[trajectories]{Track}.} + \item{...}{arguments passed to the \link[forecast]{auto.arima} function.} } + \details{ -This fita arima models to the x,y locations of objects of class "Track".} +This function considers objects of class \link[trajectories]{Track} as time series and fits arima models to their x,y locations separately. +} + \value{ -an object of class "ArimaTrack" +an object of class "ArimaTrack". Fitted arima models to coordinates x and y are kept as attribute. } + \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } -%% ~Make other sections like Warning with \section{Warning }{....} ~ - \seealso{ \link[trajectories]{rTrack}, \link[forecast]{auto.arima} } + \examples{ X <- rTrack() auto.arima.Track(X) } -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/man/avedistTrack.Rd b/man/avedistTrack.Rd index 8254a28..f20110b 100644 --- a/man/avedistTrack.Rd +++ b/man/avedistTrack.Rd @@ -1,37 +1,43 @@ \name{avedistTrack} \alias{avedistTrack} -%- Also NEED an '\alias' for EACH other topic documented here. + \title{ -Average pairwise distance of trajectory pattern over time +Average pairwise distance of a trajectory pattern over time } + \description{ This measures the average of pairwise distances between tracks over time. } + \usage{ avedistTrack(X,timestamp) } -%- maybe also 'usage' for other objects documented here. + \arguments{ - \item{X}{a list of some objects of class "Track" -%% ~~Describe \code{x} here~~ -} -\item{timestamp}{timestamp to calculate the pairwise distances between tarcks} +\item{X}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} +\item{timestamp}{a timestamp to calculate the pairwise distances between tracks accordingly.} } + \details{ -This function calculates the average pairwise distance between a list of tracks according to a given timestamp. +This function calculates the average pairwise distance for an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects according to a given timestamp. + +The function first converts X to a list of spatial point patterns based on a given timestamp and using the function \link[trajectories]{as.Track.ppp}. For each obtained point pattern pairwise distances are calculated using \link[spatstat]{pairdist} and then their average is considered as "average pairwise distance" for their corresponding time. Distance from each point to itself is ignored. + +Note that, tracks in X should overlap in time. } + \value{ -An object of class "distrack". It can be plotted over time. +a numeric vector represents the average pairwise distances that can be plotted with respect to time. } + \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } -%% ~Make other sections like Warning with \section{Warning }{....} ~ - \seealso{ -\link[trajectories]{as.Track.ppp} +\link[trajectories]{as.Track.ppp}, \link[spatstat]{pairdist} } + \examples{ X <- list() for(i in 1:10){ @@ -39,12 +45,6 @@ for(i in 1:10){ X[[i]] <- rTrack(bbox = m,transform = TRUE) } -ave <- avedistTrack(X,timestamp = "120 secs") -plot(ave,type="l") - - -} -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line +out <- avedistTrack(X,timestamp = "120 secs") +plot(out,type="l") +} \ No newline at end of file diff --git a/man/avemove.Rd b/man/avemove.Rd index 2d424a0..627fc48 100644 --- a/man/avemove.Rd +++ b/man/avemove.Rd @@ -1,46 +1,52 @@ \name{avemove} \alias{avemove} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Average movement of trajectory pattern +Average length of movement of a trajectory pattern over time } + \description{ -This returns the average movements of a lits of objects of class "Track" over time. +This returns the average length of movements of an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects over time. } + \usage{ -avemove(X,timestamp,epsilon=epsilon) +avemove(X,timestamp,epsilon=0) } -%- maybe also 'usage' for other objects documented here. + \arguments{ - \item{X}{a list of some objects of class Track -%% ~~Describe \code{x} here~~ -} -\item{timestamp}{timestamp to calculate the pairwise distances between tarcks} -\item{epsilon}{(optional) movements with length less than epsilon are not considered in the calculation} +\item{X}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} +\item{timestamp}{a timestamp to calculate the length of movements accordingly.} +\item{epsilon}{(optional) movements with a length less than epsilon are not considered in the calculation.} } + \details{ -when analysying a list of tracks, avemove calculate the average of movements based on given timestamp.} + +The function first converts X to a list of spatial point patterns based on a given timestamp and using the function \link[trajectories]{as.Track.ppp}. Then each two consecutive (according to their corresponding time) point patterns make a segment pattern of class \link[spatstat]{psp}. +Each segment shows the movement, connecting an origin point (the location at the previous time) to a destination point (the location at the current time). +Finally, for the obtained segment patterns, the length of each segment is calculated using \link[spatstat]{lengths.psp} and their average is considered as "average length of movement" at that time. + +Dealing with real data, sometimes moving objects such as taxies and pedestrians are not moving while being recorded their location. In order to deal with such a situation, argument epsilon is implemented in \link[trajectories]{avemove} to ignore the movements with a length less than epsilon. epsilon=0 does not ignore any movement. + +Note that, tracks in X should overlap in time. + +} + \value{ -an object of class "numeric" or "arwlen". +a numeric vector represents the average length of movements that can be plotted with respect to time. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } -%% ~Make other sections like Warning with \section{Warning }{....} ~ - \seealso{ -\link[trajectories]{as.Track.arrow} +\link[trajectories]{as.Track.arrow}, \link[spatstat]{lengths.psp} } + \examples{ X <- list() for(i in 1:10){ m <- matrix(c(0,10,0,10),nrow=2,byrow = TRUE) X[[i]] <- rTrack(bbox = m,transform = TRUE) } -avemove(X,timestamp = "30 secs") -} -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line +out <- avemove(X,timestamp = "30 secs") +plot(out,type="l") +} \ No newline at end of file diff --git a/man/chimaps.Rd b/man/chimaps.Rd index e0c9f24..cd3bc8d 100644 --- a/man/chimaps.Rd +++ b/man/chimaps.Rd @@ -1,38 +1,45 @@ \name{chimaps} \alias{chimaps} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Chimaps of tarjectory pattern. +Chi-squared maps of a tarjectory pattern } \description{ -Computes the chimaps, corresponding to a list of objects of class "Track". chimaps are based on the discrepancy between computed and expected intensity in a given location.} +Chi-squared maps of a tarjectory pattern.} \usage{ -chimaps(X,timestamp,rank,...) +chimaps(X,timestamp,rank=1,...) } -%- maybe also 'usage' for other objects documented here. + \arguments{ - \item{X}{ -A list of Track objects -} -\item{timestamp}{based on secs,mins,...} -\item{rank}{a number between one and the length of corresponding time sequance which is created based on given timestamp.} -\item{...}{passed to arguments of density.Track} +\item{X}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} +\item{timestamp}{based on secs, mins, ... .} +\item{rank}{a number between one and the length of corresponding time sequance which is created based on a given timestamp.} +\item{...}{arguments passed to the \link[trajectories]{density.list}.} } + \details{ -[estimated intensity - expected intensity] / sqrt(expected intensity). +This function converts a trajectory pattern to a list of spatial point patterns according to a given timestamp and calculates their intensities using \link[trajectories]{density.list}. Based on the estimated intensities, it calculates an expected intensity for a sequence of time which is already obtained based on a given timestamp. Having estimated and expected intensities, \link[trajectories]{chimaps} computes Chi-squared maps for a sequence of time as follows + +\eqn{\chi=[\lambda_o - \lambda_e]/\sqrt\lambda_e} + +where \eqn{\lambda_o} and \eqn{\lambda_e} are the estimated intensity and expected intensity respectively. + +According to a given timestamp, a time sequence will be created based on the range of times of tracks so that Chi-squared maps will be computed for this time sequence. Argument rank means which one to be represented as output, however, all Chi-squared maps are still stored as attributes. + +Note that, tracks in X should overlap in time. } + \value{ -an image of class "im". +an image of class \link[spatstat]{im}. } + \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } -%% ~Make other sections like Warning with \section{Warning }{....} ~ - \seealso{ \link[trajectories]{density.list}, \link[spatstat]{density.ppp} } + \examples{ X <- list() for(i in 1:10){ @@ -41,7 +48,3 @@ for(i in 1:10){ } chimaps(X, timestamp = "180 secs",rank = 2) } -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/man/density.list.Rd b/man/density.list.Rd index e826421..0c40df2 100644 --- a/man/density.list.Rd +++ b/man/density.list.Rd @@ -1,38 +1,40 @@ \name{density.list} \alias{density.list} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Kernel estimate of intensity of trajectory pattern +Kernel estimate of intensity of a trajectory pattern } + \description{ -Estimating the intensity of a list of tracks. +Estimating the intensity of an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects. } + \usage{ \method{density}{list}(x, timestamp,...) } -%- maybe also 'usage' for other objects documented here. \arguments{ - \item{x}{ -a list of "Track" objects, an object of class "Tracks" or "TracksCollection" -} -\item{timestamp}{based on secs, mins, ...} -\item{...}{passed to arguments of density.ppp} +\item{x}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} +\item{timestamp}{based on secs, mins, ... .} +\item{...}{arguments passed to the \link[spatstat]{density.ppp}.} } + \details{ -This estimate the average intensity function of moving objects over time. Bandwidth selection methods such as bw.diggle, bw.scott and bw.ppl can be passed to this density.list. +This function converts a trajectory pattern to a list of spatial point patterns and then it calclulates the intensity of each obtained point pattern using \link[spatstat]{density.ppp}. The average of resulted estimated intensity is considered as the intensity of X. Bandwidth selection methods such as \link[spatstat]{bw.diggle}, \link[spatstat]{bw.scott} and \link[spatstat]{bw.ppl} can be considered in \link[trajectories]{density.list}. + +Note that, tracks in X should overlap in time. } + \value{ -an image of class "im". +an image of class \link[spatstat]{im}. } + \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } -%% ~Make other sections like Warning with \section{Warning }{....} ~ - \seealso{ -\link[trajectories]{rTrack}, \link[spatstat]{density.ppp} +\link[trajectories]{rTrack}, \link[spatstat]{density.ppp}, \link[spatstat]{bw.diggle}, \link[spatstat]{bw.scott}, \link[spatstat]{bw.ppl} } + \examples{ X <- list() for(i in 1:10){ @@ -41,7 +43,3 @@ for(i in 1:10){ } density(X, timestamp = "180 secs") } -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/man/pcfinhom.Track.Rd b/man/pcfinhom.Track.Rd index dbb3174..04684be 100644 --- a/man/pcfinhom.Track.Rd +++ b/man/pcfinhom.Track.Rd @@ -1,39 +1,40 @@ \name{pcfinhom.Track} \alias{pcfinhom.Track} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Pair correlation funcrion of trajectory pattern +Pair correlation funcrion of a trajectory pattern } + \description{ -Pair correlation funcrion of trajectory pattern +Estimate the variability area of the pair correlation funcrion for an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects over time. } \usage{ -pcfinhom.Track(X,timestamp,correction = c("translate", "Ripley"),q, +pcfinhom.Track(X,timestamp,correction = c("translate", "Ripley"),q=0, sigma=c("default","bw.diggle","bw.ppl","bw.scott"),...) } -%- maybe also 'usage' for other objects documented here. \arguments{ -\item{X}{ -A list of Track objects -} -\item{timestamp}{based on secs,mins,...} -\item{correction}{the type of correction to be used in computing pair correlation function} -\item{q}{(optional) a numeric value between 0 and 1. quantile to be applied to calculate the variability area} -\item{sigma}{method to be used in computing intensity function} -\item{...}{passed to the arguments of pcfinhom} +\item{X}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} +\item{timestamp}{based on secs,mins,... .} +\item{correction}{the type of correction to be used when computing pair correlation function.} +\item{q}{(optional) a numeric value between 0 and 1. quantile to be applied to calculate the variability area.} +\item{sigma}{method to be considered for bandwidth selection in computing intensity function.} +\item{...}{arguments passed to the \link[spatstat]{pcfinhom}.} } \details{ -This calculates the variability area of pair correlation function over time. If sigma=default, it calculates the variability area using the defaults of pcfinhom, otherwise it first estimate the intensity function using the given sigma as bandwidth selection method and then using the estimated intensity function, it estimates the variability area. +The type of interaction (clustering, repulsion, randomness) between tracks in X might vary over time. The function \link[trajectories]{pcfinhom.Track} calculates the variability area of \link[spatstat]{pcfinhom} over time. The variability area is calculated based on the pair correlation functions of all obtained point patterns when converting a trajectory pattern to a list of point patterns. + +If sigma=default, it calculates the variability area using the defaults of \link[spatstat]{pcfinhom}, otherwise it first estimates the intensity function using the given bandwidth selection method and then using the estimated intensity function it estimates the variability area. + +The lower and upper border of the variability area is calculated based on the \link[stats]{quantile} of values of all obtained pair correlation functions. q=0 means considering maximum and minimum. + +Note that, tracks in X should overlap in time. } \value{ -an object of class "gTrack" +an object of class gTrack. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } -%% ~Make other sections like Warning with \section{Warning }{....} ~ - \seealso{ \link[trajectories]{rTrack}, \link[trajectories]{as.Track.ppp}, \link[spatstat]{pcfinhom}} \examples{ @@ -44,8 +45,4 @@ for(i in 1:100){ } g <- pcfinhom.Track(X,timestamp = "180 sec") plot(g) -} -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line +} \ No newline at end of file diff --git a/man/plot.KTrack.Rd b/man/plot.KTrack.Rd index e4748ac..9ef2b7f 100644 --- a/man/plot.KTrack.Rd +++ b/man/plot.KTrack.Rd @@ -1,29 +1,23 @@ \name{plot.KTrack} \alias{plot.KTrack} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Methods for class "KTrack" +Methods for class KTrack } \description{ -Methods for class "KTrack" +plot the K-function for a trajectory pattern. } \usage{ \method{plot}{KTrack}(x, type = "l", col = "grey70",cex=1,line=2.2, ...) } -%- maybe also 'usage' for other objects documented here. + \arguments{ - \item{x}{an object of class KTrack} - \item{type}{ line type} - \item{col}{ color} - \item{cex}{used for size of legend} - \item{line}{specifying a value for line overrides the default placement of labels, and places them this many lines outwards from the plot edge} - \item{...}{ passed on to plot} -} -\details{ -plotting the variability area of K-function of a list of tracks.} -\value{ -a plot. + \item{x}{an object of class KTrack.} + \item{type}{line type.} + \item{col}{line color.} + \item{cex}{used for size of legend.} + \item{line}{specifying a value for line overrides the default placement of labels, see \link[graphics]{title}.} + \item{...}{arguments passed to plot.} } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } diff --git a/man/plot.arwlen.Rd b/man/plot.arwlen.Rd index 1d2ccc4..049df6a 100644 --- a/man/plot.arwlen.Rd +++ b/man/plot.arwlen.Rd @@ -1,27 +1,24 @@ \name{plot.arwlen} \alias{plot.arwlen} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Methods for class "arwlen" +Methods for class arwlen } \description{ -Methods for class "arwlen" +Methods for class arwlen. } \usage{ \method{plot}{arwlen}(x, ...) } -%- maybe also 'usage' for other objects documented here. \arguments{ - \item{x}{ an object of class "arwlen"} - \item{...}{ passed on to plot} + \item{x}{ an object of class arwlen.} + \item{...}{arguments passed to plot.} } \value{ a plot. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } - -%% ~Make other sections like Warning with \section{Warning }{....} ~ - -\seealso{avemove} +\seealso{ +\link[trajectories]{avemove} +} \ No newline at end of file diff --git a/man/plot.distrack.Rd b/man/plot.distrack.Rd index d4b36bf..56f6952 100644 --- a/man/plot.distrack.Rd +++ b/man/plot.distrack.Rd @@ -1,23 +1,19 @@ \name{plot.distrack} \alias{plot.distrack} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Methods for class "distrack" +Methods for class distrack } \description{ -The plot method for "distrack" objects. +The plot method for class distrack. } \usage{ \method{plot}{distrack}(x, ...) } -%- maybe also 'usage' for other objects documented here. \arguments{ - \item{x}{ an object of class "distrack" } - \item{...}{ ignored } -} -\details{ -This plots an object of class "distrack". +\item{x}{ an object of class distrack.} +\item{...}{arguments passed to plot.} } + \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } diff --git a/man/plot.gTrack.Rd b/man/plot.gTrack.Rd index 7ad3639..2a67da0 100644 --- a/man/plot.gTrack.Rd +++ b/man/plot.gTrack.Rd @@ -1,22 +1,21 @@ \name{plot.gTrack} \alias{plot.gTrack} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Methods for class "gTrack" +Methods for class gTrack. } \description{ -plot method} +plot the pair correlation function for a trajectory pattern. +} \usage{ \method{plot}{gTrack}(x, type = "l", col = "grey70",cex=1,line=2.2, ...) } -%- maybe also 'usage' for other objects documented here. \arguments{ - \item{x}{ an object of class "gTrack" } - \item{type}{ line type} - \item{col}{ line color} - \item{cex}{used for size of legend} - \item{line}{specifying a value for line overrides the default placement of labels, and places them this many lines outwards from the plot edge} - \item{...}{ passed on to plot} + \item{x}{ an object of class gTrack.} + \item{type}{line type.} + \item{col}{line color.} + \item{cex}{used for size of legend.} + \item{line}{specifying a value for line overrides the default placement of labels, see \link[graphics]{title}.} + \item{...}{arguments passed to plot.} } \author{ -Mohammad Mehdi Moradi } +Mohammad Mehdi Moradi } diff --git a/man/print.ArimaTrack.Rd b/man/print.ArimaTrack.Rd index 24fbd0c..5b8845a 100644 --- a/man/print.ArimaTrack.Rd +++ b/man/print.ArimaTrack.Rd @@ -1,26 +1,18 @@ \name{print.ArimaTrack} \alias{print.ArimaTrack} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Methods for class "ArimaTrack" +Methods for class ArimaTrack } \description{ -print method.} +print method. +} \usage{ -\method{print}{ArimaTrack}(x, ...) +\method{print}{ArimaTrack}(x) } -%- maybe also 'usage' for other objects documented here. + \arguments{ - \item{x}{ an object of class "ArimaTrack" } - \item{...}{ignored} + \item{x}{ an object of class ArimaTrack.} } \author{ -Mohammad Mehdi Moradi -} - -%% ~Make other sections like Warning with \section{Warning }{....} ~ - -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line +Mohammad Mehdi Moradi +} \ No newline at end of file diff --git a/man/print.KTrack.Rd b/man/print.KTrack.Rd index 25d78fc..f441562 100644 --- a/man/print.KTrack.Rd +++ b/man/print.KTrack.Rd @@ -1,22 +1,19 @@ \name{print.KTrack} \alias{print.KTrack} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Methods for class "KTrack" +Methods for class KTrack } \description{ -Methods for class "KTrack" +print method. } \usage{ -\method{print}{KTrack}(x,...) +\method{print}{KTrack}(x) } -%- maybe also 'usage' for other objects documented here. \arguments{ - \item{x}{ an object of class "KTrack" } - \item{...}{ ignored } + \item{x}{ an object of class KTrack.} } -\details{ to print an object of class "KTrack".} \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } + diff --git a/man/print.Track.Rd b/man/print.Track.Rd index 1d150b3..48989b2 100644 --- a/man/print.Track.Rd +++ b/man/print.Track.Rd @@ -1,22 +1,17 @@ \name{print.Track} \alias{print.Track} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Methods for class "Track" +Methods for class Track } \description{ -method to print an object of class "Track"} +print method. +} \usage{ -\method{print}{Track}(x,...) +\method{print}{Track}(x) } -%- maybe also 'usage' for other objects documented here. \arguments{ - \item{x}{ an object of class "Track" } - \item{...}{ ignored} + \item{x}{ an object of class Track} } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } - -%% ~Make other sections like Warning with \section{Warning }{....} ~ - diff --git a/man/print.Tracks.Rd b/man/print.Tracks.Rd index ef89489..4df2d56 100644 --- a/man/print.Tracks.Rd +++ b/man/print.Tracks.Rd @@ -1,22 +1,19 @@ \name{print.Tracks} \alias{print.Tracks} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Methods for class "Tracks" +Methods for class Tracks } \description{ -method to print an object of class "Tracks"} +print method. +} \usage{ -print.Tracks(X) +\method{print}{Tracks}(X) } -%- maybe also 'usage' for other objects documented here. \arguments{ - \item{X}{ -an object of class "Tracks" -} + \item{X}{an object of class Tracks.} } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } diff --git a/man/print.TracksCollection.Rd b/man/print.TracksCollection.Rd index db8dc48..6811761 100644 --- a/man/print.TracksCollection.Rd +++ b/man/print.TracksCollection.Rd @@ -1,20 +1,17 @@ \name{print.TracksCollection} \alias{print.TracksCollection} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Methods for class "TracksCollection" +Methods for class TracksCollection } \description{ -method to print an object of class "TracksCollection"} +print method. +} \usage{ -print.TracksCollection(X) +\method{print}{TracksCollection}(X) } -%- maybe also 'usage' for other objects documented here. \arguments{ - \item{X}{ -an object of class "TracksCollection" -} + \item{X}{an object of class TracksCollection} } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } diff --git a/man/print.Trrow.Rd b/man/print.Trrow.Rd index e2bee57..978bec0 100644 --- a/man/print.Trrow.Rd +++ b/man/print.Trrow.Rd @@ -1,23 +1,17 @@ \name{print.Trrow} \alias{print.Trrow} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Methods for class "Trrow" +Methods for class Trrow } \description{ -Print objetcs of class "Trrow"} +print method. +} \usage{ -\method{print}{Trrow}(x,...) +\method{print}{Trrow}(x) } -%- maybe also 'usage' for other objects documented here. \arguments{ - \item{x}{ an object of class "Trrow" } - \item{...}{ ignored } + \item{x}{ an object of class Trrow.} } \author{ -Mohammad Mehdi Moradi -} - -\seealso{ -as.Track.arrow +Mohammad Mehdi Moradi } diff --git a/man/print.arwlen.Rd b/man/print.arwlen.Rd index 2e9cb40..f9f7fe0 100644 --- a/man/print.arwlen.Rd +++ b/man/print.arwlen.Rd @@ -1,22 +1,18 @@ \name{print.arwlen} \alias{print.arwlen} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Methods for class "arwlen" +Methods for class arwlen } \description{ -to print an object of class "arwlen".} +print method. +} + \usage{ -\method{print}{arwlen}(x,...) +\method{print}{arwlen}(x) } -%- maybe also 'usage' for other objects documented here. \arguments{ - \item{x}{ an object of class "arqlen" } - \item{...}{ignored} + \item{x}{an object of class arwlen.} } \author{ -Mohammad Mehdi Moradi -} - -%% ~Make other sections like Warning with \section{Warning }{....} ~ - +Mohammad Mehdi Moradi +} \ No newline at end of file diff --git a/man/print.distrack.Rd b/man/print.distrack.Rd index 50331c7..6764398 100644 --- a/man/print.distrack.Rd +++ b/man/print.distrack.Rd @@ -1,43 +1,19 @@ \name{print.distrack} \alias{print.distrack} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Methods for class "distrack" +Methods for class distrack } \description{ -This is a method for class "distrack". +print method. } + \usage{ -\method{print}{distrack}(x,...) +\method{print}{distrack}(x) } -%- maybe also 'usage' for other objects documented here. + \arguments{ - \item{x}{ an object of class "distrack"} - \item{...}{ignored} -} -\details{ -This is a method for class "distrack". -} -\value{ -See the documentation on the corresponding generic function. + \item{x}{ an object of class distrack.} } \author{ -Mohammad Mehdi Moradi -} - -%% ~Make other sections like Warning with \section{Warning }{....} ~ - -\examples{ -X <- list() -for(i in 1:10){ - m <- matrix(c(0,10,0,10),nrow=2,byrow = TRUE) - X[[i]] <- rTrack(bbox = m,transform = TRUE) -} - -ave <- avedistTrack(X,timestamp = "30 secs") -plot(ave,type="l") -} -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line +Mohammad Mehdi Moradi +} \ No newline at end of file diff --git a/man/print.gTrack.Rd b/man/print.gTrack.Rd index 2db0b1a..1af035f 100644 --- a/man/print.gTrack.Rd +++ b/man/print.gTrack.Rd @@ -1,19 +1,19 @@ \name{print.gTrack} \alias{print.gTrack} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Methods for class "gTrack" +Methods for class gTrack } \description{ -print method.} +print method. +} \usage{ -\method{print}{gTrack}(x,...) +\method{print}{gTrack}(x) } -%- maybe also 'usage' for other objects documented here. \arguments{ - \item{x}{ an object of class "gTrack"} - \item{...}{ignored} + \item{x}{ an object of class gTrack.} +} +\author{ +Mohammad Mehdi Moradi } -\author{ Mohammad Mehdi Moradi } diff --git a/man/range.Track.Rd b/man/range.Track.Rd index c2f288d..43fe974 100644 --- a/man/range.Track.Rd +++ b/man/range.Track.Rd @@ -1,39 +1,27 @@ \name{range.Track} \alias{range.Track} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -range.Track -%% ~~function to do ... ~~ +range of a Track } \description{ -Retrieves the range of a "Track" object -%% ~~ A concise (1-5 lines) description of what the function does. ~~ +Retrieves the range of an object of class \link[trajectories]{Track}. } \usage{ \method{range}{Track}(X,...) } -%- maybe also 'usage' for other objects documented here. \arguments{ - \item{X}{ - an object of class "Track" -%% ~~Describe \code{X} here~~ -} -\item{...}{passed to arguments of range} +\item{X}{an object of class Track.} +\item{...}{arguments passed to the \link[base]{range} function.} } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } -%% ~Make other sections like Warning with \section{Warning }{....} ~ \seealso{ \link[trajectories]{rTrack}, \link[trajectories]{rTracks}, \link[trajectories]{rTracksCollection}, \link[base]{range} } \examples{ x <- rTrack() -range.Track(x) +range(x) } -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/man/reTrack.Rd b/man/reTrack.Rd index ec3c3a9..3792fc3 100644 --- a/man/reTrack.Rd +++ b/man/reTrack.Rd @@ -1,40 +1,33 @@ \name{reTrack} \alias{reTrack} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -Reconstruct objects of class "Track" +Reconstruct objects of class Track. } \description{ -Function reTrack accepts X as an object of class "Track". Output is a reconstructed Track (again an object of class Track), based on a regular "timestamp". It only returns the interpolated points. +Reconstruct objects of class \link[trajectories]{Track} according to a given timestamp. } \usage{ reTrack(X,at=c("track","dfrm"),timestamp=timestamp,tsq=NULL) } -%- maybe also 'usage' for other objects documented here. \arguments{ - \item{X}{ -an object of class Track -} -\item{at}{ -to set the type of output as either an object of class "Track" or data.frame -} -\item{timestamp}{ -timestamp which Track be reconstructed based on -} -\item{tsq}{ -a time sequence to reconstruct Track X based on it. This is optional. If this is not given, the function creates the time sequance based on timestamp. -} +\item{X}{an object of class \link[trajectories]{Track}.} +\item{at}{to set the type of output as either an object of class \link[trajectories]{Track} or \link[base]{data.frame}.} +\item{timestamp}{a timestamp which \link[trajectories]{Track} be reconstructed based on.} +\item{tsq}{(optional) a time sequence to reconstruct X based on it. If this is not given, the function creates the time sequance based on timestamp.} } + \details{ -Sometimes tracks data are not collected according to a regular timestamp. In order to compare different tracks which share some time intervals, we might need to be aware of the locations in a regular timestamp. Function reTrack unables us to reconstruct an object of class "Track" based on a regular timestamp. Time sequance can be given by user, if not reTrack creates a regulare time sequance based on the given timestamp. +Sometimes tracks data are not collected according to a regular timestamp. In order to compare different tracks which share some time intervals, we might need to be aware of the locations in a regular timestamp. The function \link[trajectories]{reTrack} unables us to reconstruct an object of class \link[trajectories]{Track} based on a regular timestamp. + +Time sequance can be given by user through argument tsq, if not \link[trajectories]{reTrack} first creates a regulare time sequance based on the given timestamp. } \value{ -Either an object of class "Track" or a data.frame +an object of class \link[trajectories]{Track} or \link[base]{data.frame}. } \author{ -Mohammad Mehdi Moradi } +Mohammad Mehdi Moradi +} -%% ~Make other sections like Warning with \section{Warning }{....} ~ \seealso{ \link[trajectories]{rTrack}, \link[trajectories]{as.Track}, diff --git a/man/rtrack.Rd b/man/rtrack.Rd index cfdee28..e8f3d74 100644 --- a/man/rtrack.Rd +++ b/man/rtrack.Rd @@ -38,7 +38,7 @@ In case it has length 1 and value 0, random walk is created using \link[stats]{r \value{An object of class \code{Track}, \code{Tracks} or \code{TracksCollection}.} \author{ Edzer Pebesma , -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } \examples{ x = rTrack() diff --git a/man/tsqTracks.Rd b/man/tsqTracks.Rd index 7ddd6e8..742cc7c 100644 --- a/man/tsqTracks.Rd +++ b/man/tsqTracks.Rd @@ -1,38 +1,34 @@ \name{tsqTracks} \alias{tsqTracks} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -tsqTracks +sequance generation of time of a trajectory pattern } \description{ -tsqtracks returns a sequance of time based on a list of tracks (or a single object of class "Track"") and an argument timestamp. - +sequance generation of time of a trajectory pattern based on a given timestamp. } \usage{ tsqTracks(X,timestamp) } -%- maybe also 'usage' for other objects documented here. + \arguments{ - \item{X}{either an object of class "Track"" or a list of some objects of class "Track" -%% ~~Describe \code{x} here~~ -} -\item{timestamp}{a timestamp to create the time sequence based on it} + \item{X}{an object of classes \link[trajectories]{Track}, \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} +\item{timestamp}{a timestamp to generate the time sequence based on it.} } \details{ -This creates a sequence of time based on a track or a list of tracks. -%% ~~ If necessary, more details than the description above ~~ +This function generates a sequence of time based on a given timestamp for an object of classes \link[trajectories]{Track}, \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects. } + \value{ -An object of class "POSIXct" or "POSIXt". +An object of class \link[base]{POSIXct} or \link[base]{POSIXt}. } -\author{ -Mohammad Mehdi Moradi } -%% ~Make other sections like Warning with \section{Warning }{....} ~ +\author{ +Mohammad Mehdi Moradi } \seealso{ -rTrack +\link[trajectories]{rTrack}, \link[base]{seq} } + \examples{ library(sp) library(spacetime) @@ -48,8 +44,4 @@ crs = CRS("+proj=longlat +ellps=WGS84") # longlat stidf = STIDF(SpatialPoints(cbind(x,y),crs), t, data.frame(co2 = rnorm(n))) A1 = Track(stidf) tsqTracks(A1,timestamp = "1 sec") -} -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line +} \ No newline at end of file diff --git a/man/unique.Track.Rd b/man/unique.Track.Rd index af94e7b..d1553d3 100644 --- a/man/unique.Track.Rd +++ b/man/unique.Track.Rd @@ -1,31 +1,27 @@ \name{unique.Track} \alias{unique.Track} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ -unique.Track +extract unique points from a trajectory pattern } \description{ -Removing duplicated points in a track} +Removing duplicated points in a \link[trajectories]{Track}.} \usage{ \method{unique}{Track}(x,...) } -%- maybe also 'usage' for other objects documented here. + \arguments{ - \item{x}{ -an object of class "Track" -} -\item{...}{passed to arguments of unique} +\item{x}{an object of class \link[trajectories]{Track}.} +\item{...}{arguments passed to \link[base]{unique}.} } + \details{ -This function removes duplicated points in an object of class "Track".} +This function removes duplicated points in an object of class \link[trajectories]{Track}.} \value{ -An object of class Track with no duplicated point.} +An object of class \link[trajectories]{Track} with no duplicated point.} \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi } -%% ~Make other sections like Warning with \section{Warning }{....} ~ - \seealso{ \link[trajectories]{rTrack}, \link[trajectories]{rTracks}, \link[trajectories]{rTracksCollection}, \link[base]{unique} } @@ -33,7 +29,3 @@ Mohammad Mehdi Moradi x <- rTrack() unique(x) } -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line From 6de5a19c93175c75f277c45d0c37e48b10756536 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 26 May 2019 17:23:08 +0200 Subject: [PATCH 03/44] legend of K and pair plots edited --- R/Trackstat.R | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/R/Trackstat.R b/R/Trackstat.R index d37a132..14d74f6 100644 --- a/R/Trackstat.R +++ b/R/Trackstat.R @@ -404,15 +404,19 @@ plot.KTrack <- function(x,type="l",col= "grey70",cex=1,line=2.2,...){ stop("spatstat required: install first?") ylim <- c(min(c(x$lowk,x$theo)),max(c(x$upk,x$theo))) plot(x$r,x$lowk,ylim=ylim,type=type,ylab="",xlab="r",...) - title(ylab=expression(K[inhom](r)),line = line,...) + title(ylab=expression(italic(K[inhom](r))),line = line,...) points(x$r,x$upk,type=type) polygon(c(x$r, rev(x$r)), c(x$upk, rev(x$lowk)), col = col, border = NA) points(x$r,x$theo,type=type,col=2) points(x$r,x$avek,type=type) - legend(0,max(c(x$upk,x$theo)),col = c(2,0,1), - legend=c(expression(K[inhom]^{pois}),"",expression(bar(K)[inhom])), - lty=c(1,1),cex = cex) + legend(0,max(c(x$upk,x$theo)),col = c(2,1,"grey70","grey70"), + legend=c(expression(italic(K[inhom]^{pois})), + expression(italic(bar(K)[inhom])), + expression(italic({hat(K)[inhom]^{high}}(r))), + expression(italic({hat(K)[inhom]^{low}}(r))) + ), + lty=c(1,1,1,1),cex = cex) } pcfinhom.Track <- function(X,timestamp, @@ -494,16 +498,19 @@ plot.gTrack <- function(x,type="l",col= "grey70",cex=1,line=2.2,...){ stop("spatstat required: install first?") ylim <- c(min(x$lowg),max(x$upg)) plot(x$r,x$lowg,ylim=ylim,xlab="r",ylab="",type=type,...) - title(ylab=expression(g[inhom](r)),line = line,...) + title(ylab=expression(italic(g[inhom](r))),line = line,...) points(x$r,x$upg,type=type) polygon(c(x$r, rev(x$r)), c(x$upg, rev(x$lowg)), col = col, border = NA) points(x$r,x$theo,type=type,col=2) points(x$r,x$aveg,type=type) - legend(0.01*max(x$r),max(x$upg),col = c(2,0,1), - legend=c(expression(g[inhom]^{pois}),"", - expression(bar(g)[inhom])), - lty=c(1,1),cex=cex) + legend(0.01*max(x$r),max(x$upg),col = c(2,1,"grey70","grey70"), + legend=c(expression(italic(g[inhom]^{pois})), + expression(italic(bar(g)[inhom])), + expression(italic({hat(g)[inhom]^{high}}(r))), + expression(italic({hat(g)[inhom]^{low}}(r))) + ), + lty=c(1,1,1,1),cex=cex) } auto.arima.Track <- function(X,...){ From 9213e13877a5bc316258f1a1b9349449adee4a59 Mon Sep 17 00:00:00 2001 From: Moradii Date: Thu, 6 Jun 2019 15:16:17 +0200 Subject: [PATCH 04/44] range.Tracks & range.TracksCollection --- NAMESPACE | 5 +++-- R/Trackstat.R | 20 ++++++++++++++++++-- man/range.Track.Rd | 10 +++++++--- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 655fd27..0f0118c 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -69,8 +69,9 @@ S3method("print", "ArimaTrack") S3method("as", "list.Tracks") S3method("as", "list.TracksCollection") S3method("unique", "Track") -S3method("range", "Track") - +S3method(range, Track) +S3method(range, Tracks) +S3method(range, TracksCollection) S3method(stack, TracksCollection) S3method(unstack, TracksCollection) diff --git a/R/Trackstat.R b/R/Trackstat.R index 14d74f6..b38286c 100644 --- a/R/Trackstat.R +++ b/R/Trackstat.R @@ -65,10 +65,26 @@ reTrack <- function(X,at=c("track","dfrm"),timestamp=timestamp,tsq=NULL){ # range.Track returns the timerange of an object of class Track range.Track <- function(X,...) { - Y <- cbind(as.data.frame(X)[c(coordnames(X), "time")]) - return(range(Y$time,...)) + out <- as.data.frame(X) + return(range(out$time,...)) } +range.Tracks <- function(X,...) { + out <- lapply(X@tracks,as.data.frame) + out <- do.call(rbind,out) + return(range(out$time,...)) +} + +range.TracksCollection <- function(X,...) { + outf <- list() + for (i in 1:length(X@tracksCollection)) { + out <- lapply(X@tracksCollection[[i]]@tracks,as.data.frame) + outf[[i]] <- do.call(rbind,out) + } + outf <- do.call(rbind,outf) + + return(range(outf$time,...)) +} # tsqtracks returns a sequance of time based on a list of tracks (or a single object of class Track) and an argument timestamp tsqTracks <- function(X, timestamp){ diff --git a/man/range.Track.Rd b/man/range.Track.Rd index 43fe974..ca12561 100644 --- a/man/range.Track.Rd +++ b/man/range.Track.Rd @@ -1,16 +1,20 @@ \name{range.Track} \alias{range.Track} +\alias{range.Tracks} +\alias{range.TracksCollection} \title{ -range of a Track +range } \description{ -Retrieves the range of an object of class \link[trajectories]{Track}. +Retrieves the range of objects of classes \link[trajectories]{Track},\link[trajectories]{Tracks} and \link[trajectories]{TracksCollection}. } \usage{ \method{range}{Track}(X,...) +\method{range}{Tracks}(X,...) +\method{range}{TracksCollection}(X,...) } \arguments{ -\item{X}{an object of class Track.} +\item{X}{an object of class \link[trajectories]{Track},\link[trajectories]{Tracks} or \link[trajectories]{TracksCollection}.} \item{...}{arguments passed to the \link[base]{range} function.} } \author{ From a319f1307f93eff26319c387632d4e81b9f5817b Mon Sep 17 00:00:00 2001 From: Moradii Date: Thu, 6 Jun 2019 15:58:55 +0200 Subject: [PATCH 05/44] tsqTracks modified --- R/Trackstat.R | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/R/Trackstat.R b/R/Trackstat.R index b38286c..103007f 100644 --- a/R/Trackstat.R +++ b/R/Trackstat.R @@ -88,18 +88,14 @@ range.TracksCollection <- function(X,...) { # tsqtracks returns a sequance of time based on a list of tracks (or a single object of class Track) and an argument timestamp tsqTracks <- function(X, timestamp){ - if(class(X)=="Tracks") X <- as.list.Tracks(X) - if (class(X)=="TracksCollection") X <- as.list.TracksCollection(X) + if(class(X)=="Track" | class(X)=="Tracks" | class(X)=="TracksCollection") timerange <- range(X) - timerange = if (is.list(X)) - lapply(X, range.Track) - else - range.Track(X) + if(class(X)=="list") timerange <- lapply(X, range) ; timerange <- range(timerange) - Trackrg <- range(timerange) - class(Trackrg) <- c('POSIXt','POSIXct') + class(timerange) <- c('POSIXct','POSIXt') # a seq from the range has been created every timestamp - timeseq <- seq(from=as.POSIXct(strftime(Trackrg[1])),to=as.POSIXct(strftime(Trackrg[2])),by = timestamp) + if (missing(timestamp)) stop("set timestamp") + timeseq <- seq(from=as.POSIXct(strftime(timerange[1])),to=as.POSIXct(strftime(timerange[2])),by = timestamp) return(timeseq) From bfad67b34a1be7493b5835b49a8daff560e4c5db Mon Sep 17 00:00:00 2001 From: Moradii Date: Thu, 6 Jun 2019 16:13:33 +0200 Subject: [PATCH 06/44] from and to added to tsqTracks --- R/Trackstat.R | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/R/Trackstat.R b/R/Trackstat.R index 103007f..ccc2780 100644 --- a/R/Trackstat.R +++ b/R/Trackstat.R @@ -86,8 +86,11 @@ range.TracksCollection <- function(X,...) { return(range(outf$time,...)) } # tsqtracks returns a sequance of time based on a list of tracks (or a single object of class Track) and an argument timestamp -tsqTracks <- function(X, timestamp){ +tsqTracks <- function(X, timestamp,from=NULL,to=NULL){ + if(!(is.null(from) & is.null(to))) { + return(seq(from=as.POSIXct(strftime(from)),to=as.POSIXct(strftime(to)),by = timestamp)) + } if(class(X)=="Track" | class(X)=="Tracks" | class(X)=="TracksCollection") timerange <- range(X) if(class(X)=="list") timerange <- lapply(X, range) ; timerange <- range(timerange) From 5546facdebf7149c44dcba621920edccfcd3e742 Mon Sep 17 00:00:00 2001 From: Moradii Date: Thu, 6 Jun 2019 16:21:42 +0200 Subject: [PATCH 07/44] typo fixed --- man/as.Track.ppp.Rd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/as.Track.ppp.Rd b/man/as.Track.ppp.Rd index 3acabb7..152a749 100644 --- a/man/as.Track.ppp.Rd +++ b/man/as.Track.ppp.Rd @@ -1,7 +1,7 @@ \name{as.Track.ppp} \alias{as.Track.ppp} \title{ -Conver a trajectory pattern to a list of objects of class ppp +Convert a trajectory pattern to a list of objects of class ppp } \description{ From a09a8139300c0bced18e264b6665f007f950397f Mon Sep 17 00:00:00 2001 From: Moradii Date: Tue, 9 Jul 2019 15:38:56 +0200 Subject: [PATCH 08/44] ylab in plot.distrack modified --- R/Trackstat.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/Trackstat.R b/R/Trackstat.R index ccc2780..7859d88 100644 --- a/R/Trackstat.R +++ b/R/Trackstat.R @@ -141,7 +141,7 @@ print.distrack <- function(x){ plot.distrack <- function(x,...){ x = unclass(x) - plot(attr(x,"tsq"), x, xlab="time",ylab="average distance",...) + plot(attr(x,"tsq"), x, xlab="time",ylab=expression(italic(bar(D))),...) } From a33cb8309cd1d7fe42025d5f3f610c923abfed30 Mon Sep 17 00:00:00 2001 From: Moradii Date: Tue, 9 Jul 2019 21:49:59 +0200 Subject: [PATCH 09/44] idw as method --- NAMESPACE | 4 +--- R/Trackstat.R | 2 +- man/{Track.idw.Rd => idw.Track.Rd} | 8 ++++---- 3 files changed, 6 insertions(+), 8 deletions(-) rename man/{Track.idw.Rd => idw.Track.Rd} (92%) diff --git a/NAMESPACE b/NAMESPACE index 0f0118c..0b78c54 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -28,7 +28,7 @@ export( approxTrack, approxTracks, approxTracksCollection, rTrack, rTracks, rTracksCollection, as.Track, as.Track.arrow, as.Track.ppp, auto.arima.Track, avedistTrack, avemove, chimaps, - Kinhom.Track, pcfinhom.Track, reTrack, Track.idw, + Kinhom.Track, pcfinhom.Track, reTrack, idw.Track, tsqTracks, unique.Track,as.list.Tracks,as.list.TracksCollection,range.Track ) @@ -73,9 +73,7 @@ S3method(range, Track) S3method(range, Tracks) S3method(range, TracksCollection) S3method(stack, TracksCollection) - S3method(unstack, TracksCollection) - S3method(c, Track) S3method(c, Tracks) S3method(c, TracksCollection) diff --git a/R/Trackstat.R b/R/Trackstat.R index 7859d88..3e047b0 100644 --- a/R/Trackstat.R +++ b/R/Trackstat.R @@ -260,7 +260,7 @@ print.Trrow <- function(x) { print(x) } -Track.idw <- function(X,timestamp,epsilon=0,...){ +idw.Track <- function(X,timestamp,epsilon=0,...){ stopifnot(class(X)=="list" | class(X)=="Tracks" | class(X)=="TracksCollection") if(class(X)=="Tracks") X <- as.list.Tracks(X) diff --git a/man/Track.idw.Rd b/man/idw.Track.Rd similarity index 92% rename from man/Track.idw.Rd rename to man/idw.Track.Rd index efc7110..816107b 100644 --- a/man/Track.idw.Rd +++ b/man/idw.Track.Rd @@ -1,5 +1,5 @@ -\name{Track.idw} -\alias{Track.idw} +\name{idw.Track} +\alias{idw.Track} \title{ Movement smoothing of a trajectory pattern } @@ -7,7 +7,7 @@ Movement smoothing of a trajectory pattern Movement smoothing of an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects. } \usage{ -Track.idw(X,timestamp,epsilon=0,...) +\method{idw}{Track}(X,timestamp,epsilon=0,...) } \arguments{ @@ -40,5 +40,5 @@ for(i in 1:10){ m <- matrix(c(0,10,0,10),nrow=2,byrow = TRUE) X[[i]] <- rTrack(bbox = m,transform = TRUE) } -Track.idw(X,timestamp="180 secs") +idw.Track(X,timestamp="180 secs") } From aca6dbd6d0d2cbe4a5f173243fcc5270df49f4c2 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 13 Oct 2019 22:03:12 +0200 Subject: [PATCH 10/44] Voronoi method accommodated in density.list --- R/Trackstat.R | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/R/Trackstat.R b/R/Trackstat.R index 3e047b0..4ccd511 100644 --- a/R/Trackstat.R +++ b/R/Trackstat.R @@ -193,7 +193,7 @@ print.ppplist <- function(x){ print(x) } -density.list <- function(x, timestamp, ...) { +density.list <- function(x, timestamp, method=c("kernel","Voronoi"), ...) { stopifnot(class(x)=="list" | class(x)=="Tracks" | class(x)=="TracksCollection") if(class(x)=="Tracks") x <- as.list.Tracks(x) @@ -203,11 +203,18 @@ density.list <- function(x, timestamp, ...) { if (!requireNamespace("spatstat", quietly = TRUE)) stop("spatstat required: install first?") - if (missing(timestamp)) stop("set timestamp") + if (missing(timestamp)) stop("set timestamp") + if(missing(method)) method <- "kernel" p <- as.Track.ppp(x, timestamp) p <- p[!sapply(p, is.null)] - imlist <- lapply(p, spatstat::density.ppp, ...) + if(any(method == "kernel")){ + imlist <- lapply(p, spatstat::density.ppp, ...) + } + else{ + imlist <- lapply(p, spatstat::densityVoronoi, ...) + } + out <- Reduce("+", imlist) / length(imlist) attr(out, "Tracksim") <- imlist attr(out, "ppps") <- p From 86123d16289000ad21e82c2d3d85411ebe64b0e0 Mon Sep 17 00:00:00 2001 From: Moradii Date: Tue, 22 Oct 2019 23:38:35 +0200 Subject: [PATCH 11/44] reTrack is replaced by approxTrack --- R/Trackstat.R | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/R/Trackstat.R b/R/Trackstat.R index 4ccd511..45f15ea 100644 --- a/R/Trackstat.R +++ b/R/Trackstat.R @@ -152,7 +152,7 @@ unique.Track <- function(x,...){ } -as.Track.ppp <- function(X,timestamp){ +as.Track.ppp <- function(X,timestamp,...){ stopifnot(class(X)=="list" | class(X)=="Tracks" | class(X)=="TracksCollection") @@ -169,14 +169,21 @@ as.Track.ppp <- function(X,timestamp){ timeseq <- tsqTracks(X,timestamp = timestamp) # reconstruct tracks in sequance timeseq - Z <- lapply(X,reTrack,tsq = timeseq,at="dfrm") + Z <- lapply(X=1:length(X), function(j){ + i <- index(X[[j]]) + i1 <- max(i) + i2 <- min(i) + seq <- timeseq[timeseqi2] + cbind(as.data.frame(approxTrack(X[[j]],seq,...)@sp),t=seq) + }) + id <- rep(1:length(Z),sapply(Z, nrow)) Z <- do.call("rbind",Z) Z <- cbind(Z,id) allZ <- split(Z,Z[,3]) - dx <- (max(Z$xcoor)-min(Z$xcoor))/1000 - dy <- (max(Z$ycoor)-min(Z$ycoor))/1000 - w <- spatstat::owin(c(min(Z$xcoor)-dx,max(Z$xcoor)+dx),c(min(Z$ycoor)-dy,max(Z$ycoor)+dy)) + dx <- (max(Z$x)-min(Z$x))/1000 + dy <- (max(Z$y)-min(Z$y))/1000 + w <- spatstat::owin(c(min(Z$x)-dx,max(Z$x)+dx),c(min(Z$y)-dy,max(Z$y)+dy)) Tppp <- lapply(X=1:length(allZ), function(i){ p <- spatstat::as.ppp(allZ[[i]][,-c(3,4)],W=w) From a174fb0cf2f54e0813051f1e6373cdbcb21b036e Mon Sep 17 00:00:00 2001 From: Moradii Date: Wed, 23 Oct 2019 22:15:20 +0200 Subject: [PATCH 12/44] get rid of some conflicts --- NAMESPACE | 16 +--------------- man/Kinhom.Track.Rd | 7 +------ man/as.Track.ppp.Rd | 6 +----- man/avedistTrack.Rd | 11 +---------- man/avemove.Rd | 7 +------ man/pcfinhom.Track.Rd | 6 +----- man/print.ArimaTrack.Rd | 10 +--------- man/print.distrack.Rd | 9 +-------- man/tsqTracks.Rd | 6 +----- 9 files changed, 9 insertions(+), 69 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index cc4572a..b405f29 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -29,12 +29,7 @@ export( approxTrack, approxTracks, approxTracksCollection, rTrack, rTracks, rTracksCollection, as.Track, as.Track.arrow, as.Track.ppp, auto.arima.Track, avedistTrack, avemove, chimaps, -<<<<<<< HEAD - Kinhom.Track, pcfinhom.Track, reTrack, idw.Track, - tsqTracks, unique.Track,as.list.Tracks,as.list.TracksCollection,range.Track -======= - Kinhom.Track, pcfinhom.Track, reTrack, Track.idw, tsqTracks ->>>>>>> refs/remotes/edzer/master + Kinhom.Track, pcfinhom.Track, reTrack, ) exportMethods( @@ -69,13 +64,6 @@ S3method(plot, arwlen) S3method(print, summary.Track) S3method(print, summary.Tracks) S3method(print, summary.TracksCollection) -<<<<<<< HEAD -S3method("print", "arwlen") -S3method("print", "distrack") -S3method("print", "gTrack") -S3method("print", "KTrack") -S3method("print", "Trrow") -S3method("print", "ArimaTrack") S3method("as", "list.Tracks") S3method("as", "list.TracksCollection") S3method("unique", "Track") @@ -87,7 +75,6 @@ S3method(unstack, TracksCollection) S3method(c, Track) S3method(c, Tracks) S3method(c, TracksCollection) -======= S3method(print, arwlen) S3method(print, distrack) S3method(print, gTrack) @@ -99,4 +86,3 @@ S3method(unique, Track) S3method(range, Track) S3method(stack, TracksCollection) S3method(unstack, TracksCollection) ->>>>>>> refs/remotes/edzer/master diff --git a/man/Kinhom.Track.Rd b/man/Kinhom.Track.Rd index 5651d42..7ae2f69 100644 --- a/man/Kinhom.Track.Rd +++ b/man/Kinhom.Track.Rd @@ -51,12 +51,7 @@ for(i in 1:100){ m <- matrix(c(0,10,0,10),nrow=2,byrow = TRUE) X[[i]] <- rTrack(bbox = m,transform = TRUE) } -<<<<<<< HEAD k <- Kinhom.Track(X,timestamp = "180 secs") plot(k) -} -======= Kinhom.Track(X,timestamp = "180 secs") - -} ->>>>>>> refs/remotes/edzer/master +} \ No newline at end of file diff --git a/man/as.Track.ppp.Rd b/man/as.Track.ppp.Rd index 9d3e589..152a749 100644 --- a/man/as.Track.ppp.Rd +++ b/man/as.Track.ppp.Rd @@ -42,8 +42,4 @@ for(i in 1:10){ X[[i]] <- rTrack(bbox = m,transform = TRUE) } Y <- as.Track.ppp(X,timestamp="120 secs") -<<<<<<< HEAD -} -======= -} ->>>>>>> refs/remotes/edzer/master +} \ No newline at end of file diff --git a/man/avedistTrack.Rd b/man/avedistTrack.Rd index ab1f73e..b042df9 100644 --- a/man/avedistTrack.Rd +++ b/man/avedistTrack.Rd @@ -44,15 +44,6 @@ for(i in 1:10){ m <- matrix(c(0,10,0,10),nrow=2,byrow = TRUE) X[[i]] <- rTrack(bbox = m,transform = TRUE) } - -<<<<<<< HEAD out <- avedistTrack(X,timestamp = "120 secs") plot(out,type="l") -} -======= -ave <- avedistTrack(X,timestamp = "120 secs") -plot(ave,type="l") - - -} ->>>>>>> refs/remotes/edzer/master +} \ No newline at end of file diff --git a/man/avemove.Rd b/man/avemove.Rd index 9d2c97b..627fc48 100644 --- a/man/avemove.Rd +++ b/man/avemove.Rd @@ -47,11 +47,6 @@ for(i in 1:10){ m <- matrix(c(0,10,0,10),nrow=2,byrow = TRUE) X[[i]] <- rTrack(bbox = m,transform = TRUE) } -<<<<<<< HEAD out <- avemove(X,timestamp = "30 secs") plot(out,type="l") -} -======= -avemove(X,timestamp = "30 secs") -} ->>>>>>> refs/remotes/edzer/master +} \ No newline at end of file diff --git a/man/pcfinhom.Track.Rd b/man/pcfinhom.Track.Rd index 9dcbc1c..04684be 100644 --- a/man/pcfinhom.Track.Rd +++ b/man/pcfinhom.Track.Rd @@ -45,8 +45,4 @@ for(i in 1:100){ } g <- pcfinhom.Track(X,timestamp = "180 sec") plot(g) -<<<<<<< HEAD -} -======= -} ->>>>>>> refs/remotes/edzer/master +} \ No newline at end of file diff --git a/man/print.ArimaTrack.Rd b/man/print.ArimaTrack.Rd index d87d0c7..5b8845a 100644 --- a/man/print.ArimaTrack.Rd +++ b/man/print.ArimaTrack.Rd @@ -14,13 +14,5 @@ print method. \item{x}{ an object of class ArimaTrack.} } \author{ -<<<<<<< HEAD Mohammad Mehdi Moradi -} -======= -Mohammad Mehdi Moradi -} - -%% ~Make other sections like Warning with \section{Warning }{....} ~ - ->>>>>>> refs/remotes/edzer/master +} \ No newline at end of file diff --git a/man/print.distrack.Rd b/man/print.distrack.Rd index 01f5d8c..2770b92 100644 --- a/man/print.distrack.Rd +++ b/man/print.distrack.Rd @@ -15,14 +15,8 @@ print method. \item{x}{ an object of class distrack.} } \author{ -<<<<<<< HEAD Mohammad Mehdi Moradi } -======= -Mohammad Mehdi Moradi -} - -%% ~Make other sections like Warning with \section{Warning }{....} ~ \examples{ X <- list() @@ -33,5 +27,4 @@ for(i in 1:10){ ave <- avedistTrack(X,timestamp = "30 secs") plot(ave,type="l") -} ->>>>>>> refs/remotes/edzer/master +} \ No newline at end of file diff --git a/man/tsqTracks.Rd b/man/tsqTracks.Rd index 463d3aa..742cc7c 100644 --- a/man/tsqTracks.Rd +++ b/man/tsqTracks.Rd @@ -44,8 +44,4 @@ crs = CRS("+proj=longlat +ellps=WGS84") # longlat stidf = STIDF(SpatialPoints(cbind(x,y),crs), t, data.frame(co2 = rnorm(n))) A1 = Track(stidf) tsqTracks(A1,timestamp = "1 sec") -<<<<<<< HEAD -} -======= -} ->>>>>>> refs/remotes/edzer/master +} \ No newline at end of file From d207d35236faa0da44c7046ac5357be5462e32d4 Mon Sep 17 00:00:00 2001 From: Moradii Date: Wed, 23 Oct 2019 22:15:34 +0200 Subject: [PATCH 13/44] get rid of some conflicts --- NAMESPACE | 2 ++ 1 file changed, 2 insertions(+) diff --git a/NAMESPACE b/NAMESPACE index b405f29..0f9c992 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -30,6 +30,8 @@ export( rTrack, rTracks, rTracksCollection, as.Track, as.Track.arrow, as.Track.ppp, auto.arima.Track, avedistTrack, avemove, chimaps, Kinhom.Track, pcfinhom.Track, reTrack, + tsqTracks,unique.Track,as.list.Tracks,as.list.TracksCollection,range.Track, + idw.Track ) exportMethods( From 50f7ed68e0be4e84bf2b595e7b31187d0d16d983 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 27 Oct 2019 21:23:14 +0100 Subject: [PATCH 14/44] Frechet distance fixed FrechetDist(x,y) was not eual to FrechetDist(x,y) sometimes --- R/compare-methods.R | 1 - 1 file changed, 1 deletion(-) diff --git a/R/compare-methods.R b/R/compare-methods.R index ee0f6b1..4ad45a1 100644 --- a/R/compare-methods.R +++ b/R/compare-methods.R @@ -126,7 +126,6 @@ frechetDist <- function(track1, track2) { dists[i,j] <- max(dists[i,j], min(dists[i-1,j], dists[i-1,j-1], dists[i,j-1])) } } - max(xts::last(xts::last(dists))) } From 048e3f00a2db1566f37ae78079e996061247b368 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 27 Oct 2019 21:26:58 +0100 Subject: [PATCH 15/44] FrechetDist fixed FrechetDist(x,y) was not eual to FrechetDist(x,y) sometimes --- R/compare-methods.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/R/compare-methods.R b/R/compare-methods.R index 4ad45a1..5b80da3 100644 --- a/R/compare-methods.R +++ b/R/compare-methods.R @@ -119,6 +119,7 @@ frechetDist <- function(track1, track2) { if (!identicalCRS(track1, track2)) stop("CRS are not identical!") dists <- spDists(track1@sp, track2@sp) #dists between all points + if(all(diag(dists)==0)){return(0)} dists[,1] <- cummax(dists[,1]) # cases where one of the trajectories is a point dists[1,] <- cummax(dists[1,]) for (i in 2:nrow(dists)) { # build rest of frechet distance matrix @@ -126,6 +127,8 @@ frechetDist <- function(track1, track2) { dists[i,j] <- max(dists[i,j], min(dists[i-1,j], dists[i-1,j-1], dists[i,j-1])) } } + min(max(xts::last(xts::last(dists))),max(xts::last(xts::last(t(dists))))) + # max(xts::last(xts::last(dists))) } From 8afd2f0a46aa90b6f9ec0d37c35c62791f84a4b7 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 27 Oct 2019 23:08:41 +0100 Subject: [PATCH 16/44] density.list now accepets functions to be applied to pixel values over time --- R/Trackstat.R | 7 +++++-- man/density.list.Rd | 5 +++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/R/Trackstat.R b/R/Trackstat.R index 45f15ea..106b90e 100644 --- a/R/Trackstat.R +++ b/R/Trackstat.R @@ -200,7 +200,7 @@ print.ppplist <- function(x){ print(x) } -density.list <- function(x, timestamp, method=c("kernel","Voronoi"), ...) { +density.list <- function(x, timestamp, method=c("kernel","Voronoi"), Fun=mean, ...) { stopifnot(class(x)=="list" | class(x)=="Tracks" | class(x)=="TracksCollection") if(class(x)=="Tracks") x <- as.list.Tracks(x) @@ -221,8 +221,11 @@ density.list <- function(x, timestamp, method=c("kernel","Voronoi"), ...) { else{ imlist <- lapply(p, spatstat::densityVoronoi, ...) } + out <- sapply(imlist,"[") + out <- apply(out,1,Fun) + out <- as.im(matrix(out,nrow=nrow(imlist[[1]]),ncol(imlist[[1]]))) - out <- Reduce("+", imlist) / length(imlist) + # out <- Reduce("+", imlist) / length(imlist) attr(out, "Tracksim") <- imlist attr(out, "ppps") <- p return(out) diff --git a/man/density.list.Rd b/man/density.list.Rd index 0c40df2..1a85ffc 100644 --- a/man/density.list.Rd +++ b/man/density.list.Rd @@ -9,16 +9,17 @@ Estimating the intensity of an object of classes \link[trajectories]{Tracks}, \l } \usage{ -\method{density}{list}(x, timestamp,...) +\method{density}{list}(x, timestamp,FUN=mean,...) } \arguments{ \item{x}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} \item{timestamp}{based on secs, mins, ... .} +\item{FUN}{a function to be applied to the values of each pixel, see details} \item{...}{arguments passed to the \link[spatstat]{density.ppp}.} } \details{ -This function converts a trajectory pattern to a list of spatial point patterns and then it calclulates the intensity of each obtained point pattern using \link[spatstat]{density.ppp}. The average of resulted estimated intensity is considered as the intensity of X. Bandwidth selection methods such as \link[spatstat]{bw.diggle}, \link[spatstat]{bw.scott} and \link[spatstat]{bw.ppl} can be considered in \link[trajectories]{density.list}. +This function converts a trajectory pattern to a list of spatial point patterns and then it calclulates the intensity of each obtained point pattern using \link[spatstat]{density.ppp}. This results in a list of images in which function FUN (default mean) will then be applied to the corresponding values of each pixel. Bandwidth selection methods such as \link[spatstat]{bw.diggle}, \link[spatstat]{bw.scott} and \link[spatstat]{bw.ppl} can be considered in \link[trajectories]{density.list}. Note that, tracks in X should overlap in time. } From 5fd095cb1b68e048360043477549b252a185a885 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 27 Oct 2019 23:22:04 +0100 Subject: [PATCH 17/44] idw now accepets functions to be applied to pixel values over time --- R/Trackstat.R | 13 ++++++++++--- man/idw.Track.Rd | 5 +++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/R/Trackstat.R b/R/Trackstat.R index 106b90e..5456461 100644 --- a/R/Trackstat.R +++ b/R/Trackstat.R @@ -277,7 +277,7 @@ print.Trrow <- function(x) { print(x) } -idw.Track <- function(X,timestamp,epsilon=0,...){ +idw.Track <- function(X,timestamp,epsilon=0,Fun=mean,...){ stopifnot(class(X)=="list" | class(X)=="Tracks" | class(X)=="TracksCollection") if(class(X)=="Tracks") X <- as.list.Tracks(X) @@ -289,8 +289,15 @@ idw.Track <- function(X,timestamp,epsilon=0,...){ Y <- as.Track.arrow(X,timestamp,epsilon=epsilon) Z <- lapply(Y, spatstat::idw, ...) - meanIDW <- Reduce("+",Z)/length(Z) - return(meanIDW) + + out <- sapply(Z,"[") + out <- apply(out,1,Fun) + out <- as.im(matrix(out,nrow=nrow(Z[[1]]),ncol(Z[[1]]))) + + attr(out, "idws") <- Z + + # meanIDW <- Reduce("+",Z)/length(Z) + return(out) } avemove <- function(X,timestamp,epsilon=0){ diff --git a/man/idw.Track.Rd b/man/idw.Track.Rd index 816107b..4b8692d 100644 --- a/man/idw.Track.Rd +++ b/man/idw.Track.Rd @@ -7,19 +7,20 @@ Movement smoothing of a trajectory pattern Movement smoothing of an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects. } \usage{ -\method{idw}{Track}(X,timestamp,epsilon=0,...) +\method{idw}{Track}(X,timestamp,epsilon=0,Fun=mean,...) } \arguments{ \item{X}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} \item{timestamp}{based on secs,mins, ... .} \item{epsilon}{(optional) movements with a length less than epsilon are not considered in the calculation.} +\item{Fun}{a function to be applied to the values of each pixel, see details} \item{...}{arguments passed to \link[spatstat]{idw} function.} } \details{ Performs spatial smoothing to an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects. -X will be converted to a list of marked point patterns using \link[trajectories]{as.Track.arrow} and then inverse-distance weighted smoothing will be applied to each obtained marked point pattern using \link[spatstat]{idw}. The average of all smoothed maps is considered as an inverse-distance weighted smoothing of X. +X will be converted to a list of marked point patterns using \link[trajectories]{as.Track.arrow} where marks are the length of movements at corresponding points, and then inverse-distance weighted smoothing will be applied to each obtained marked point pattern using \link[spatstat]{idw}. This results in a list of images in which function FUN (default mean) will then be applied to the corresponding values of each pixel. Note that, tracks in X should overlap in time. } From 2a8f8ca82f07e9280e27da1518bdde266216bb94 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 27 Oct 2019 23:22:35 +0100 Subject: [PATCH 18/44] typo --- man/density.list.Rd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/man/density.list.Rd b/man/density.list.Rd index 1a85ffc..1adc36c 100644 --- a/man/density.list.Rd +++ b/man/density.list.Rd @@ -9,12 +9,12 @@ Estimating the intensity of an object of classes \link[trajectories]{Tracks}, \l } \usage{ -\method{density}{list}(x, timestamp,FUN=mean,...) +\method{density}{list}(x, timestamp,Fun=mean,...) } \arguments{ \item{x}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} \item{timestamp}{based on secs, mins, ... .} -\item{FUN}{a function to be applied to the values of each pixel, see details} +\item{Fun}{a function to be applied to the values of each pixel, see details.} \item{...}{arguments passed to the \link[spatstat]{density.ppp}.} } From 6009b8d128ad267e33c49d04494dc8fa7f5ed774 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 10 Nov 2019 19:52:47 +0100 Subject: [PATCH 19/44] separate documentation for TrackStats, TrackSummary and TracksSummary --- man/Track-class.Rd | 32 +++++++++++--------------------- man/TrackStats.Rd | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 21 deletions(-) create mode 100644 man/TrackStats.Rd diff --git a/man/Track-class.Rd b/man/Track-class.Rd index 191b7a0..d1ffc45 100644 --- a/man/Track-class.Rd +++ b/man/Track-class.Rd @@ -7,9 +7,6 @@ \alias{Track} \alias{Tracks} \alias{TracksCollection} -\alias{TrackStats} -\alias{TrackSummary} -\alias{TracksSummary} \alias{[,Track-method} \alias{[,Tracks-method} \alias{[,TracksCollection-method} @@ -51,8 +48,11 @@ \alias{approxTracksCollection} \title{Classes "Track", "Tracks", and "TracksCollection"} + \description{ Classes for representing sets of trajectory data, -with attributes, for different IDs (persons, objects, etc) } +with attributes, for different IDs (persons, objects, etc) +} + \section{Objects from the Class}{ Objects of class \code{Track} extend \link{STIDF-class} and contain single trips or tracks, @@ -61,6 +61,7 @@ for a single ID (person, object or tracking device), objects of class \code{TracksCollection} contain multiple \code{Tracks} objects for different IDs. } + \section{Slots of class "Track"}{ \describe{ \item{\code{sp}:}{spatial locations of the track points, with length n} @@ -72,6 +73,7 @@ different IDs. attributes between the track points such as distance and speed } } } + \section{Slots of class "Tracks"}{ \describe{ \item{\code{tracks}:}{\code{list} with \code{Track} objects, of length m} @@ -79,6 +81,7 @@ different IDs. summary data for each \code{Track} object} } } + \section{Slots of class "TracksCollection"}{ \describe{ \item{\code{tracksCollection}:}{\code{list} \code{Tracks} objects, of @@ -87,6 +90,7 @@ different IDs. containing summary data for each \code{Tracks} object} } } + \section{Methods}{ \describe{ \item{[[}{\code{signature(obj = "Track")}: retrieves the attribute element} @@ -120,9 +124,6 @@ different IDs. fn = TrackSummary) TracksCollection(tracksCollection, tracksCollectionData, fn = TracksSummary) - TrackStats(track) - TrackSummary(track) - TracksSummary(tracksCollection) \S4method{[}{Track}(x, i, j, ..., drop = TRUE) \S4method{[}{TracksCollection}(x, i, j, ..., drop = TRUE) \S4method{coerce}{Track,data.frame}(from, to) @@ -151,25 +152,14 @@ different IDs. \item{to}{target class} } -\value{Functions \code{Track}, \code{Tracks} and +\value{ +Functions \code{Track}, \code{Tracks} and \code{TracksCollection} are constructor functions that take the slots as arguments, check object validity, and compute summary statistics on the track and tracks sets. - -\code{TrackStats} returns a \code{data.frame} with for each track -segment the distance, duration, speed, and direction. In case data are -geographical coordinates (long/lat), distance is in m, and direction -is initial bearing. - -\code{TrackSummary} reports for each track xmin, xmax, ymin, ymax, -tmin, tmax, (number of points) n, (total) distance, and medspeed -(median speed). - -\code{TracksSummary} reports for each Tracks of a TracksCollection -(number of tracks) n, xmin, xmax, ymin, ymax, tmin, tmin, tmax. } -\author{ Edzer Pebesma, \email{edzer.pebesma@uni-muenster.de} } +\author{Edzer Pebesma, \email{edzer.pebesma@uni-muenster.de} } \references{ http://www.jstatsoft.org/v51/i07/ } \note{\code{segments} is a \code{data.frame} form in which track diff --git a/man/TrackStats.Rd b/man/TrackStats.Rd new file mode 100644 index 0000000..6e1fee9 --- /dev/null +++ b/man/TrackStats.Rd @@ -0,0 +1,45 @@ +\name{TrackStats} +\alias{TrackStats} +\alias{TrackSummary} +\alias{TracksSummary} + +\title{ +Statistics for objects of class Track, Tracks and TracksCollection +} +\description{ +Some statistics for objects of class Track, Tracks and TracksCollection.} +\usage{ +TrackStats(X) +TrackSummary(X) +TracksSummary(X) +} +\arguments{ + \item{X}{an object of class \link[trajectories]{Track} or a list of \link[trajectories]{Tracks} objects +} +} +\details{ +\link[trajectories]{TrackStats} returns a data.frame with the distance, duration, speed, and direction of each segment of X (an object of class Track). In case data are geographical coordinates (long/lat), distance is in m, and direction is initial bearing. Direction reperesents the turnning angle, two-argument arc-tangent, in Degree. + +\link[trajectories]{TrackSummary} returns a data.frame with minimum and maximum of x,y and time of X (an object of class Track) together with number of its spatial points, total distance traveled and median of speed. + + +\link[trajectories]{TracksSummary} returns a data.frame with minimum and maximum of x,y and time of X (a list of objects of class Tracks) +} + +\value{ +a data frame +} +\author{ +Edzer Pebesma, \email{edzer.pebesma@uni-muenster.de} +} +\seealso{ +\link[trajectories]{Track}, \link[trajectories]{Tracks}, \link[trajectories]{rTrack} +} +\examples{ +X <- rTrack() +TrackStats(X) +TrackSummary(X) + +X <- list(rTracks(),rTracks()) +TracksSummary(X) +} From c013ab28f900529f4d5d4c96dbc522d4f723eab0 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 10 Nov 2019 19:53:14 +0100 Subject: [PATCH 20/44] small edit --- R/Class-Tracks.R | 4 +++- R/rtracks.R | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/R/Class-Tracks.R b/R/Class-Tracks.R index 19704e5..8d3ce79 100644 --- a/R/Class-Tracks.R +++ b/R/Class-Tracks.R @@ -100,7 +100,7 @@ TrackSummary = function(track) { ix = index(track@time) bb = bbox(track@sp) conn = track@connections - data.frame( + d <- data.frame( xmin = bb[1,1], xmax = bb[1,2], ymin = bb[2,1], @@ -112,6 +112,8 @@ TrackSummary = function(track) { medspeed = quantile(conn$speed, 0.5) # TODO Compute some mean direction? ) + rownames(d) <- NULL + d } # Pre-computes elements of tracksData. diff --git a/R/rtracks.R b/R/rtracks.R index cfbed2a..a354621 100644 --- a/R/rtracks.R +++ b/R/rtracks.R @@ -69,11 +69,11 @@ print.Track <- function(x){ print.Tracks <- function(X){ cat("An object of class Tracks" ,"\n"); - cat(paste0(length(X@tracks)), "tracks followed by a single object") + cat(paste0(length(X@tracks)), "tracks followed by a single object","\n") } print.TracksCollection <- function(X){ cat("An object of class TracksCollection" ,"\n"); cat(paste0(length(X@tracksCollection)) - , "collection of tracks followed by", paste0(length(X@tracksCollection)), " object") + , "collection of tracks followed by", paste0(length(X@tracksCollection)), " object","\n") } From 9a63cabefd956b4c520886828276604fcfc9de03 Mon Sep 17 00:00:00 2001 From: Moradii Date: Mon, 11 Nov 2019 23:36:45 +0100 Subject: [PATCH 21/44] unnecessary removed --- man/Track.idw.Rd | 45 --------------------------------------------- 1 file changed, 45 deletions(-) delete mode 100644 man/Track.idw.Rd diff --git a/man/Track.idw.Rd b/man/Track.idw.Rd deleted file mode 100644 index a0a0e7c..0000000 --- a/man/Track.idw.Rd +++ /dev/null @@ -1,45 +0,0 @@ -\name{Track.idw} -\alias{Track.idw} -%- Also NEED an '\alias' for EACH other topic documented here. -\title{ -Movement smoothing of trajectory pattern -} -\description{ -Movement smoothing of trajectory pattern -} -\usage{ -Track.idw(X,timestamp,epsilon=epsilon,...) -} -%- maybe also 'usage' for other objects documented here. -\arguments{ - \item{X}{ -a list of objects of class "Track" -} -\item{timestamp}{ -based on secs,mins, ... -} -\item{epsilon}{(optional) movements with length less than epsilon are not considered in the calculation} -\item{...}{passed to arguments of fucntion idw in spatstat} -} -\details{ -Performs spatial smoothing to the movements of a list of tracks. -} -\value{ -an image of class "im". -} -\author{ -Mohammad Mehdi Moradi -} - -%% ~Make other sections like Warning with \section{Warning }{....} ~ - -\seealso{ -\link[trajectories]{as.Track.arrow}, \link[spatstat]{idw}} -\examples{ -X <- list() -for(i in 1:10){ - m <- matrix(c(0,10,0,10),nrow=2,byrow = TRUE) - X[[i]] <- rTrack(bbox = m,transform = TRUE) -} -Track.idw(X,timestamp="180 secs") -} From 81d8bb9a2cc422b82eeefcfd88a195b3cda5994d Mon Sep 17 00:00:00 2001 From: Moradii Date: Wed, 27 Nov 2019 23:41:28 +0100 Subject: [PATCH 22/44] spatstat::as.im --- R/Trackstat.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/Trackstat.R b/R/Trackstat.R index 5456461..883baf3 100644 --- a/R/Trackstat.R +++ b/R/Trackstat.R @@ -223,7 +223,7 @@ density.list <- function(x, timestamp, method=c("kernel","Voronoi"), Fun=mean, . } out <- sapply(imlist,"[") out <- apply(out,1,Fun) - out <- as.im(matrix(out,nrow=nrow(imlist[[1]]),ncol(imlist[[1]]))) + out <- spatstat::as.im(matrix(out,nrow=nrow(imlist[[1]]),ncol(imlist[[1]]))) # out <- Reduce("+", imlist) / length(imlist) attr(out, "Tracksim") <- imlist From 9eff7d044554972c4065719b4bf65bf5d41e650b Mon Sep 17 00:00:00 2001 From: Moradii Date: Wed, 27 Nov 2019 23:42:29 +0100 Subject: [PATCH 23/44] Tracks-methods updated --- R/Tracks-methods.R | 83 ++++++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 39 deletions(-) diff --git a/R/Tracks-methods.R b/R/Tracks-methods.R index 82defdf..1101c73 100644 --- a/R/Tracks-methods.R +++ b/R/Tracks-methods.R @@ -42,7 +42,7 @@ setAs("Track", "data.frame", setAs("Tracks", "data.frame", function(from) { - l = lapply(from@tracks, function(x) rbind(as(x, "data.frame"), NA)) + l = lapply(from@tracks, function(x) as(x, "data.frame")) d = do.call(rbind, l) d$Track = rep(names(from@tracks), times = sapply(l, nrow)) d @@ -230,6 +230,7 @@ plot.TracksCollection <- function(x, y, ..., xlim = stbox(x)[,1], plot(as(x, "SpatialLines"), xlim = xlim, ylim = ylim, axes = axes, col = col, lwd = lwd, lty = lty, add = add, ...) } + setMethod("plot", "TracksCollection", plot.TracksCollection) setMethod("plot", "Tracks", function(x, ...) plot(TracksCollection(list(x)), ...)) @@ -378,10 +379,6 @@ summary.Tracks = function(object, ...) { obj } -setMethod("show", "Track", function(object) print.Track(object)) -setMethod("show", "Tracks", function(object) print.Tracks(object)) -setMethod("show", "TracksCollection", function(object) print.TracksCollection(object)) - setMethod("summary", "Tracks", summary.Tracks) print.summary.Tracks = function(x, ...) { @@ -439,14 +436,20 @@ print.summary.TracksCollection = function(x, ...) { invisible(x) } +# Provide show methods. + +setMethod("show", "Track", function(object) print.Track(object)) +setMethod("show", "Tracks", function(object) print.Tracks(object)) +setMethod("show", "TracksCollection", function(object) print.TracksCollection(object)) + # Provide selection methods. -subs.Track <- function(x, i, j, ..., drop = TRUE) { - Track(as(x, "STIDF")[i, j, ..., drop = drop]) +subs.Track <- function(x, i, ..., drop = TRUE) { + Track(as(x, "STIDF")[i, ..., drop = drop]) } setMethod("[", "Track", subs.Track) -subs.Tracks <- function(x, i, j, ... , drop = TRUE) { +subs.Tracks <- function(x, i, ... , drop = TRUE) { if (missing(i)) i = 1:length(x@tracks) else if (is(i, "Spatial")) @@ -461,34 +464,34 @@ subs.Tracks <- function(x, i, j, ... , drop = TRUE) { if (!any(i)) NULL else - Tracks(x@tracks[i], x@tracksData[i, j, drop=FALSE]) + Tracks(x@tracks[i]) } } setMethod("[", "Tracks", subs.Tracks) -subs.TracksCollection <- function(x, i, j, ... , drop = TRUE) { - if (!missing(j) && is.character(j)) { - for(tz in seq_along(x@tracksCollection)) { - for(t in seq_along(x[tz]@tracks)) { - data = x[tz][t]@data - connections = x[tz][t]@connections - if(j %in% names(data)) - data = data[j] - else - # An empty data slot is returned if the passed attribute - # does not exist. The same applies to the connections slot. - data = data.frame(matrix(nrow = dim(x[tz][t])["geometries"], ncol = 0)) - if(j %in% names(connections)) - connections = connections[j] - else - connections = data.frame(matrix(nrow = dim(x[tz][t])["geometries"] - 1, ncol = 0)) - # Write back the just processed data and connection slots. - x@tracksCollection[[tz]]@tracks[[t]]@data = data - x@tracksCollection[[tz]]@tracks[[t]]@connections = connections - } - } - } +subs.TracksCollection <- function(x, i, ... , drop = TRUE) { + # if (!missing(j) && is.character(j)) { + # for(tz in seq_along(x@tracksCollection)) { + # for(t in seq_along(x[tz]@tracks)) { + # data = x[tz][t]@data + # connections = x[tz][t]@connections + # if(j %in% names(data)) + # data = data[j] + # else + # # An empty data slot is returned if the passed attribute + # # does not exist. The same applies to the connections slot. + # data = data.frame(matrix(nrow = dim(x[tz][t])["geometries"], ncol = 0)) + # if(j %in% names(connections)) + # connections = connections[j] + # else + # connections = data.frame(matrix(nrow = dim(x[tz][t])["geometries"] - 1, ncol = 0)) + # # Write back the just processed data and connection slots. + # x@tracksCollection[[tz]]@tracks[[t]]@data = data + # x@tracksCollection[[tz]]@tracks[[t]]@connections = connections + # } + # } + # } if (missing(i)) s = 1:length(x@tracksCollection) else if (is(i, "Spatial")) @@ -531,8 +534,10 @@ subs.TracksCollection <- function(x, i, j, ... , drop = TRUE) { setMethod("[", "TracksCollection", subs.TracksCollection) + + setMethod("[[", c("Track", "ANY", "missing"), - function(x, i, j, ...) { + function(x, i, ...) { # TODO What if the attribute name coexists in both the data and # connections slot? Returning a list is inconvenient in the way that it # raises new design issues when making selections on objects of class @@ -548,19 +553,19 @@ setMethod("[[", c("Track", "ANY", "missing"), ) setMethod("[[", c("Tracks", "ANY", "missing"), - function(x, i, j, ...) { - do.call(c, lapply(x@tracks, function(t) t[[i]])) + function(x, i, ...) { + do.call(list, lapply(x@tracks, function(t) t[[i]])) } ) setMethod("[[", c("TracksCollection", "ANY", "missing"), - function(x, i, j, ...) { - do.call(c, lapply(x@tracksCollection, function(t) t[[i]])) + function(x, i, ...) { + do.call(list, lapply(x@tracksCollection, function(t) t[[i]])) } ) setReplaceMethod("[[", c("Track", "ANY", "missing", "ANY"), - function(x, i, j, value) { + function(x, i, value) { if (i %in% names(x@connections)) { warning(paste("replacing", i, "in connections slot")) x@connections[[i]] = value @@ -571,7 +576,7 @@ setReplaceMethod("[[", c("Track", "ANY", "missing", "ANY"), ) setReplaceMethod("[[", c("Tracks", "ANY", "missing", "ANY"), - function(x, i, j, value) { + function(x, i,value) { for(index in seq_along(x@tracks)) { if(i %in% names(x[index]@data)) { # "dim" (and with that "from" and "to") have to be reinitialized @@ -594,7 +599,7 @@ setReplaceMethod("[[", c("Tracks", "ANY", "missing", "ANY"), ) setReplaceMethod("[[", c("TracksCollection", "ANY", "missing", "ANY"), - function(x, i, j, value) { + function(x, i,value) { index = 1 for(tz in seq_along(x@tracksCollection)) { for(t in seq_along(x[tz]@tracks)) { From 962dbb641429e19c0203cf65eb9f8624c0d5c6c2 Mon Sep 17 00:00:00 2001 From: Moradii Date: Wed, 27 Nov 2019 23:43:13 +0100 Subject: [PATCH 24/44] new ,Rd docs --- man/Track-Method.Rd | 146 ++++++++++++++++++++++++++++++++++++++++++++ man/approxTrack.Rd | 133 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 279 insertions(+) create mode 100644 man/Track-Method.Rd create mode 100644 man/approxTrack.Rd diff --git a/man/Track-Method.Rd b/man/Track-Method.Rd new file mode 100644 index 0000000..55e174d --- /dev/null +++ b/man/Track-Method.Rd @@ -0,0 +1,146 @@ +\name{Track-Method} +\docType{Method} +\alias{Track-Method} +\alias{[,Track-method} +\alias{[,Tracks-method} +\alias{[,TracksCollection-method} +\alias{[,Track,ANY,ANY,ANY-method} +\alias{[,Tracks,ANY,ANY,ANY-method} +\alias{[,TracksCollection,ANY,ANY,ANY-method} +\alias{[[,Track,ANY,missing-method} +\alias{[[,Tracks,ANY,missing-method} +\alias{[[,TracksCollection,ANY,missing-method} +\alias{[[<-,Track,ANY,missing-method} +\alias{[[<-,Tracks,ANY,missing-method} +\alias{[[<-,TracksCollection,ANY,missing-method} +\alias{$,Track-method} +\alias{$,Tracks-method} +\alias{$,TracksCollection-method} +\alias{$<-,Track-method} +\alias{$<-,Tracks-method} +\alias{$<-,TracksCollection-method} +\alias{coordnames,Track-method} +\alias{coordnames,Tracks-method} +\alias{coordnames,TracksCollection-method} +\alias{aggregate,Track-method} +\alias{aggregate,Tracks-method} +\alias{aggregate,TracksCollection-method} +\alias{plot,TracksCollection,ANY-method} +\alias{plot,Track,missing-method} +\alias{plot,Tracks,ANY-method} +\alias{stplot,TracksCollection-method} +\alias{spTransform,Track,CRS-method} +\alias{spTransform,Tracks,CRS-method} +\alias{spTransform,TracksCollection,CRS-method} +\alias{segPanel} +\alias{tracksPanel} + +\title{ +Methods for classes Track, Tracks, and TracksCollection +} +\description{ +Methods for classes \link[trajectories]{Track}, \link[trajectories]{Tracks} and \link[trajectories]{TracksCollection} +} +\usage{ +\method{as}{Track, Tracks, TracksCollection}(X,"segments") +\method{as}{Track, Tracks, TracksCollection}(X,"data.frame") +\method{as}{Track}(X,"Line") +\method{as}{Track, Tracks}(X,"Lines") +\method{as}{Track, Tracks, TracksCollection}(X,"SpatialLines") +\method{as}{Tracks, TracksCollection}(X,"SpatialLinesDataFrame") +\method{as}{Track, Tracks, TracksCollection}(X,"xts") +\method{as}{Track, Tracks, TracksCollection}(X,"STIDF") +\method{as}{Track, Tracks, TracksCollection}(X,"Spatial") +\method{as}{Track, Tracks, TracksCollection}(X,"SpatialPointsDataFrame") +\method{coordinates}{Track, Tracks, TracksCollection}(X) +\method{proj4string}{Track, Tracks, TracksCollection}(X) +\method{coordnames}{Track, Tracks, TracksCollection}(X) +\method{stbox}{Track, Tracks, TracksCollection}(X) +\method{bbox}{Track, Tracks, TracksCollection}(X) +\method{dim}{Track, Tracks, TracksCollection}(X) +\method{summary}{Track, Tracks, TracksCollection}(X) +\method{show}{Track, Tracks, TracksCollection}(X) +\method{over}{Track, Tracks, TracksCollection}(X) +\method{aggregate}{Track, Tracks, TracksCollection}(X) +\method{stack}{TracksCollection}(X) +\method{unstack}{TracksCollection}(X) + +\S4method{[}{Track, Tracks, TracksCollection}(X, i, ..., drop = TRUE) +\S4method{[[}{Track, Tracks, TracksCollection}(X, i, ..., drop = TRUE) + + +} + +\arguments{ + \item{X}{an object of class +\link[trajectories]{Track}, \link[trajectories]{Tracks} or \link[trajectories]{TracksCollection}} +} +\details{ +Methods. +} +\value{ + +} +\author{ +Edzer Pebesma, \email{edzer.pebesma@uni-muenster.de} + +Mehdi Moradi, \email{m2.moradi@yahoo.com} +} + + +\seealso{ +\link[trajectories]{rTrack}, \link[trajectories]{rTracks} or \link[trajectories]{rTracksCollection} +} + +\examples{ +x <- rTrack(n=10) +as(x,"segments") +as(x,"data.frame") +as(x,"Line") +as(x,"Lines") +as(x,"SpatialLines") +plot(.Last.value) +as(x,"xts") +as(x,"STIDF") +as(x,"Spatial") +plot(.Last.value) +as(x,"SpatialPointsDataFrame") +plot(.Last.value) +coordinates(x) +proj4string(x) +plot(x) +coordnames(x) +dim(x) +stbox(x) +bbox(x) +y <- rTrack(n=10) +y <- as(y,"Spatial") +over(x,y) +y <- rTrack(n=10) +y <- as(y,"xts") +over(x,y) +dim(x) +summary(x) +x[1:4] +names(x@connections) +x[["distance"]] +x[[1]] +x$distance +stack(x) +y <- as(x,"STIDF") +proj4string(y) = CRS("+proj=longlat") +# transform to UTM 50N +x.utm = spTransform(y, CRS("+proj=utm +zone=50 +ellps=WGS84 +datum=WGS84 ++units=m +no_defs ")) +x.utm <- Track(x.utm) + + +x.Tracks <- rTracks(n=100,m=4) +c(x.Tracks@tracks$Track1,x.Tracks@tracks$Track2) +c(x.Tracks[1:2],x.Tracks[3:4]) + +x.TracksCollection <- rTracksCollection(n=10,m=4,p=4) +c(x.TracksCollection[1:2],x.TracksCollection[3:4]) + + +} diff --git a/man/approxTrack.Rd b/man/approxTrack.Rd new file mode 100644 index 0000000..33894b2 --- /dev/null +++ b/man/approxTrack.Rd @@ -0,0 +1,133 @@ +\name{approxTrack} +\alias{approxTrack} +\alias{approxTracks} +\alias{approxTracksCollection} + +\title{ +Interpolate Track, Tracks and TracksCollection +} +\description{ +Interpolating Track, Tracks and TracksCollection +} +\usage{ +approxTrack(track, when, ..., n = 50, by, FUN = stats::approx, warn.if.outside = TRUE) +approxTracks(tr,...) +approxTracksCollection(tc,...) + +} +\arguments{ + \item{track,tr,tc}{ +an object of class +\link[trajectories]{Track}, \link[trajectories]{Tracks} or \link[trajectories]{TracksCollection} +} + \item{when}{ +a time sequance specifying where interpolation is to take place. +} + \item{n}{ +if when is not specified, interpolation takes place at n equally spaced times spanning the interval [min(index(track)), max(index(track))]. +} + \item{by}{ +if when is not specified, by can be used to create a sequance of equally spaced times spanning the interval [min(index(track)), max(index(track))] +} + \item{FUN}{ +a function to be used for interpolation +} + \item{\dots}{ +passed to FUN +} + \item{warn.if.outside}{ +warning if when has times outside the range of data +} +} +\details{ +Interpolating Track, Tracks and TracksCollection. +} +\value{ +an object of class Track, Tracks or TracksCollection. +} +\author{ +Edzer Pebesma, \email{edzer.pebesma@uni-muenster.de} +} +\seealso{ +\link[stats]{approx}, \link[stats]{spline} +} +\examples{ +library(sp) +library(spacetime) + +t0 = as.POSIXct(as.Date("2013-09-30",tz="CET")) +# person A, track 1: +x = c(7,6,5,5,4,3,3) +y = c(7,7,6,5,5,6,7) +n = length(x) +set.seed(131) +t = t0 + cumsum(runif(n) * 60) +require(rgdal) +crs = CRS("+proj=longlat +ellps=WGS84") # longlat +stidf = STIDF(SpatialPoints(cbind(x,y),crs), t, data.frame(co2 = rnorm(n))) +A1 = Track(stidf) + +# person A, track 2: +x = c(7,6,6,7,7) +y = c(6,5,4,4,3) +n = length(x) +t = max(t) + cumsum(runif(n) * 60) +stidf = STIDF(SpatialPoints(cbind(x,y),crs), t, data.frame(co2 = rnorm(n))) +A2 = Track(stidf) + +# Tracks for person A: +A = Tracks(list(A1=A1,A2=A2)) + +# person B, track 1: +x = c(2,2,1,1,2,3) +y = c(5,4,3,2,2,3) +n = length(x) +t = max(t) + cumsum(runif(n) * 60) +stidf = STIDF(SpatialPoints(cbind(x,y),crs), t, data.frame(co2 = rnorm(n))) +B1 = Track(stidf) + +# person B, track 2: +x = c(3,3,4,3,3,4) +y = c(5,4,3,2,1,1) +n = length(x) +t = max(t) + cumsum(runif(n) * 60) +stidf = STIDF(SpatialPoints(cbind(x,y),crs), t, data.frame(co2 = rnorm(n))) +B2 = Track(stidf) + +# Tracks for person B: +B = Tracks(list(B1=B1,B2=B2)) + +Tr = TracksCollection(list(A=A,B=B)) + +# approxTrack: +opar = par() +par(mfrow = c(1, 2)) +plot(B2, ylim = c(.5, 6)) +plot(B2, pch = 16, add = TRUE) +title("irregular time steps") +i = index(B2) +B3 = approxTrack(B2, seq(min(i), max(i), length.out = 50)) +plot(B3, col = 'red', type = 'p', add = TRUE) + +B4 = approxTrack(B2, seq(min(i), max(i), length.out = 50), FUN = spline) +plot(B4, col = 'blue', type = 'b', add = TRUE) + +# regular time steps: +t = max(t) + (1:n) * 60 # regular +B2 = Track(STIDF(SpatialPoints(cbind(x,y),crs), t, data.frame(co2 = rnorm(n)))) +plot(B2, ylim = c(.5, 6)) +plot(B2, pch = 16, add = TRUE) +title("constant time steps") +i = index(B2) +B3 = approxTrack(B2) +plot(B3, type = 'p', col = 'red', add = TRUE) +B4 = approxTrack(B2, FUN = spline) +plot(B4, type = 'p', col = 'blue', add = TRUE) +# par(opar) # good to do, but would generate warnings +smth = function(x,y,xout,...) predict(smooth.spline(as.numeric(x), y), as.numeric(xout)) +data(storms) +plot(storms, type = 'p') +storms.smooth = approxTracksCollection(storms, FUN = smth, n = 200) +plot(storms.smooth, add = TRUE, col = 'red') + +} From 4614f91e8c6f06cadbd421288bbc8bf00abb5c62 Mon Sep 17 00:00:00 2001 From: Moradii Date: Wed, 27 Nov 2019 23:51:14 +0100 Subject: [PATCH 25/44] args added --- man/Track-Method.Rd | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/man/Track-Method.Rd b/man/Track-Method.Rd index 55e174d..43fac5f 100644 --- a/man/Track-Method.Rd +++ b/man/Track-Method.Rd @@ -74,6 +74,10 @@ Methods for classes \link[trajectories]{Track}, \link[trajectories]{Tracks} and \arguments{ \item{X}{an object of class \link[trajectories]{Track}, \link[trajectories]{Tracks} or \link[trajectories]{TracksCollection}} +\item{i}{selection of spatial entities} +\item{...}{selection of attribute(s)} +\item{drop}{logical} + } \details{ Methods. From 6ae00b68739959181c2b97bb26277753d47643ec Mon Sep 17 00:00:00 2001 From: Moradii Date: Wed, 27 Nov 2019 23:52:51 +0100 Subject: [PATCH 26/44] Track-class edited according to new .Rd files --- man/Track-class.Rd | 107 +++------------------------------------------ 1 file changed, 6 insertions(+), 101 deletions(-) diff --git a/man/Track-class.Rd b/man/Track-class.Rd index d1ffc45..6ec93ec 100644 --- a/man/Track-class.Rd +++ b/man/Track-class.Rd @@ -7,49 +7,16 @@ \alias{Track} \alias{Tracks} \alias{TracksCollection} -\alias{[,Track-method} -\alias{[,Tracks-method} -\alias{[,TracksCollection-method} -\alias{[,Track,ANY,ANY,ANY-method} -\alias{[,Tracks,ANY,ANY,ANY-method} -\alias{[,TracksCollection,ANY,ANY,ANY-method} -\alias{[[,Track,ANY,missing-method} -\alias{[[,Tracks,ANY,missing-method} -\alias{[[,TracksCollection,ANY,missing-method} -\alias{[[<-,Track,ANY,missing-method} -\alias{[[<-,Tracks,ANY,missing-method} -\alias{[[<-,TracksCollection,ANY,missing-method} -\alias{$,Track-method} -\alias{$,Tracks-method} -\alias{$,TracksCollection-method} -\alias{$<-,Track-method} -\alias{$<-,Tracks-method} -\alias{$<-,TracksCollection-method} \alias{coerce,Track,data.frame-method} \alias{coerce,Tracks,data.frame-method} \alias{coerce,TracksCollection,data.frame-method} -\alias{coordnames,Track-method} -\alias{coordnames,Tracks-method} -\alias{coordnames,TracksCollection-method} -\alias{aggregate,Track-method} -\alias{aggregate,Tracks-method} -\alias{aggregate,TracksCollection-method} -\alias{plot,TracksCollection,ANY-method} -\alias{plot,Track,missing-method} -\alias{plot,Tracks,ANY-method} -\alias{stplot,TracksCollection-method} -\alias{spTransform,Track,CRS-method} -\alias{spTransform,Tracks,CRS-method} -\alias{spTransform,TracksCollection,CRS-method} -\alias{segPanel} -\alias{tracksPanel} -\alias{approxTrack} -\alias{approxTracks} -\alias{approxTracksCollection} -\title{Classes "Track", "Tracks", and "TracksCollection"} +\title{ +Classes Track, Tracks, and TracksCollection +} -\description{ Classes for representing sets of trajectory data, +\description{ +Classes for representing sets of trajectory data, with attributes, for different IDs (persons, objects, etc) } @@ -91,32 +58,6 @@ different IDs. } } -\section{Methods}{ - \describe{ - \item{[[}{\code{signature(obj = "Track")}: retrieves the attribute element} - \item{[[}{\code{signature(obj = "Tracks")}: retrieves the attribute element} - \item{[[}{\code{signature(obj = "TracksCollection")}: retrieves the attribute element} - \item{[[<-}{\code{signature(obj = "Track")}: sets or replaces the attribute element} - \item{[[<-}{\code{signature(obj = "Tracks")}: sets or replaces the attribute element} - \item{[[<-}{\code{signature(obj = "TracksCollection")}: sets or replaces the attribute element} - \item{$}{\code{signature(obj = "Track")}: retrieves the attribute element} - \item{$}{\code{signature(obj = "Tracks")}: retrieves the attribute element} - \item{$}{\code{signature(obj = "TracksCollection")}: retrieves the attribute element} - \item{$<-}{\code{signature(obj = "Track")}: sets or replaces the attribute element} - \item{$<-}{\code{signature(obj = "Tracks")}: sets or replaces the attribute element} - \item{$<-}{\code{signature(obj = "TracksCollection")}: sets or replaces the attribute element} - \item{coerce}{Track,data.frame}{coerce to \code{data.frame}} - \item{coerce}{Tracks,data.frame}{coerce to \code{data.frame}} - \item{coerce}{TracksCollection,data.frame}{coerce to \code{data.frame}} - \item{plot}{\code{signature(x = "TracksCollection", y = "missing")}: - plots sets of sets of tracks} - \item{stplot}{\code{signature(obj = "TracksCollection")}: - plots sets of sets of tracks} - % for spatial objects; does nothing but setting up a plotting region choosing - % a suitable aspect if not given(see below), colouring the plot background using either a bg= argument or par("bg"), and possibly drawing axes. } - % \item{summary}{\code{signature(object = "Spatial")}: summarize object} - } -} \usage{ Track(track, df = fn(track), fn = TrackStats) @@ -124,8 +65,6 @@ different IDs. fn = TrackSummary) TracksCollection(tracksCollection, tracksCollectionData, fn = TracksSummary) - \S4method{[}{Track}(x, i, j, ..., drop = TRUE) - \S4method{[}{TracksCollection}(x, i, j, ..., drop = TRUE) \S4method{coerce}{Track,data.frame}(from, to) \S4method{coerce}{Tracks,data.frame}(from, to) \S4method{coerce}{TracksCollection,data.frame}(from, to) @@ -136,18 +75,12 @@ different IDs. \arguments{ \item{track}{object of class \link{STIDF-class}, representing a single trip} \item{df}{optional \code{data.frame} with information between track points} +\item{fn}{function} \item{tracks}{named list with \code{Track} objects} \item{tracksData}{\code{data.frame} with summary data for each \code{Track}} \item{tracksCollection}{list, with \code{Tracks} objects} \item{tracksCollectionData}{data.frame, with summary data on \code{tracksCollection}} -\item{fn}{function; } -\item{x}{object of class \code{Track} etc} -%\item{y}{object of class \code{Spatial}} -\item{i}{selection of spatial entities} -\item{j}{selection of temporal entities (see syntax in package xts) } -\item{...}{selection of attribute(s)} -\item{drop}{logical} \item{from}{from} \item{to}{target class} } @@ -234,34 +167,6 @@ B2 = Track(stidf) # no longer longlat; B3 = Track(stidf, fn = MyStats) all.equal(B3$distance, B2$distance) -# approxTrack: -opar = par() -par(mfrow = c(1, 2)) -plot(B2, ylim = c(.5, 6)) -plot(B2, pch = 16, add = TRUE) -title("irregular time steps") -i = index(B2) -B3 = approxTrack(B2, seq(min(i), max(i), length.out = 50)) -plot(B3, col = 'red', type = 'p', add = TRUE) -B4 = approxTrack(B2, seq(min(i), max(i), length.out = 50), FUN = spline) -plot(B4, col = 'blue', type = 'b', add = TRUE) -# regular time steps: -t = max(t) + (1:n) * 60 # regular -B2 = Track(STIDF(SpatialPoints(cbind(x,y),crs), t, data.frame(co2 = rnorm(n)))) -plot(B2, ylim = c(.5, 6)) -plot(B2, pch = 16, add = TRUE) -title("constant time steps") -i = index(B2) -B3 = approxTrack(B2) -plot(B3, type = 'p', col = 'red', add = TRUE) -B4 = approxTrack(B2, FUN = spline) -plot(B4, type = 'p', col = 'blue', add = TRUE) -# par(opar) # good to do, but would generate warnings -smth = function(x,y,xout,...) predict(smooth.spline(as.numeric(x), y), as.numeric(xout)) -data(storms) -plot(storms, type = 'p') -storms.smooth = approxTracksCollection(storms, FUN = smth, n = 200) -plot(storms.smooth, add = TRUE, col = 'red') } \keyword{classes} From ef5b6d32bead8f7600edf15d4139c46481247ded Mon Sep 17 00:00:00 2001 From: Moradii Date: Tue, 3 Dec 2019 17:25:21 +0100 Subject: [PATCH 27/44] R and Rd of generalize updated --- R/generalize.R | 3 ++- man/generalize.Rd | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/R/generalize.R b/R/generalize.R index df2f4cd..aae7d3c 100644 --- a/R/generalize.R +++ b/R/generalize.R @@ -78,8 +78,9 @@ generalize.Track <- function(t, FUN = mean, ..., timeInterval, distance, n, tol, # in the "endTime" slot of STIDF objects does not work properly. attr(endTime, "tzone") = tz stidf@endTime = endTime + warning(paste("connections are only calculated for SpatialPoints")) Track(stidf) -} + } if(!isGeneric("generalize")) setGeneric("generalize", function(t, FUN = mean, ...) diff --git a/man/generalize.Rd b/man/generalize.Rd index c6efbb4..e7c9ed6 100644 --- a/man/generalize.Rd +++ b/man/generalize.Rd @@ -22,10 +22,22 @@ \item{n}{ number of points to form segments } \item{tol}{ tolerance passed on to \link[rgeos]{gSimplify}, to generalize segments using the Douglas-Peucker algorithm. } -\item{toPoints}{ keep mid point rather than forming \link[sp]{SpatialLines} segments } +\item{toPoints}{keep mid point rather than forming \link[sp]{SpatialLines} segments } \item{...}{Additional arguments passed to FUN} } -\value{An object of class \code{Track}, \code{Tracks} or \code{TracksCollection}.} +\value{A generalized object of class \code{Track}, \code{Tracks} or \code{TracksCollection}.} + + +\details{ +Generalize object of classes \link[trajectories]{Track}, \link[trajectories]{Traks} or \link[trajectories]{TracksCollection} to \link[sp]{SpatialLines} based on number of spatial points, time or distance passed. +} + +\examples{ +x <- rTrack() +generalize(x,n=15) +generalize(x,distance=40) +generalize(x,timeInterval=50) +} \keyword{generalize} From 4a505b1b1d80e8226704f5ac5fc6478b5a1814f8 Mon Sep 17 00:00:00 2001 From: Moradii Date: Tue, 3 Dec 2019 17:29:19 +0100 Subject: [PATCH 28/44] {} added --- R/Class-Tracks.R | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/R/Class-Tracks.R b/R/Class-Tracks.R index 8d3ce79..32c9a34 100644 --- a/R/Class-Tracks.R +++ b/R/Class-Tracks.R @@ -43,8 +43,9 @@ TrackStats = function(track) { stopifnot(!any(duration == 0)) # if (class(try(cc <- coordinates(track), silent=TRUE)) == "try-error" || # !is.matrix(cc)) - if (!is(track@sp, "SpatialPoints")) - data.frame(matrix(nrow = length(track@sp) - 1, ncol = 0)) # empty + if (!is(track@sp, "SpatialPoints")){ + data.frame(matrix(nrow = length(track@sp) - 1, ncol = 0)) # empty + } else { cc = coordinates(track@sp) ll = identical(is.projected(track), FALSE) From 054705d55725b9846ed3bcdde270074fee4055c7 Mon Sep 17 00:00:00 2001 From: Moradii Date: Tue, 3 Dec 2019 17:30:41 +0100 Subject: [PATCH 29/44] Rd of classes and methods updated --- man/Track-Method.Rd | 28 +++++++++++++++++++++++----- man/Track-class.Rd | 20 ++------------------ 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/man/Track-Method.Rd b/man/Track-Method.Rd index 43fac5f..4a4b98c 100644 --- a/man/Track-Method.Rd +++ b/man/Track-Method.Rd @@ -36,7 +36,7 @@ \alias{tracksPanel} \title{ -Methods for classes Track, Tracks, and TracksCollection +Methods for classes \code{Track}, \code{Tracks} and \code{TracksCollection} } \description{ Methods for classes \link[trajectories]{Track}, \link[trajectories]{Tracks} and \link[trajectories]{TracksCollection} @@ -115,15 +115,14 @@ proj4string(x) plot(x) coordnames(x) dim(x) -stbox(x) bbox(x) +stbox(x) y <- rTrack(n=10) y <- as(y,"Spatial") over(x,y) y <- rTrack(n=10) y <- as(y,"xts") over(x,y) -dim(x) summary(x) x[1:4] names(x@connections) @@ -132,19 +131,38 @@ x[[1]] x$distance stack(x) y <- as(x,"STIDF") -proj4string(y) = CRS("+proj=longlat") +proj4string(y) <- CRS("+proj=longlat") # transform to UTM 50N -x.utm = spTransform(y, CRS("+proj=utm +zone=50 +ellps=WGS84 +datum=WGS84 +x.utm <- spTransform(y, CRS("+proj=utm +zone=50 +ellps=WGS84 +datum=WGS84 +units=m +no_defs ")) x.utm <- Track(x.utm) +x.Tr <- TracksCollection(list(Tracks(list(x)))) +stplot(x.Tr,attr = "direction", arrows=TRUE, lwd = 3, by = "IDs") + + x.Tracks <- rTracks(n=100,m=4) c(x.Tracks@tracks$Track1,x.Tracks@tracks$Track2) c(x.Tracks[1:2],x.Tracks[3:4]) +x.Tracks.Tr <- TracksCollection(list(x.Tracks)) +stplot(x.Tracks.Tr,attr = "direction", arrows=TRUE, lwd = 3, by = "IDs") + + x.TracksCollection <- rTracksCollection(n=10,m=4,p=4) c(x.TracksCollection[1:2],x.TracksCollection[3:4]) +dim(x.TracksCollection) +dim(x.TracksCollection[2]) +dim(x.TracksCollection[2][1]) + +stplot(x.TracksCollection,attr = "direction", arrows=TRUE, lwd = 3, by = "IDs") +plot(x.TracksCollection, col=2, axes=TRUE) + +u = stack(x.TracksCollection) # four IDs +dim(u) +dim(unstack(u, c(rep(1,4),rep(2,4),rep(3,4),rep(4,4)))) # regroups to original +dim(unstack(u, c(rep(1,4),rep(2,4),rep(3,4),rep(4,2),rep(5,2)))) # regroups to five IDs } diff --git a/man/Track-class.Rd b/man/Track-class.Rd index 6ec93ec..bd08868 100644 --- a/man/Track-class.Rd +++ b/man/Track-class.Rd @@ -12,7 +12,7 @@ \alias{coerce,TracksCollection,data.frame-method} \title{ -Classes Track, Tracks, and TracksCollection +Classes \code{Track}, \code{Tracks} and \code{TracksCollection} } \description{ @@ -139,23 +139,7 @@ B2 = Track(stidf) # Tracks for person A: B = Tracks(list(B1=B1,B2=B2)) Tr = TracksCollection(list(A=A,B=B)) -stplot(Tr, scales = list(draw=TRUE)) -stplot(Tr, attr = "direction", arrows=TRUE, lwd = 3, by = "direction") -stplot(Tr, attr = "direction", arrows=TRUE, lwd = 3, by = "IDs") -plot(Tr, col=2, axes=TRUE) -dim(Tr) -dim(Tr[2]) -dim(Tr[2][1]) -u = stack(Tr) # four IDs -dim(u) -dim(unstack(u, c(1,1,2,2))) # regroups to original -dim(unstack(u, c(1,1,2,3))) # regroups to three IDs -dim(unstack(u, c(1,2,2,1))) # regroups differently -as(Tr, "data.frame")[1:10,] # tracks separated by NA rows -as(Tr, "segments")[1:10,] # track segments as records -Tr[["distance"]] = Tr[["distance"]] * 1000 -Tr$distance = Tr$distance / 1000 -Tr$distance + # work with custum TrackStats function: MyStats = function(track) { df = apply(coordinates(track@sp), 2, diff) # requires sp From 80017a54dbb1e9352227415cb38af3aa1775f60b Mon Sep 17 00:00:00 2001 From: Moradii Date: Tue, 3 Dec 2019 19:22:58 +0100 Subject: [PATCH 30/44] some Rd docs updated --- man/A3.Rd | 4 ++-- man/approxTrack.Rd | 4 ++-- man/as.Track.ppp.Rd | 4 ++-- man/frechetDist.Rd | 7 ++++++- man/stcube.Rd | 3 ++- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/man/A3.Rd b/man/A3.Rd index 4609855..41c69b1 100644 --- a/man/A3.Rd +++ b/man/A3.Rd @@ -1,7 +1,7 @@ \name{A3} \alias{A3} -\title{Trajectory} -\description{Trajectory, locally stored, from envirocar.org, see example below how it was imported} +\title{Trajectory data} +\description{Trajectory, locally stored, from envirocar.org.} \usage{ data(A3) } diff --git a/man/approxTrack.Rd b/man/approxTrack.Rd index 33894b2..109f7ab 100644 --- a/man/approxTrack.Rd +++ b/man/approxTrack.Rd @@ -4,7 +4,7 @@ \alias{approxTracksCollection} \title{ -Interpolate Track, Tracks and TracksCollection +Interpolate objects of classes \code{Track}, \code{Tracks} and \code{TracksCollection} } \description{ Interpolating Track, Tracks and TracksCollection @@ -40,7 +40,7 @@ warning if when has times outside the range of data } } \details{ -Interpolating Track, Tracks and TracksCollection. +Interpolating Track, Tracks and TracksCollection based on a desirable function. } \value{ an object of class Track, Tracks or TracksCollection. diff --git a/man/as.Track.ppp.Rd b/man/as.Track.ppp.Rd index 152a749..109dc14 100644 --- a/man/as.Track.ppp.Rd +++ b/man/as.Track.ppp.Rd @@ -1,7 +1,7 @@ \name{as.Track.ppp} \alias{as.Track.ppp} \title{ -Convert a trajectory pattern to a list of objects of class ppp +Convert a trajectory pattern to a list of spatial point patterns } \description{ @@ -18,7 +18,7 @@ as.Track.ppp(X,timestamp) } \details{ -The function \link[trajectories]{as.Track.ppp} converts objects of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects to a list of spatial point patterns of class \link[spatstat]{ppp} according to a given timestamp. Each obtained spatial point pattern represents the locatoin of "moving objects" (e.g., taxis) in its corresponding time. +The function \link[trajectories]{as.Track.ppp} converts objects of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects to a list of spatial point patterns of class \link[spatstat]{ppp} according to a given timestamp. Each obtained spatial point pattern represents the locatoin of all "moving objects" (e.g., taxis) in a fixed time. Note that, tracks in X should overlap in time. } diff --git a/man/frechetDist.Rd b/man/frechetDist.Rd index 2fe7cd4..37249a7 100644 --- a/man/frechetDist.Rd +++ b/man/frechetDist.Rd @@ -17,7 +17,7 @@ Compute the discrete Frechet distance between two \code{Track} objects. } -\value{Discrete Frechet distance.} +\value{A numeric value representing the Frechet distance.} \references{ http://en.wikipedia.org/wiki/Fr\'echet_distance } @@ -25,5 +25,10 @@ Compute the discrete Frechet distance between two \code{Track} objects. Nikolai Gorte } +\examples{ +x <- rTrack() +y <- rTrack() +frechetDist(x,y) +} \keyword{methods} diff --git a/man/stcube.Rd b/man/stcube.Rd index dcb91c4..896b535 100644 --- a/man/stcube.Rd +++ b/man/stcube.Rd @@ -48,7 +48,8 @@ \value{A space-time cube.} \examples{ -\dontrun{demo(stcube)} +x <- rTrack() +stcube(x) } \keyword{space-time cube} From ed0df8f7d0d5e6c54d777ff0d37656e9307e90e1 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sat, 14 Dec 2019 21:36:05 +0100 Subject: [PATCH 31/44] Description updated --- DESCRIPTION | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 69929ae..4abd2a1 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -11,7 +11,12 @@ Imports: stats, utils, graphics, methods, lattice, sp (>= 1.1-0), spacetime (>= 1.0-0), zoo Suggests: rgdal, rgeos, OpenStreetMap, RCurl, rjson, adehabitatLT, xts, knitr, rgl, forecast, MASS, spatstat, taxidata -Description: Classes and methods for trajectory data, with support for nesting individual Track objects in track sets (Tracks) and track sets for different entities in collections of Tracks. Methods include selection, generalization, aggregation, intersection, simulation, and plotting. +Description: Classes and methods for trajectory data, with support for nesting +individual Track objects in track sets (Tracks) and track sets for different entities +in collections of Tracks. Methods include selection, generalization, aggregation, +intersection, simulation, and plotting. It further includes exploratory methods +such as Kernel smoothing, Voronoi tessellation, distance analysis, +K- and pair correlation functions. License: GPL (>= 2) URL: http://github.com/edzer/trajectories Additional_repositories: http://pebesma.staff.ifgi.de From ff6a88cdd29371784657e78c2a04a1adab457359 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sat, 14 Dec 2019 21:50:40 +0100 Subject: [PATCH 32/44] help of approxTrack updated --- man/approxTrack.Rd | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/man/approxTrack.Rd b/man/approxTrack.Rd index 109f7ab..aa38811 100644 --- a/man/approxTrack.Rd +++ b/man/approxTrack.Rd @@ -4,10 +4,10 @@ \alias{approxTracksCollection} \title{ -Interpolate objects of classes \code{Track}, \code{Tracks} and \code{TracksCollection} +Interpolation for trajectories } \description{ -Interpolating Track, Tracks and TracksCollection +Interpolating objects of classes \code{Track}, \code{Tracks} and \code{TracksCollection}. } \usage{ approxTrack(track, when, ..., n = 50, by, FUN = stats::approx, warn.if.outside = TRUE) @@ -16,31 +16,31 @@ approxTracksCollection(tc,...) } \arguments{ - \item{track,tr,tc}{ +\item{track,tr,tc}{ an object of class -\link[trajectories]{Track}, \link[trajectories]{Tracks} or \link[trajectories]{TracksCollection} +\link[trajectories]{Track}, \link[trajectories]{Tracks} or \link[trajectories]{TracksCollection}. } - \item{when}{ +\item{when}{ a time sequance specifying where interpolation is to take place. } - \item{n}{ +\item{n}{ if when is not specified, interpolation takes place at n equally spaced times spanning the interval [min(index(track)), max(index(track))]. } - \item{by}{ -if when is not specified, by can be used to create a sequance of equally spaced times spanning the interval [min(index(track)), max(index(track))] +\item{by}{ +if when is not specified, by can be used to create a sequance of equally spaced times spanning the interval [min(index(track)), max(index(track))]. } - \item{FUN}{ -a function to be used for interpolation +\item{FUN}{ +a function to be used for interpolation. } - \item{\dots}{ -passed to FUN +\item{\dots}{ +passed to FUN. } - \item{warn.if.outside}{ -warning if when has times outside the range of data +\item{warn.if.outside}{ +warning if when has times outside the range of data. } } \details{ -Interpolating Track, Tracks and TracksCollection based on a desirable function. +Interpolating Track, Tracks, and TracksCollection based on a desirable function. Default is to use \link[stats]{approx} for a linear interpolation. See exapmle below for the use of other functions. } \value{ an object of class Track, Tracks or TracksCollection. From 563b6d32b19b46e413bcf7a7de04b29fab775b19 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sat, 14 Dec 2019 22:11:01 +0100 Subject: [PATCH 33/44] Revert "Description updated" This reverts commit ed0df8f7d0d5e6c54d777ff0d37656e9307e90e1. --- DESCRIPTION | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 4abd2a1..69929ae 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -11,12 +11,7 @@ Imports: stats, utils, graphics, methods, lattice, sp (>= 1.1-0), spacetime (>= 1.0-0), zoo Suggests: rgdal, rgeos, OpenStreetMap, RCurl, rjson, adehabitatLT, xts, knitr, rgl, forecast, MASS, spatstat, taxidata -Description: Classes and methods for trajectory data, with support for nesting -individual Track objects in track sets (Tracks) and track sets for different entities -in collections of Tracks. Methods include selection, generalization, aggregation, -intersection, simulation, and plotting. It further includes exploratory methods -such as Kernel smoothing, Voronoi tessellation, distance analysis, -K- and pair correlation functions. +Description: Classes and methods for trajectory data, with support for nesting individual Track objects in track sets (Tracks) and track sets for different entities in collections of Tracks. Methods include selection, generalization, aggregation, intersection, simulation, and plotting. License: GPL (>= 2) URL: http://github.com/edzer/trajectories Additional_repositories: http://pebesma.staff.ifgi.de From e776780801907c5b7476e35d8ecfc1ed30e9d6b7 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sat, 14 Dec 2019 22:14:08 +0100 Subject: [PATCH 34/44] Description updated --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 69929ae..0176b7e 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -11,7 +11,7 @@ Imports: stats, utils, graphics, methods, lattice, sp (>= 1.1-0), spacetime (>= 1.0-0), zoo Suggests: rgdal, rgeos, OpenStreetMap, RCurl, rjson, adehabitatLT, xts, knitr, rgl, forecast, MASS, spatstat, taxidata -Description: Classes and methods for trajectory data, with support for nesting individual Track objects in track sets (Tracks) and track sets for different entities in collections of Tracks. Methods include selection, generalization, aggregation, intersection, simulation, and plotting. +Description: Classes and methods for trajectory data, with support for nesting individual Track objects in track sets (Tracks) and track sets for different entities in collections of Tracks. Methods include selection, generalization, aggregation, intersection, simulation, and plotting. It further includes exploratory methods such as Kernel smoothing, Voronoi tessellation, distance analysis, K- and pair correlation functions. License: GPL (>= 2) URL: http://github.com/edzer/trajectories Additional_repositories: http://pebesma.staff.ifgi.de From 8bea5117836174c1c4aa18bbc576299ebcf34997 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sat, 14 Dec 2019 22:14:36 +0100 Subject: [PATCH 35/44] help of as.list.Tracks updated --- man/as.list.Tracks.Rd | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/man/as.list.Tracks.Rd b/man/as.list.Tracks.Rd index 3b12c55..3d3b88d 100644 --- a/man/as.list.Tracks.Rd +++ b/man/as.list.Tracks.Rd @@ -1,23 +1,25 @@ \name{as.list.Tracks} \alias{as.list.Tracks} +\alias{as.list.TracksCollection} \title{ Tracks methods } \description{ -Convert an object of class \link[trajectories]{Tracks} to a list of tracks. +Convert an objects of classes \link[trajectories]{Tracks} and \link[trajectories]{TracksCollection} to a list of of objects of class \link[trajectories]{Track}. } \usage{ -\method{as.list}{Tracks}(x,...) +\method{as.list}{Tracks}(tr,...) +\method{as.list}{TracksCollection}(tc,...) } \arguments{ -\item{x}{an object of class "Tracks".} -\item{...}{arguments passed on the \link[base]{as.list} fucntion.} +\item{tr,tc}{objects of classes \link[trajectories]{Tracks} and \link[trajectories]{TracksCollection}} +\item{...}{optional. Additional arguments passed on the \link[base]{as.list} fucntion.} } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } @@ -26,6 +28,8 @@ Mohammad Mehdi Moradi } \examples{ -x <- rTracks() -as.list(x) +tr <- rTracks(m=2,n=10) +as.list(tr) +tc <- rTracksCollection(p=2,m=2,n=10) +as.list(tc) } From 1d37fe7d46abb74757cd9e3cc837e52e8089a9dd Mon Sep 17 00:00:00 2001 From: Moradii Date: Sat, 14 Dec 2019 22:14:55 +0100 Subject: [PATCH 36/44] as.list updated --- R/Trackstat.R | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/R/Trackstat.R b/R/Trackstat.R index 883baf3..0ec46f0 100644 --- a/R/Trackstat.R +++ b/R/Trackstat.R @@ -1,12 +1,12 @@ -as.list.Tracks <- function(x,...){ - stopifnot(class(x)=="Tracks") - return(as.list(x@tracks,...)) +as.list.Tracks <- function(tr,...){ + stopifnot(class(tr)=="Tracks") + return(as.list(tr@tracks,...)) } -as.list.TracksCollection <- function(x,...){ - stopifnot(class(x)=="TracksCollection") - out <- lapply(X=1:length(x@tracksCollection), function(i){ - as.list.Tracks(x@tracksCollection[[i]],...) +as.list.TracksCollection <- function(tc,...){ + stopifnot(class(tc)=="TracksCollection") + out <- lapply(X=1:length(tc@tracksCollection), function(i){ + as.list.Tracks(tc@tracksCollection[[i]],...) }) return(unlist(out, recursive=FALSE)) } From 2784f57d3ef3aafd3bf297e42da27167c841782d Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 15 Dec 2019 18:02:19 +0100 Subject: [PATCH 37/44] all documentation updated --- man/A3.Rd | 3 +- man/Kinhom.Track.Rd | 28 ++++++-- man/Track-Method.Rd | 32 ++++++---- man/Track-class.Rd | 109 ++++++++++++++++++++------------ man/TrackStats.Rd | 6 +- man/approxTrack.Rd | 2 +- man/as.Track.Rd | 4 +- man/as.Track.arrow.Rd | 6 +- man/as.Track.ppp.Rd | 10 +-- man/as.list.Tracks.Rd | 5 +- man/as.list.TracksCollection.Rd | 30 --------- man/auto.arima.Track.Rd | 10 +-- man/avedistTrack.Rd | 2 +- man/avemove.Rd | 4 +- man/chimaps.Rd | 4 +- man/compare.Rd | 7 +- man/cut.Rd | 20 +++--- man/density.list.Rd | 45 ++++++++++--- man/difftrack-class.Rd | 57 ----------------- man/dists.Rd | 21 +++--- man/downsample.Rd | 21 ++++-- man/frechetDist.Rd | 15 +++-- man/generalize.Rd | 40 ++++++++---- man/idw.Track.Rd | 28 ++++++-- man/pcfinhom.Track.Rd | 29 ++++++--- man/plot.KTrack.Rd | 8 +-- man/plot.arwlen.Rd | 4 +- man/plot.distrack.Rd | 7 +- man/plot.gTrack.Rd | 19 +++--- man/print.ArimaTrack.Rd | 6 +- man/print.KTrack.Rd | 6 +- man/print.Track.Rd | 14 ++-- man/print.Tracks.Rd | 19 ------ man/print.TracksCollection.Rd | 17 ----- man/print.Trrow.Rd | 8 +-- man/print.arwlen.Rd | 4 +- man/print.distrack.Rd | 17 +---- man/print.gTrack.Rd | 6 +- man/print.ppplist.Rd | 14 ++-- man/range.Track.Rd | 2 +- man/reTrack.Rd | 4 +- man/rtrack.Rd | 105 ++++++++++++++++++++---------- man/stbox.Rd | 28 +++++--- man/stcube.Rd | 36 ++++++++--- man/storms.Rd | 5 -- man/tsqTracks.Rd | 32 ++++------ man/unique.Track.Rd | 17 +++-- 47 files changed, 485 insertions(+), 431 deletions(-) delete mode 100644 man/as.list.TracksCollection.Rd delete mode 100644 man/difftrack-class.Rd delete mode 100644 man/print.Tracks.Rd delete mode 100644 man/print.TracksCollection.Rd diff --git a/man/A3.Rd b/man/A3.Rd index 41c69b1..05b3d69 100644 --- a/man/A3.Rd +++ b/man/A3.Rd @@ -7,8 +7,7 @@ data(A3) } \keyword{datasets} \examples{ -library(spacetime) data(A3) dim(A3) -# see demo(A3) to see how A3 was fetched, and created from the web service +plot(A3) } diff --git a/man/Kinhom.Track.Rd b/man/Kinhom.Track.Rd index 7ae2f69..8bc6015 100644 --- a/man/Kinhom.Track.Rd +++ b/man/Kinhom.Track.Rd @@ -1,5 +1,8 @@ \name{Kinhom.Track} \alias{Kinhom.Track} +\alias{Kinhom.Tracks} +\alias{Kinhom.TracksCollection} + \title{ Inhomogeneous K-function for a trajectory pattern } @@ -14,12 +17,23 @@ Kinhom.Track(X,timestamp, } \arguments{ -\item{X}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} -\item{timestamp}{based on secs,mins,... .} -\item{correction}{the type of correction to be used when computing K-function.} -\item{q}{(optional) a numeric value between 0 and 1. quantile to be applied to calculate the variability area.} -\item{sigma}{method to be considered for bandwidth selection in computing intensity function.} -\item{...}{arguments passed to the \link[spatstat]{Kinhom}.} +\item{X}{ +an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects. +} +\item{timestamp}{ +based on secs,mins,... . +} +\item{correction}{ +the type of correction to be used when computing K-function. +} +\item{q}{optional. a numeric value between 0 and 1. quantile to be applied to calculate the variability area. +} +\item{sigma}{ +method to be considered for bandwidth selection in computing intensity function. +} +\item{...}{ +arguments passed to the \link[spatstat]{Kinhom}. +} } \details{ @@ -37,7 +51,7 @@ an object of class KTrack. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } \seealso{ diff --git a/man/Track-Method.Rd b/man/Track-Method.Rd index 4a4b98c..072328e 100644 --- a/man/Track-Method.Rd +++ b/man/Track-Method.Rd @@ -1,5 +1,4 @@ \name{Track-Method} -\docType{Method} \alias{Track-Method} \alias{[,Track-method} \alias{[,Tracks-method} @@ -36,7 +35,7 @@ \alias{tracksPanel} \title{ -Methods for classes \code{Track}, \code{Tracks} and \code{TracksCollection} +Methods for classes \link[trajectories]{Track}, \link[trajectories]{Tracks} or \link[trajectories]{TracksCollection}. } \description{ Methods for classes \link[trajectories]{Track}, \link[trajectories]{Tracks} and \link[trajectories]{TracksCollection} @@ -72,15 +71,23 @@ Methods for classes \link[trajectories]{Track}, \link[trajectories]{Tracks} and } \arguments{ - \item{X}{an object of class -\link[trajectories]{Track}, \link[trajectories]{Tracks} or \link[trajectories]{TracksCollection}} -\item{i}{selection of spatial entities} -\item{...}{selection of attribute(s)} -\item{drop}{logical} - +\item{X}{ +an object of class +\link[trajectories]{Track}, \link[trajectories]{Tracks} or \link[trajectories]{TracksCollection}. +} +\item{i}{ +selection of spatial entities. +} +\item{...}{ +selection of attribute(s). } +\item{drop}{ +logical. +} +} + \details{ -Methods. +methods for classes \link[trajectories]{Track}, \link[trajectories]{Tracks} or \link[trajectories]{TracksCollection}. see examples below. } \value{ @@ -88,7 +95,7 @@ Methods. \author{ Edzer Pebesma, \email{edzer.pebesma@uni-muenster.de} -Mehdi Moradi, \email{m2.moradi@yahoo.com} +Mohammad Mehdi Moradi, \email{m2.moradi@yahoo.com} } @@ -103,13 +110,10 @@ as(x,"data.frame") as(x,"Line") as(x,"Lines") as(x,"SpatialLines") -plot(.Last.value) as(x,"xts") as(x,"STIDF") as(x,"Spatial") -plot(.Last.value) as(x,"SpatialPointsDataFrame") -plot(.Last.value) coordinates(x) proj4string(x) plot(x) @@ -134,7 +138,7 @@ y <- as(x,"STIDF") proj4string(y) <- CRS("+proj=longlat") # transform to UTM 50N x.utm <- spTransform(y, CRS("+proj=utm +zone=50 +ellps=WGS84 +datum=WGS84 -+units=m +no_defs ")) + +units=m +no_defs ")) x.utm <- Track(x.utm) x.Tr <- TracksCollection(list(Tracks(list(x)))) diff --git a/man/Track-class.Rd b/man/Track-class.Rd index bd08868..0927360 100644 --- a/man/Track-class.Rd +++ b/man/Track-class.Rd @@ -12,16 +12,16 @@ \alias{coerce,TracksCollection,data.frame-method} \title{ -Classes \code{Track}, \code{Tracks} and \code{TracksCollection} +Classes Track, Tracks and TracksCollection } \description{ Classes for representing sets of trajectory data, -with attributes, for different IDs (persons, objects, etc) +with attributes, for different IDs (persons, objects, etc). } \section{Objects from the Class}{ -Objects of class \code{Track} extend \link{STIDF-class} +objects of class \code{Track} extend \link{STIDF-class} and contain single trips or tracks, objects of class \code{Tracks} contain multiple \code{Track} objects for a single ID (person, object or tracking device), objects of class @@ -30,63 +30,88 @@ different IDs. } \section{Slots of class "Track"}{ - \describe{ - \item{\code{sp}:}{spatial locations of the track points, with length n} - \item{\code{time}:}{time stamps of the track points} - \item{\code{endTime}:}{end time stamps of the track points} - \item{\code{data}:}{\code{data.frame} with n rows, containing - attributes of the track points} - \item{\code{connections}:}{\code{data.frame}, with n-1 rows, containing - attributes between the track points such as distance and speed } - } +\describe{ +\item{\code{sp}:}{ +spatial locations of the track points, with length n. +} +\item{\code{time}:}{ +time stamps of the track points. +} +\item{\code{endTime}:}{ +end time stamps of the track points. +} +\item{\code{data}:}{ +\code{data.frame} with n rows, containing attributes of the track points. +} +\item{\code{connections}:}{ +\code{data.frame}, with n-1 rows, containing attributes between the track points such as distance and speed. +} +} } \section{Slots of class "Tracks"}{ - \describe{ - \item{\code{tracks}:}{\code{list} with \code{Track} objects, of length m} - \item{\code{tracksData}:}{\code{data.frame} with m rows, containing - summary data for each \code{Track} object} - } +\describe{ +\item{\code{tracks}:}{ +\code{list} with \code{Track} objects, of length m. +} +\item{\code{tracksData}:}{ +\code{data.frame} with m rows, containing summary data for each \code{Track} object. +} +} } \section{Slots of class "TracksCollection"}{ - \describe{ - \item{\code{tracksCollection}:}{\code{list} \code{Tracks} objects, of - length p} - \item{\code{tracksCollectionData}:}{\code{data.frame} with p rows, - containing summary data for each \code{Tracks} object} - } +\describe{ +\item{\code{tracksCollection}:}{ +\code{list} \code{Tracks} objects, of length p. +} +\item{\code{tracksCollectionData}:}{ +\code{data.frame} with p rows, containing summary data for each \code{Tracks} object. +} +} } \usage{ - Track(track, df = fn(track), fn = TrackStats) - Tracks(tracks, tracksData = data.frame(row.names=names(tracks)), - fn = TrackSummary) - TracksCollection(tracksCollection, tracksCollectionData, - fn = TracksSummary) - \S4method{coerce}{Track,data.frame}(from, to) - \S4method{coerce}{Tracks,data.frame}(from, to) - \S4method{coerce}{TracksCollection,data.frame}(from, to) +Track(track, df = fn(track), fn = TrackStats) +Tracks(tracks, tracksData = data.frame(row.names=names(tracks)), fn = TrackSummary) +TracksCollection(tracksCollection, tracksCollectionData, +fn = TracksSummary) +\S4method{coerce}{Track,data.frame}(from, to) +\S4method{coerce}{Tracks,data.frame}(from, to) +\S4method{coerce}{TracksCollection,data.frame}(from, to) % \S4method{over}{Tracks,Spatial}(x, y, returnList = FALSE, fn = NULL, ...) % \S4method{over}{TracksCollection,Spatial}(x, y, returnList = FALSE, } \arguments{ -\item{track}{object of class \link{STIDF-class}, representing a single trip} -\item{df}{optional \code{data.frame} with information between track points} -\item{fn}{function} -\item{tracks}{named list with \code{Track} objects} -\item{tracksData}{\code{data.frame} with summary data for each \code{Track}} -\item{tracksCollection}{list, with \code{Tracks} objects} -\item{tracksCollectionData}{data.frame, with summary data on - \code{tracksCollection}} -\item{from}{from} -\item{to}{target class} +\item{track}{ +object of class \link{STIDF-class}, representing a single trip. +} +\item{df}{ +optional \code{data.frame} with information between track points. +} +\item{fn}{ +function. +} +\item{tracks}{ +named list with \code{Track} objects. +} +\item{tracksData}{ +\code{data.frame} with summary data for each \code{Track}. +} +\item{tracksCollection}{ +list, with \code{Tracks} objects. +} +\item{tracksCollectionData}{ +data.frame, with summary data on \code{tracksCollection}. +} +\item{from}{from.} +\item{to}{target class.} } \value{ -Functions \code{Track}, \code{Tracks} and +functions \code{Track}, \code{Tracks} and \code{TracksCollection} are constructor functions that take the slots as arguments, check object validity, and compute summary statistics on the track and tracks sets. diff --git a/man/TrackStats.Rd b/man/TrackStats.Rd index 6e1fee9..c8409d3 100644 --- a/man/TrackStats.Rd +++ b/man/TrackStats.Rd @@ -4,7 +4,7 @@ \alias{TracksSummary} \title{ -Statistics for objects of class Track, Tracks and TracksCollection +Statistics for objects of classes \link[trajectories]{Track}, \link[trajectories]{Tracks} or \link[trajectories]{TracksCollection}. } \description{ Some statistics for objects of class Track, Tracks and TracksCollection.} @@ -14,7 +14,7 @@ TrackSummary(X) TracksSummary(X) } \arguments{ - \item{X}{an object of class \link[trajectories]{Track} or a list of \link[trajectories]{Tracks} objects +\item{X}{an object of class \link[trajectories]{Track} or a list of \link[trajectories]{Tracks} objects. } } \details{ @@ -27,7 +27,7 @@ TracksSummary(X) } \value{ -a data frame +a data frame. } \author{ Edzer Pebesma, \email{edzer.pebesma@uni-muenster.de} diff --git a/man/approxTrack.Rd b/man/approxTrack.Rd index aa38811..a45d026 100644 --- a/man/approxTrack.Rd +++ b/man/approxTrack.Rd @@ -7,7 +7,7 @@ Interpolation for trajectories } \description{ -Interpolating objects of classes \code{Track}, \code{Tracks} and \code{TracksCollection}. +Interpolating objects of classes \link[trajectories]{Track}, \link[trajectories]{Tracks} or \link[trajectories]{TracksCollection}. } \usage{ approxTrack(track, when, ..., n = 50, by, FUN = stats::approx, warn.if.outside = TRUE) diff --git a/man/as.Track.Rd b/man/as.Track.Rd index 6fa7bc1..06d25f9 100644 --- a/man/as.Track.Rd +++ b/man/as.Track.Rd @@ -4,7 +4,7 @@ Converts data to an object of class Track } \description{ -Function \link[trajectories]{as.Track} accepts x,y coordinates and thier corresponding time/date, and converts them to an object of class \link[trajectories]{Track}. It can also accepts covariates for the corresponding locations. +This function accepts x,y coordinates and thier corresponding time/date, and converts them to an object of class \link[trajectories]{Track}. It can also accepts covariates for the corresponding locations. } \usage{ as.Track(x,y,t,covariate) @@ -28,7 +28,7 @@ An object of class \link[trajectories]{Track}. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } \seealso{ diff --git a/man/as.Track.arrow.Rd b/man/as.Track.arrow.Rd index 1f9f8d8..e440e6b 100644 --- a/man/as.Track.arrow.Rd +++ b/man/as.Track.arrow.Rd @@ -15,11 +15,11 @@ as.Track.arrow(X,timestamp,epsilon=0) \arguments{ \item{X}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} \item{timestamp}{based on secs, mins,...} -\item{epsilon}{(optional) movements with a length less than epsilon are not considered in the calculation.} +\item{epsilon}{optional. movements with a length less than epsilon are not considered in the calculation.} } \details{ This function converts an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects to a list of marked point patterns. -The function first converts X to a list of spatial point patterns based on a given timestamp and using the function \link[trajectories]{as.Track.ppp}. Then each two consecutive (according to their corresponding time) point patterns make a segment pattern of class \link[spatstat]{psp}. Finally, each segment pattern will be converted to a marked point pattern according to which points represent the midpoints of segments and marks are the length of segments. The segment point patterns are kept as attributes. +The function first converts X to a list of spatial point patterns based on a given timestamp and using the function \link[trajectories]{as.Track.ppp}. Then each two consecutive (according to their corresponding time) point patterns make a segment pattern of class \link[spatstat]{psp}. Finally, each segment pattern will be converted to a marked point pattern according to which points represent the midpoints of segments and marks are the length of segments. The segment patterns are kept as attributes. Dealing with real data, sometimes moving objects such as taxies and pedestrians are not moving while being recorded their location. In order to deal with such a situation, argument epsilon is implemented in \link[trajectories]{as.Track.arrow} to ignore the movements with a length less than epsilon. epsilon=0 does not ignore any movement. @@ -29,7 +29,7 @@ Note that, tracks in X should overlap in time. a list of marked point patterns. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } \seealso{ diff --git a/man/as.Track.ppp.Rd b/man/as.Track.ppp.Rd index 109dc14..82e68cc 100644 --- a/man/as.Track.ppp.Rd +++ b/man/as.Track.ppp.Rd @@ -5,7 +5,7 @@ Convert a trajectory pattern to a list of spatial point patterns } \description{ -This function convert objects of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects to a list of spatial point patterns of class \link[spatstat]{ppp}. +This function convert objects of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects to a list of spatial point patterns. } \usage{ @@ -14,21 +14,21 @@ as.Track.ppp(X,timestamp) \arguments{ \item{X}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} -\item{timestamp}{based on secs, mins,...} +\item{timestamp}{based on secs, mins,... .} } \details{ -The function \link[trajectories]{as.Track.ppp} converts objects of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects to a list of spatial point patterns of class \link[spatstat]{ppp} according to a given timestamp. Each obtained spatial point pattern represents the locatoin of all "moving objects" (e.g., taxis) in a fixed time. +The function \link[trajectories]{as.Track.ppp} converts objects of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects to a list of spatial point patterns of class \link[spatstat]{ppp} according to a given timestamp. Each obtained spatial point pattern represents the location of all moving objects in a fixed time. Since usually the location of different tracks are not recorded according to a single time sequence, this function first interpolates all tracks according to a regular time sequence and then convert them to a list of spatial point patterns. Note that, if we do not interpolate the location of all tracks according to a regular time sequence, the final point patterns can not contain the location of all objects. Note that, tracks in X should overlap in time. } \value{ -A list of spatial point patterns as objects of class \link[spatstat]{ppp}. +A list of spatial point patterns of class \link[spatstat]{ppp}. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } \seealso{ diff --git a/man/as.list.Tracks.Rd b/man/as.list.Tracks.Rd index 3d3b88d..8c4af30 100644 --- a/man/as.list.Tracks.Rd +++ b/man/as.list.Tracks.Rd @@ -14,8 +14,9 @@ Convert an objects of classes \link[trajectories]{Tracks} and \link[trajectories } \arguments{ -\item{tr,tc}{objects of classes \link[trajectories]{Tracks} and \link[trajectories]{TracksCollection}} -\item{...}{optional. Additional arguments passed on the \link[base]{as.list} fucntion.} +\item{tr,tc}{objects of classes \link[trajectories]{Tracks} and \link[trajectories]{TracksCollection}. +} +\item{...}{optional. additional arguments passed on the \link[base]{as.list} fucntion.} } \author{ diff --git a/man/as.list.TracksCollection.Rd b/man/as.list.TracksCollection.Rd deleted file mode 100644 index fdbdb0e..0000000 --- a/man/as.list.TracksCollection.Rd +++ /dev/null @@ -1,30 +0,0 @@ -\name{as.list.TracksCollection} -\alias{as.list.TracksCollection} -\title{ -TracksCollection methods -} -\description{ -Convert an object of class \link[trajectories]{TracksCollection} to a list of tracks. -} - -\usage{ -\method{as.list}{TracksCollection}(x,...) -} - -\arguments{ -\item{x}{an object of class \link[trajectories]{TracksCollection}} -\item{...}{arguments passed on the \link[base]{as.list} fucntion.} -} - -\author{ -Mohammad Mehdi Moradi -} - -\seealso{ -\link[trajectories]{rTrack}, \link[trajectories]{rTracks}, \link[trajectories]{rTracksCollection}, \link[base]{as.list} -} - -\examples{ -x <- rTracksCollection() -as.list(x) -} diff --git a/man/auto.arima.Track.Rd b/man/auto.arima.Track.Rd index d9f1d96..47e69c8 100644 --- a/man/auto.arima.Track.Rd +++ b/man/auto.arima.Track.Rd @@ -8,16 +8,16 @@ Fit arima models to objects of class \link[trajectories]{Track}. } \usage{ -auto.arima.Track(X, ...) +auto.arima.Track(track, ...) } \arguments{ - \item{X}{an object of class \link[trajectories]{Track}.} - \item{...}{arguments passed to the \link[forecast]{auto.arima} function.} + \item{track}{an object of class \link[trajectories]{Track}.} + \item{...}{arguments passed to the \link[forecast]{auto.arima}.} } \details{ -This function considers objects of class \link[trajectories]{Track} as time series and fits arima models to their x,y locations separately. +This function considers objects of class \link[trajectories]{Track} as time series and returns arima models to their x,y locations separately. } \value{ @@ -25,7 +25,7 @@ an object of class "ArimaTrack". Fitted arima models to coordinates x and y are } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } \seealso{ diff --git a/man/avedistTrack.Rd b/man/avedistTrack.Rd index b042df9..841fc79 100644 --- a/man/avedistTrack.Rd +++ b/man/avedistTrack.Rd @@ -31,7 +31,7 @@ a numeric vector represents the average pairwise distances that can be plotted w } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } \seealso{ diff --git a/man/avemove.Rd b/man/avemove.Rd index 627fc48..a4d305f 100644 --- a/man/avemove.Rd +++ b/man/avemove.Rd @@ -15,7 +15,7 @@ avemove(X,timestamp,epsilon=0) \arguments{ \item{X}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} \item{timestamp}{a timestamp to calculate the length of movements accordingly.} -\item{epsilon}{(optional) movements with a length less than epsilon are not considered in the calculation.} +\item{epsilon}{optional. movements with a length less than epsilon are not considered in the calculation.} } \details{ @@ -34,7 +34,7 @@ Note that, tracks in X should overlap in time. a numeric vector represents the average length of movements that can be plotted with respect to time. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } \seealso{ diff --git a/man/chimaps.Rd b/man/chimaps.Rd index cd3bc8d..9626373 100644 --- a/man/chimaps.Rd +++ b/man/chimaps.Rd @@ -13,7 +13,7 @@ chimaps(X,timestamp,rank=1,...) \item{X}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} \item{timestamp}{based on secs, mins, ... .} \item{rank}{a number between one and the length of corresponding time sequance which is created based on a given timestamp.} -\item{...}{arguments passed to the \link[trajectories]{density.list}.} +\item{...}{arguments passed to \link[trajectories]{density.list}.} } \details{ @@ -33,7 +33,7 @@ an image of class \link[spatstat]{im}. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } \seealso{ diff --git a/man/compare.Rd b/man/compare.Rd index d36fd73..1e9afbe 100644 --- a/man/compare.Rd +++ b/man/compare.Rd @@ -1,11 +1,10 @@ \name{compare} - \docType{methods} \alias{compare} \alias{compare,Track-method} -\title{Compares objects of class \code{Track}} +\title{Compares objects of class Track} \description{ Calculates distances between two tracks for the overlapping time interval. @@ -16,8 +15,8 @@ Calculates distances between two tracks for the overlapping time interval. } \arguments{ -\item{tr1}{An object of class \code{Track}.} -\item{tr2}{An object of class \code{Track}.} +\item{tr1}{an object of class \code{Track}.} +\item{tr2}{an object of class \code{Track}.} } \value{A difftrack object. Includes both tracks extended with additional points diff --git a/man/cut.Rd b/man/cut.Rd index 4c17ca6..5b6bd80 100644 --- a/man/cut.Rd +++ b/man/cut.Rd @@ -4,21 +4,21 @@ \alias{cut.Tracks} \alias{cut.TracksCollection} -\title{ obtain ranges of space and time coordinates } +\title{obtain ranges of space and time coordinates} \description{ obtain ranges of space and time coordinates } \usage{ -\method{cut}{Track}(x, breaks, ..., include.lowest = TRUE, touch = TRUE) -\method{cut}{Tracks}(x, breaks, ...) -\method{cut}{TracksCollection}(x, breaks, ...) +\method{cut}{Track}(track, breaks, ..., include.lowest = TRUE, touch = TRUE) +\method{cut}{Tracks}(tr, breaks, ...) +\method{cut}{TracksCollection}(tc, breaks, ...) } \arguments{ - \item{x}{ object of class \code{Track}, \code{Tracks} or \code{TracksCollection}} - \item{breaks}{ define the breaks; see \link[base]{cut}} - \item{...}{ passed down to Tracks and Track methods, then to \link[base]{cut}} - \item{include.lowest}{ see \link[base]{cut}} - \item{touch}{ logical; if FALSE, Track objects will be formed from + \item{track, tr, tc}{object of class \code{Track}, \code{Tracks} or \code{TracksCollection}.} + \item{breaks}{define the breaks; see \link[base]{cut}.} + \item{...}{passed down to Tracks and Track methods, then to \link[base]{cut}.} + \item{include.lowest}{see \link[base]{cut}.} + \item{touch}{logical; if FALSE, Track objects will be formed from unique sets of points, meaning that gaps between two consecutive - Track objects will arise; if FALSE, the first point from each + Track objects will arise; if TRUE, the first point from each next track is copied, meaning that sets of Track are seamless.} } \value{ diff --git a/man/density.list.Rd b/man/density.list.Rd index 1adc36c..5966825 100644 --- a/man/density.list.Rd +++ b/man/density.list.Rd @@ -1,7 +1,11 @@ \name{density.list} \alias{density.list} +\alias{density.Track} +\alias{density.Tracks} +\alias{density.TrackCollection} + \title{ -Kernel estimate of intensity of a trajectory pattern +Density estimate of a trajectory pattern } \description{ @@ -9,17 +13,27 @@ Estimating the intensity of an object of classes \link[trajectories]{Tracks}, \l } \usage{ -\method{density}{list}(x, timestamp,Fun=mean,...) +\method{density}{list}(x, timestamp, method=c("kernel","Voronoi"),Fun=mean,...) +\method{density}{Track}(x, timestamp, method=c("kernel","Voronoi"),Fun=mean,...) +\method{density}{Tracks}(x, timestamp, method=c("kernel","Voronoi"),Fun=mean,...) +\method{density}{TracksCollection}(x, timestamp, method=c("kernel","Voronoi"),Fun=mean,...) + } \arguments{ -\item{x}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} -\item{timestamp}{based on secs, mins, ... .} -\item{Fun}{a function to be applied to the values of each pixel, see details.} -\item{...}{arguments passed to the \link[spatstat]{density.ppp}.} +\item{x}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects. +} +\item{timestamp}{based on secs, mins, ... . +} +\item{method}{method to be selected between kernel smoothing and Voronoi tessellation. +} +\item{Fun}{a function to be applied to the values of each pixel, see details. +} +\item{...}{arguments passed to the \link[spatstat]{density.ppp} or \link[spatstat]{densityVoronoi}. +} } \details{ -This function converts a trajectory pattern to a list of spatial point patterns and then it calclulates the intensity of each obtained point pattern using \link[spatstat]{density.ppp}. This results in a list of images in which function FUN (default mean) will then be applied to the corresponding values of each pixel. Bandwidth selection methods such as \link[spatstat]{bw.diggle}, \link[spatstat]{bw.scott} and \link[spatstat]{bw.ppl} can be considered in \link[trajectories]{density.list}. +This function converts a trajectory pattern to a list of spatial point patterns and then it calclulates the intensity of each obtained point pattern using \link[spatstat]{density.ppp} or \link[spatstat]{densityVoronoi}. This results in a list of images in which function FUN (default mean) will then be applied to the corresponding values of each pixel. Bandwidth selection methods such as \link[spatstat]{bw.diggle}, \link[spatstat]{bw.scott} and \link[spatstat]{bw.ppl} can be considered in \link[trajectories]{density.list}. Note that, tracks in X should overlap in time. } @@ -29,7 +43,7 @@ an image of class \link[spatstat]{im}. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } \seealso{ @@ -37,10 +51,23 @@ Mohammad Mehdi Moradi } \examples{ +library(trajectories) X <- list() for(i in 1:10){ m <- matrix(c(0,10,0,10),nrow=2,byrow = TRUE) X[[i]] <- rTrack(bbox = m,transform = TRUE) } -density(X, timestamp = "180 secs") +d1 <- density(X, timestamp = "180 secs") +plot(d1) + +d2 <- density(X, timestamp = "180 secs",method = "Voronoi") +plot(d2) + +library(raster) +library(sp) +Ims <- attr(d1, "Tracksim") +Ims_raster <- lapply(Ims,raster) +Ims_raster_brick <- brick(Ims_raster) +spplot(Ims_raster_brick[[1:12]]) + } diff --git a/man/difftrack-class.Rd b/man/difftrack-class.Rd deleted file mode 100644 index 56705ce..0000000 --- a/man/difftrack-class.Rd +++ /dev/null @@ -1,57 +0,0 @@ -\name{difftrack-class} -\Rdversion{1.1} -\docType{class} -\alias{difftrack-class} -\alias{difftrack} -\alias{plot,difftrack,ANY-method} - -\title{Class "difftrack"} -\description{ -Class that represents differences between two \link{Track} objects. -} - -\section{Objects from the Class}{ -Objects can be created by calls of the form \code{new("difftrack", ...)}. -Objects of class \code{difftrack} contain 2 objects of class \link{Track} -extended with points for timestamps of the other track and 2 -\link{SpatialLinesDataFrame} conataining the the lines and distances between tracks. -} -\section{Slots}{ - \describe{ - \item{\code{track1}:}{Extended track1} - \item{\code{track2}:}{Extended track2} - \item{\code{conns1}:}{Lines between the original track1 and the new points on track2} - \item{\code{conns2}:}{Lines between the original track2 and the new points on track1} - } -} -\section{Methods}{ - \describe{ - \item{plot}{\code{signature(x = "difftrack", y = "missing")}: plot a difftrack} - } -} - -\author{ -Nikolai Gorte -} - - -\examples{ -showClass("difftrack") -## example tracks -library(sp) -library(xts) -data(A3) -track2 <- A3 -index(track2@time) <- index(track2@time) + 32 -track2@sp@coords <- track2@sp@coords + 0.003 - -## compare and plot -difftrack <- compare(A3, track2) -plot(difftrack) - -## space-time cube of the difftrack -\dontrun{ - stcube(difftrack) -} -} -\keyword{classes} diff --git a/man/dists.Rd b/man/dists.Rd index 0455af9..5240971 100644 --- a/man/dists.Rd +++ b/man/dists.Rd @@ -5,10 +5,10 @@ \alias{dists} \alias{dists,Tracks,Tracks-method} -\title{Calculate distances between two \code{Tracks} objects} +\title{Calculate matrix of distances} \description{ -Calculates a distance matrix with distances for each pair of tracks. +Calculates distances between two \link[trajectories]{Tracks} objects. } \usage{% @@ -16,21 +16,26 @@ Calculates a distance matrix with distances for each pair of tracks. } \arguments{ -\item{tr1}{An object of class \code{Tracks}.} -\item{tr2}{An object of class \code{Tracks}.} -\item{f}{A function to calculate distances. Default is \code{mean}.} -\item{...}{Additional parameters passed to \code{f}.} +\item{tr1}{an object of class \link[trajectories]{Tracks}.} +\item{tr2}{an object of class \link[trajectories]{Tracks}.} +\item{f}{a function to calculate distances. Default is \code{mean}.} +\item{...}{additional parameters passed to \code{f}.} } \value{A matrix with distances between each pair of tracks or \code{NA} if they don't overlap in time.} \details{ +This function makes use of fucntion \link[trajectories]{compare}, and \code{f} can be any function applicable to a numerical vector or \link{frechetDist}. } +\seealso{ +\link[trajectories]{compare}, \link[trajectories]{frechetDist}, \link[trajectories]{Tracks} +} + + \examples{ -## example tracks library(sp) library(xts) data(A3) @@ -43,12 +48,10 @@ tracks1 <- Tracks(list(A3, track2)) tracks2 <- Tracks(list(track2, A3)) ## calculate distances -\dontrun{ dists(tracks1, tracks2) dists(tracks1, tracks2, sum) dists(tracks1, tracks2, frechetDist) } -} \keyword{dists} diff --git a/man/downsample.Rd b/man/downsample.Rd index 9471d06..941abd4 100644 --- a/man/downsample.Rd +++ b/man/downsample.Rd @@ -1,13 +1,11 @@ \name{downsample} - \docType{methods} - \alias{downsample} \alias{downsample,Track-method} -\title{Downsample a \code{Track}} +\title{Downsample a Track} \description{ -Downsamples a \code{Track} to the size (amount of points) of another \code{Track}. +Downsamples a \link[trajectories]{Track} to the size (amount of points) of another Track. } \usage{% @@ -15,15 +13,24 @@ Downsamples a \code{Track} to the size (amount of points) of another \code{Track } \arguments{ -\item{track1}{\code{Track} that will be downsampled.} -\item{track2}{Reference \code{Track}.} +\item{track1}{Track that will be downsampled.} +\item{track2}{Reference Track.} } -\value{A \code{Track} object. The downsampled track1.} +\value{A Track object. The downsampled track1.} \author{ Nikolai Gorte } +\examples{ +x <- rTrack(15) +dim(x) +y <- rTrack(20) +dim(y) +z <- downsample(y,x) +dim(z) +} + \keyword{downsample} diff --git a/man/frechetDist.Rd b/man/frechetDist.Rd index 37249a7..2167a62 100644 --- a/man/frechetDist.Rd +++ b/man/frechetDist.Rd @@ -4,7 +4,7 @@ \alias{frechetDist,Track-method} \title{Frechet distance} \description{ -Compute the discrete Frechet distance between two \code{Track} objects. +Compute the discrete Frechet distance between two \link[trajectories]{Track} objects. } \usage{% @@ -12,22 +12,25 @@ Compute the discrete Frechet distance between two \code{Track} objects. } \arguments{ -\item{track1}{An object of class \code{Track}.} -\item{track2}{An object of class \code{Track}.} +\item{track1}{an object of class Track.} +\item{track2}{an object of class Track.} } \value{A numeric value representing the Frechet distance.} -\references{ http://en.wikipedia.org/wiki/Fr\'echet_distance } +\references{http://en.wikipedia.org/wiki/Fr\'echet_distance} \author{ Nikolai Gorte + +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} + } \examples{ -x <- rTrack() -y <- rTrack() +x <- rTrack(10) +y <- rTrack(10) frechetDist(x,y) } \keyword{methods} diff --git a/man/generalize.Rd b/man/generalize.Rd index e7c9ed6..159a71f 100644 --- a/man/generalize.Rd +++ b/man/generalize.Rd @@ -5,9 +5,9 @@ \alias{generalize,Tracks-method} \alias{generalize,TracksCollection-method} -\title{Generalize objects of class \code{Track}, \code{Tracks} and \code{TracksCollection}} +\title{Generalize trajectories} -\description{Generalize objects of class \code{Track}, \code{Tracks} and \code{TracksCollection}.} +\description{Generalize objects of class \link[trajectories]{Track}, \link[trajectories]{Tracks} or \link[trajectories]{TracksCollection}.} \usage{% \S4method{generalize}{Track}(t, FUN = mean, ..., timeInterval, distance, n, tol, toPoints) @@ -15,18 +15,30 @@ \S4method{generalize}{TracksCollection}(t, FUN = mean, ...)} \arguments{ -\item{t}{An object of class \code{Track}, \code{Tracks} or \code{TracksCollection}.} -\item{FUN}{The generalization method to be applied. Defaults to \code{mean} if none is passed.} -\item{timeInterval}{ (lower limit) time interval to split Track into segments } -\item{distance}{ (lower limit) distance to split Track into segments } -\item{n}{ number of points to form segments } -\item{tol}{ tolerance passed on to \link[rgeos]{gSimplify}, to generalize segments - using the Douglas-Peucker algorithm. } -\item{toPoints}{keep mid point rather than forming \link[sp]{SpatialLines} segments } -\item{...}{Additional arguments passed to FUN} -} - -\value{A generalized object of class \code{Track}, \code{Tracks} or \code{TracksCollection}.} +\item{t}{an object of class \link[trajectories]{Track}, \link[trajectories]{Tracks} or \link[trajectories]{TracksCollection}. +} +\item{FUN}{ +the generalization method to be applied. Defaults to mean if none is passed. +} +\item{timeInterval}{ +(lower limit) time interval to split Track into segments. +} +\item{distance}{ +(lower limit) distance to split Track into segments. +} +\item{n}{number of points to form segments. +} +\item{tol}{ +tolerance passed on to \link[rgeos]{gSimplify}, to generalize segments using the Douglas-Peucker algorithm. +} +\item{toPoints}{ +keep mid point rather than forming \link[sp]{SpatialLines} segments. +} +\item{...}{additional arguments passed to FUN. +} +} + +\value{A generalized object of class \link[trajectories]{Track}, \link[trajectories]{Tracks} or \link[trajectories]{TracksCollection}.} \details{ diff --git a/man/idw.Track.Rd b/man/idw.Track.Rd index 4b8692d..1f7ab67 100644 --- a/man/idw.Track.Rd +++ b/man/idw.Track.Rd @@ -1,5 +1,8 @@ \name{idw.Track} \alias{idw.Track} +\alias{idw.Tracks} +\alias{idw.TracksCollection} + \title{ Movement smoothing of a trajectory pattern } @@ -8,14 +11,27 @@ Movement smoothing of an object of classes \link[trajectories]{Tracks}, \link[tr } \usage{ \method{idw}{Track}(X,timestamp,epsilon=0,Fun=mean,...) +\method{idw}{Tracks}(X,timestamp,epsilon=0,Fun=mean,...) +\method{idw}{TrackCollection}(X,timestamp,epsilon=0,Fun=mean,...) + } \arguments{ - \item{X}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} -\item{timestamp}{based on secs,mins, ... .} -\item{epsilon}{(optional) movements with a length less than epsilon are not considered in the calculation.} -\item{Fun}{a function to be applied to the values of each pixel, see details} -\item{...}{arguments passed to \link[spatstat]{idw} function.} +\item{X}{ +an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects. +} +\item{timestamp}{ +based on secs,mins, ... . +} +\item{epsilon}{ +optional. movements with a length less than epsilon are not considered in the calculation. +} +\item{Fun}{ +a function to be applied to the values of each pixel, see details. +} +\item{...}{ +arguments passed to \link[spatstat]{idw} function. +} } \details{ Performs spatial smoothing to an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects. @@ -28,7 +44,7 @@ Note that, tracks in X should overlap in time. an image of class \link[spatstat]{im}. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } \seealso{ diff --git a/man/pcfinhom.Track.Rd b/man/pcfinhom.Track.Rd index 04684be..a893212 100644 --- a/man/pcfinhom.Track.Rd +++ b/man/pcfinhom.Track.Rd @@ -12,12 +12,24 @@ pcfinhom.Track(X,timestamp,correction = c("translate", "Ripley"),q=0, sigma=c("default","bw.diggle","bw.ppl","bw.scott"),...) } \arguments{ -\item{X}{an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} -\item{timestamp}{based on secs,mins,... .} -\item{correction}{the type of correction to be used when computing pair correlation function.} -\item{q}{(optional) a numeric value between 0 and 1. quantile to be applied to calculate the variability area.} -\item{sigma}{method to be considered for bandwidth selection in computing intensity function.} -\item{...}{arguments passed to the \link[spatstat]{pcfinhom}.} +\item{X}{ +an object of classes \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects. +} +\item{timestamp}{ +based on secs,mins,... . +} +\item{correction}{ +the type of correction to be used when computing pair correlation function. +} +\item{q}{ +optional. a numeric value between 0 and 1. quantile to be applied to calculate the variability area. +} +\item{sigma}{ +method to be considered for bandwidth selection in computing intensity function. +} +\item{...}{ +arguments passed to the \link[spatstat]{pcfinhom}. +} } \details{ The type of interaction (clustering, repulsion, randomness) between tracks in X might vary over time. The function \link[trajectories]{pcfinhom.Track} calculates the variability area of \link[spatstat]{pcfinhom} over time. The variability area is calculated based on the pair correlation functions of all obtained point patterns when converting a trajectory pattern to a list of point patterns. @@ -32,11 +44,12 @@ Note that, tracks in X should overlap in time. an object of class gTrack. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } \seealso{ -\link[trajectories]{rTrack}, \link[trajectories]{as.Track.ppp}, \link[spatstat]{pcfinhom}} +\link[trajectories]{rTrack}, \link[trajectories]{as.Track.ppp}, \link[spatstat]{pcfinhom} +} \examples{ X <- list() for(i in 1:100){ diff --git a/man/plot.KTrack.Rd b/man/plot.KTrack.Rd index 9ef2b7f..25e7b09 100644 --- a/man/plot.KTrack.Rd +++ b/man/plot.KTrack.Rd @@ -1,7 +1,7 @@ \name{plot.KTrack} \alias{plot.KTrack} \title{ -Methods for class KTrack +Plot Methods } \description{ plot the K-function for a trajectory pattern. @@ -12,12 +12,12 @@ plot the K-function for a trajectory pattern. \arguments{ \item{x}{an object of class KTrack.} - \item{type}{line type.} - \item{col}{line color.} + \item{type}{type.} + \item{col}{color.} \item{cex}{used for size of legend.} \item{line}{specifying a value for line overrides the default placement of labels, see \link[graphics]{title}.} \item{...}{arguments passed to plot.} } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } diff --git a/man/plot.arwlen.Rd b/man/plot.arwlen.Rd index 049df6a..f7da426 100644 --- a/man/plot.arwlen.Rd +++ b/man/plot.arwlen.Rd @@ -1,7 +1,7 @@ \name{plot.arwlen} \alias{plot.arwlen} \title{ -Methods for class arwlen +Plot Methods } \description{ Methods for class arwlen. @@ -17,7 +17,7 @@ Methods for class arwlen. a plot. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } \seealso{ \link[trajectories]{avemove} diff --git a/man/plot.distrack.Rd b/man/plot.distrack.Rd index 56f6952..9a99e26 100644 --- a/man/plot.distrack.Rd +++ b/man/plot.distrack.Rd @@ -1,7 +1,7 @@ \name{plot.distrack} \alias{plot.distrack} \title{ -Methods for class distrack +Plot Methods } \description{ The plot method for class distrack. @@ -15,5 +15,8 @@ The plot method for class distrack. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} +} +\seealso{ +\link[trajectories]{avedistTrack} } diff --git a/man/plot.gTrack.Rd b/man/plot.gTrack.Rd index 2a67da0..1bc3d2e 100644 --- a/man/plot.gTrack.Rd +++ b/man/plot.gTrack.Rd @@ -1,7 +1,7 @@ \name{plot.gTrack} \alias{plot.gTrack} \title{ -Methods for class gTrack. +Plot Methods } \description{ plot the pair correlation function for a trajectory pattern. @@ -10,12 +10,15 @@ plot the pair correlation function for a trajectory pattern. \method{plot}{gTrack}(x, type = "l", col = "grey70",cex=1,line=2.2, ...) } \arguments{ - \item{x}{ an object of class gTrack.} - \item{type}{line type.} - \item{col}{line color.} - \item{cex}{used for size of legend.} - \item{line}{specifying a value for line overrides the default placement of labels, see \link[graphics]{title}.} - \item{...}{arguments passed to plot.} +\item{x}{ +an object of class gTrack.} +\item{type}{type.} +\item{col}{color.} +\item{cex}{used for size of legend.} +\item{line}{specifying a value for line overrides the default placement of labels, see \link[graphics]{title}. +} +\item{...}{arguments passed to plot.} } \author{ -Mohammad Mehdi Moradi } +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} +} diff --git a/man/print.ArimaTrack.Rd b/man/print.ArimaTrack.Rd index 5b8845a..c4c8e66 100644 --- a/man/print.ArimaTrack.Rd +++ b/man/print.ArimaTrack.Rd @@ -1,7 +1,7 @@ \name{print.ArimaTrack} \alias{print.ArimaTrack} \title{ -Methods for class ArimaTrack +Print Methods } \description{ print method. @@ -11,8 +11,8 @@ print method. } \arguments{ - \item{x}{ an object of class ArimaTrack.} + \item{x}{an object of class ArimaTrack.} } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } \ No newline at end of file diff --git a/man/print.KTrack.Rd b/man/print.KTrack.Rd index f441562..a164407 100644 --- a/man/print.KTrack.Rd +++ b/man/print.KTrack.Rd @@ -1,10 +1,10 @@ \name{print.KTrack} \alias{print.KTrack} \title{ -Methods for class KTrack +Print Methods } \description{ -print method. +Print method for class KTrack. } \usage{ \method{print}{KTrack}(x) @@ -13,7 +13,7 @@ print method. \item{x}{ an object of class KTrack.} } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } diff --git a/man/print.Track.Rd b/man/print.Track.Rd index 48989b2..2e9a6f4 100644 --- a/man/print.Track.Rd +++ b/man/print.Track.Rd @@ -1,17 +1,23 @@ \name{print.Track} \alias{print.Track} +\alias{print.Tracks} +\alias{print.TracksCollection} + \title{ -Methods for class Track +Print Methods } \description{ -print method. +Print method for classes \link[trajectories]{Track}, \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection}. } \usage{ \method{print}{Track}(x) +\method{print}{Tracks}(x) +\method{print}{TracksCollection}(x) + } \arguments{ - \item{x}{ an object of class Track} + \item{x}{ an object of classes \link[trajectories]{Track}, \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection}} } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } diff --git a/man/print.Tracks.Rd b/man/print.Tracks.Rd deleted file mode 100644 index 4df2d56..0000000 --- a/man/print.Tracks.Rd +++ /dev/null @@ -1,19 +0,0 @@ -\name{print.Tracks} -\alias{print.Tracks} -\title{ -Methods for class Tracks -} -\description{ -print method. -} -\usage{ -\method{print}{Tracks}(X) -} -\arguments{ - \item{X}{an object of class Tracks.} -} -\author{ -Mohammad Mehdi Moradi -} - - diff --git a/man/print.TracksCollection.Rd b/man/print.TracksCollection.Rd deleted file mode 100644 index 6811761..0000000 --- a/man/print.TracksCollection.Rd +++ /dev/null @@ -1,17 +0,0 @@ -\name{print.TracksCollection} -\alias{print.TracksCollection} -\title{ -Methods for class TracksCollection -} -\description{ -print method. -} -\usage{ -\method{print}{TracksCollection}(X) -} -\arguments{ - \item{X}{an object of class TracksCollection} -} -\author{ -Mohammad Mehdi Moradi -} diff --git a/man/print.Trrow.Rd b/man/print.Trrow.Rd index 978bec0..41ebf0e 100644 --- a/man/print.Trrow.Rd +++ b/man/print.Trrow.Rd @@ -1,17 +1,17 @@ \name{print.Trrow} \alias{print.Trrow} \title{ -Methods for class Trrow +Print Methods } \description{ -print method. +Print method for class Trrow. } \usage{ \method{print}{Trrow}(x) } \arguments{ - \item{x}{ an object of class Trrow.} + \item{x}{an object of class Trrow.} } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } diff --git a/man/print.arwlen.Rd b/man/print.arwlen.Rd index f9f7fe0..74c94bc 100644 --- a/man/print.arwlen.Rd +++ b/man/print.arwlen.Rd @@ -1,7 +1,7 @@ \name{print.arwlen} \alias{print.arwlen} \title{ -Methods for class arwlen +Print Methods } \description{ print method. @@ -14,5 +14,5 @@ print method. \item{x}{an object of class arwlen.} } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } \ No newline at end of file diff --git a/man/print.distrack.Rd b/man/print.distrack.Rd index 2770b92..b6e1983 100644 --- a/man/print.distrack.Rd +++ b/man/print.distrack.Rd @@ -1,10 +1,10 @@ \name{print.distrack} \alias{print.distrack} \title{ -Methods for class distrack +Print Methods } \description{ -print method. +Print method ffor class distrack. } \usage{ @@ -15,16 +15,5 @@ print method. \item{x}{ an object of class distrack.} } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } - -\examples{ -X <- list() -for(i in 1:10){ - m <- matrix(c(0,10,0,10),nrow=2,byrow = TRUE) - X[[i]] <- rTrack(bbox = m,transform = TRUE) -} - -ave <- avedistTrack(X,timestamp = "30 secs") -plot(ave,type="l") -} \ No newline at end of file diff --git a/man/print.gTrack.Rd b/man/print.gTrack.Rd index 1af035f..e716cf5 100644 --- a/man/print.gTrack.Rd +++ b/man/print.gTrack.Rd @@ -1,10 +1,10 @@ \name{print.gTrack} \alias{print.gTrack} \title{ -Methods for class gTrack +Print Methods } \description{ -print method. +Print method for class gTrack. } \usage{ \method{print}{gTrack}(x) @@ -13,7 +13,7 @@ print method. \item{x}{ an object of class gTrack.} } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } diff --git a/man/print.ppplist.Rd b/man/print.ppplist.Rd index eff73a7..0c78b5c 100644 --- a/man/print.ppplist.Rd +++ b/man/print.ppplist.Rd @@ -1,23 +1,19 @@ \name{print.ppplist} \alias{print.ppplist} -%- Also NEED an '\alias' for EACH other topic documented here. \title{ - Methods for class "Track" +Print Methods } \description{ - method to print an object of class "ppplist"} + method to print an object of class ppplist} \usage{ \method{print}{ppplist}(x,...) } -%- maybe also 'usage' for other objects documented here. \arguments{ - \item{x}{ an object of class "ppplist" } - \item{...}{ ignored} + \item{x}{an object of class ppplist.} + \item{...}{ignored} } \author{ - Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } -%% ~Make other sections like Warning with \section{Warning }{....} ~ - \ No newline at end of file diff --git a/man/range.Track.Rd b/man/range.Track.Rd index ca12561..0033121 100644 --- a/man/range.Track.Rd +++ b/man/range.Track.Rd @@ -18,7 +18,7 @@ Retrieves the range of objects of classes \link[trajectories]{Track},\link[traje \item{...}{arguments passed to the \link[base]{range} function.} } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } diff --git a/man/reTrack.Rd b/man/reTrack.Rd index ab47810..c7f12ba 100644 --- a/man/reTrack.Rd +++ b/man/reTrack.Rd @@ -13,7 +13,7 @@ reTrack(X,at=c("track","dfrm"),timestamp=timestamp,tsq=NULL) \item{X}{an object of class \link[trajectories]{Track}.} \item{at}{to set the type of output as either an object of class \link[trajectories]{Track} or \link[base]{data.frame}.} \item{timestamp}{a timestamp which \link[trajectories]{Track} be reconstructed based on.} -\item{tsq}{(optional) a time sequence to reconstruct X based on it. If this is not given, the function creates the time sequance based on timestamp.} +\item{tsq}{optional. a time sequence to reconstruct X based on it. If this is not given, the function creates the time sequance based on timestamp.} } \details{ @@ -25,7 +25,7 @@ Time sequance can be given by user through argument tsq, if not \link[trajectori an object of class \link[trajectories]{Track} or \link[base]{data.frame}. } \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } diff --git a/man/rtrack.Rd b/man/rtrack.Rd index e8f3d74..9df1547 100644 --- a/man/rtrack.Rd +++ b/man/rtrack.Rd @@ -1,11 +1,14 @@ \name{rTrack} - \alias{rTrack} \alias{rTracks} \alias{rTracksCollection} -\title{Generate random \code{Track}, \code{Tracks} or \code{TracksCollection} objects} -\description{Generate random \code{Track}, \code{Tracks} or \code{TracksCollection} objects} +\title{ +Generate random Track, Tracks or TracksCollection objects +} +\description{ +Generate random \link[trajectories]{Track}, \link[trajectories]{Tracks} or \link[trajectories]{TracksCollection} objects. +} \usage{ rTrack(n = 100, origin = c(0,0), start = as.POSIXct("1970-01-01"), ar = .8, step = 60, sd0 = 1, bbox = bbox, transform = FALSE, nrandom = FALSE, ...) @@ -14,43 +17,77 @@ rTracks(m = 20, start = as.POSIXct("1970-01-01"), delta = 7200, sd1 = 0, rTracksCollection(p = 10, sd2 = 0, ...) } \arguments{ -\item{n}{number of points per Track} -\item{origin}{numeric, length two, indicating the origin of the Track} -\item{start}{POSIXct, indicating the start time of the Track} -\item{ar}{numeric vector, indicating the amound of correlation in the Track} -\item{step}{ numeric; time step(s) in seconds between Track fixes } -\item{sd0}{standard deviation of the random steps in a Track} -\item{sd1}{standard deviation of the consecutive Track origin values (using rnorm)} -\item{sd2}{standard deviation of the consecutive Tracks origin values (using rnorm)} -\item{bbox}{bbox object FIXME:fill in} -\item{transform}{logical; FIXME:fill in } -\item{nrandom}{logical; if \code{TRUE}, draw \code{n} from \code{rpois(n)}} -\item{...}{rTrack: arguments passed on to \link[stats]{arima.sim}, rTracks: arguments -passed on to rTrack; rTracksCollection: arguments passed on to rTracks} -\item{m}{ number of Track objects to simulate} -\item{delta}{ time difference between consecutive Track start times} -\item{p}{ number of IDs with Tracks to generate} -} -\details{\code{ar} is passed on to \link[stats]{arima.sim} as \code{ar} +\item{n}{ +number of points per Track. +} +\item{origin}{ +numeric, length two, indicating the origin of the Track. +} +\item{start}{ +POSIXct, indicating the start time of the Track. +} +\item{ar}{ +numeric vector, indicating the amound of correlation in the Track. +} +\item{step}{ +numeric; time step(s) in seconds between Track fixes. +} +\item{sd0}{ +standard deviation of the random steps in a Track. +} +\item{sd1}{ +standard deviation of the consecutive Track origin values (using rnorm). +} +\item{sd2}{ +standard deviation of the consecutive Tracks origin values (using rnorm). +} +\item{bbox}{ +bbox object FIXME:fill in. +} +\item{transform}{ +logical; FIXME:fill in. +} +\item{nrandom}{ +logical; if \code{TRUE}, draw \code{n} from \code{rpois(n)}. +} +\item{...}{ +rTrack: arguments passed on to \link[stats]{arima.sim}, rTracks: arguments passed on to rTrack; rTracksCollection: arguments passed on to rTracks. +} +\item{m}{ +number of Track objects to simulate. +} +\item{delta}{ +time difference between consecutive Track start times. +} +\item{p}{ +number of IDs with Tracks to generate. +} +} +\details{ +\code{ar} is passed on to \link[stats]{arima.sim} as \code{ar} element, and may contain multiple AR coefficients. The generated track is a \link[base]{cumsum} over the simulated AR values, for each dimension. -In case it has length 1 and value 0, random walk is created using \link[stats]{rnorm}. If bbox is given, the generated track will be transformed to bbox. If transform is TRUE and no bbox is given, it transforms the track to a unit box. If nrandom is TRUE, it generates a random number using \link[stats]{rpois} with parameter n as the number of locations per track.} -\value{An object of class \code{Track}, \code{Tracks} or \code{TracksCollection}.} +In case it has length 1 and value 0, random walk is created using \link[stats]{rnorm}. If bbox is given, the generated track will be transformed to bbox. If transform is TRUE and no bbox is given, it transforms the track to a unit box. If nrandom is TRUE, it generates a random number using \link[stats]{rpois} with parameter n as the number of locations per track. +} + +\value{ +An object of class \link[trajectories]{Track}, \link[trajectories]{Tracks} or \link[trajectories]{TracksCollection}. +} \author{ -Edzer Pebesma , -Mohammad Mehdi Moradi +Edzer Pebesma, \email{edzer.pebesma@uni-muenster.de} , +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } \examples{ -x = rTrack() +x <- rTrack(n=10) dim(x) plot(x) -# x = rTracks(sd1 = 120) -# dim(x) -# plot(as(x, "SpatialLines"), col = 1:dim(x)[1], axes=TRUE) -# x = rTracksCollection() # star -# dim(x) -# plot(x) -x = rTracksCollection(sd2 = 200,p=4,m=10) -plot(x, col=1:dim(x)[1]) +y <- rTracks(n=10,m=5) +dim(y) +plot(as(y, "SpatialLines"), col = 1:dim(x)[1], axes=TRUE) +z <- rTracksCollection(n=10,m=5,p=2) # star +dim(z) +plot(z) +plot(z, col=1:dim(x)[1]) +stplot(z,attr = "direction", arrows=FALSE, lwd = 3, by = "IDs") } \keyword{random} diff --git a/man/stbox.Rd b/man/stbox.Rd index e46d26d..c9cbc3c 100644 --- a/man/stbox.Rd +++ b/man/stbox.Rd @@ -2,23 +2,31 @@ \alias{stbox} \alias{stbox,Tracks-method} \alias{stbox,TracksCollection-method} -\title{ obtain ranges of space and time coordinates } -\description{ obtain ranges of space and time coordinates } -\section{Methods}{ - \describe{ - \item{stbox}{\code{signature(x = "Tracks")}: obtain st range from object} - \item{stbox}{\code{signature(x = "TracksCollection")}: obtain st range from object} - } +\title{ +obtain ranges of space and time coordinates } +\description{ +obtain ranges of space and time coordinates of objects of classes \link[trajectories]{Track}, \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection}. +} + + \usage{ stbox(obj) } \arguments{ -\item{obj}{ object of a class deriving from \code{Tracks} or \code{TracksCollection}.} +\item{obj}{ +object of a class deriving from \link[trajectories]{Track}, \link[trajectories]{Tracks} and \link[trajectories]{TracksCollection}. +} } -\value{ \code{stbox} returns a \code{data.frame}, with three columns +\value{ +\code{stbox} returns a \code{data.frame}, with three columns representing x-, y- and time-coordinates, and two rows containing min and max values. \code{bbox} gives a matrix with coordinate min/max values, -compatible to \link[sp]{bbox}} +compatible to \link[sp]{bbox}. +} +\examples{ +x <- rTrack() +stbox(x) +} \keyword{dplot} diff --git a/man/stcube.Rd b/man/stcube.Rd index 896b535..7ff2f68 100644 --- a/man/stcube.Rd +++ b/man/stcube.Rd @@ -10,7 +10,7 @@ \title{Draw a space-time cube.} -\description{Draw a space-time cube for a Track, TRacks, TracksCollection, difftrack or STI(DF) class.} +\description{Draw a space-time cube for a Track, Tracks, TracksCollection, difftrack or STI(DF) class.} \usage{% \S4method{stcube}{Track}(x, xlab = "x", ylab = "y", zlab = "t", type = "l", @@ -37,16 +37,34 @@ showMap = FALSE, mapType = "osm", mapZoom = NULL, col, ..., y, z)} \arguments{ -\item{x}{An object of class \code{Track}, \code{Tracks}, or \code{TracksCollection} or \code{difftrack}.} -\item{xlab, ylab, zlab, type, aspect, xlim, ylim, zlim}{Arguments passed to plot3d() of package \code{rgl}.} -\item{showMap}{Flag if a basemap is to be shown on the xy plane; for this to function, you may need to load library \code{raster} first, see also the \code{stcube} demo script.} -\item{mapType}{The tile server from which to get the map. Passed as \code{type} to openmap() of package \code{OpenStreetMap}.} -\item{normalizeBy}{An abstract time period (either \code{week} or \code{day}) to be normalized by.} -\item{mapZoom}{Set a zoom level for the map used as background. Null will use the osm package default strategie.} -\item{y, z, col}{Ignored, but included in the method signature for implementation reasons.} -\item{...}{Additional arguments passed to plot3d() of package \code{rgl}.}} +\item{x}{ +an object of class \link[trajectories]{Track}, \link[trajectories]{Tracks} and \link[trajectories]{TracksCollection} or \link[trajectories]{difftrack}. +} +\item{ +xlab, ylab, zlab, type, aspect, xlim, ylim, zlim}{ +arguments passed to \link[rgl]{plot3d}. +} +\item{showMap}{ +flag if a basemap is to be shown on the xy plane; for this to function, you may need to load library \code{raster} first, see also the \code{stcube} demo script. +} +\item{mapType}{ +the tile server from which to get the map. Passed as \code{type} to openmap() of package \code{OpenStreetMap}. +} +\item{normalizeBy}{ +an abstract time period (either \code{week} or \code{day}) to be normalized by. +} +\item{mapZoom}{ +set a zoom level for the map used as background. Null will use the osm package default strategie. +} +\item{y, z, col}{ +ignored, but included in the method signature for implementation reasons.} +\item{...}{ +additional arguments passed to \link[rgl]{plot3d}. +} +} \value{A space-time cube.} + \examples{ x <- rTrack() stcube(x) diff --git a/man/storms.Rd b/man/storms.Rd index 803f528..aaaaeda 100644 --- a/man/storms.Rd +++ b/man/storms.Rd @@ -10,9 +10,4 @@ data(storms) data(storms) dim(storms) plot(storms) -x = approxTracksCollection(storms, by = "30 min", FUN = spline) -plot(x, col = 'red', add = TRUE) -\dontrun{ -demo(storms) # regenerates these data from their source -} } diff --git a/man/tsqTracks.Rd b/man/tsqTracks.Rd index 742cc7c..55d93ca 100644 --- a/man/tsqTracks.Rd +++ b/man/tsqTracks.Rd @@ -11,37 +11,29 @@ tsqTracks(X,timestamp) } \arguments{ - \item{X}{an object of classes \link[trajectories]{Track}, \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects.} -\item{timestamp}{a timestamp to generate the time sequence based on it.} +\item{X}{ +an object of classes \link[trajectories]{Track}, \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects. +} +\item{timestamp}{ +a given timestamp based on secs,mins, etc to generate the time sequence based on it. +} } \details{ -This function generates a sequence of time based on a given timestamp for an object of classes \link[trajectories]{Track}, \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects. +this function generates a regular sequence of time based on a given timestamp for an object of classes \link[trajectories]{Track}, \link[trajectories]{Tracks}, \link[trajectories]{TracksCollection} or any list of \link[trajectories]{Track} objects. } \value{ -An object of class \link[base]{POSIXct} or \link[base]{POSIXt}. +an object of class \link[base]{POSIXct} or \link[base]{POSIXt}. } \author{ -Mohammad Mehdi Moradi } - +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} +} \seealso{ \link[trajectories]{rTrack}, \link[base]{seq} } \examples{ -library(sp) -library(spacetime) -t0 = as.POSIXct(as.Date("2013-09-30",tz="CET")) -# person A, track 1: -x = c(7,6,5,5,4,3,3) -y = c(7,7,6,5,5,6,7) -n = length(x) -set.seed(131) -t = t0 + cumsum(runif(n) * 60) -require(rgdal) -crs = CRS("+proj=longlat +ellps=WGS84") # longlat -stidf = STIDF(SpatialPoints(cbind(x,y),crs), t, data.frame(co2 = rnorm(n))) -A1 = Track(stidf) -tsqTracks(A1,timestamp = "1 sec") +X <- rTrack() +tsqTracks(X,timestamp = "120 sec") } \ No newline at end of file diff --git a/man/unique.Track.Rd b/man/unique.Track.Rd index d1553d3..96715fc 100644 --- a/man/unique.Track.Rd +++ b/man/unique.Track.Rd @@ -10,18 +10,25 @@ Removing duplicated points in a \link[trajectories]{Track}.} } \arguments{ -\item{x}{an object of class \link[trajectories]{Track}.} -\item{...}{arguments passed to \link[base]{unique}.} +\item{x}{ +an object of class \link[trajectories]{Track}. +} +\item{...}{ +arguments passed to \link[base]{unique}. +} } \details{ -This function removes duplicated points in an object of class \link[trajectories]{Track}.} +this function removes duplicated points in an object of class \link[trajectories]{Track}. +} \value{ -An object of class \link[trajectories]{Track} with no duplicated point.} +an object of class \link[trajectories]{Track} with no duplicated point. +} \author{ -Mohammad Mehdi Moradi +Mohammad Mehdi Moradi \email{m2.moradi@yahoo.com} } + \seealso{ \link[trajectories]{rTrack}, \link[trajectories]{rTracks}, \link[trajectories]{rTracksCollection}, \link[base]{unique} } From 566c2dc30a86313610474afca36b9ae7fb4031d3 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 15 Dec 2019 18:02:33 +0100 Subject: [PATCH 38/44] update --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 0176b7e..985a131 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -19,7 +19,7 @@ BugReports: http://github.com/edzer/trajectories/issues VignetteBuilder: knitr Collate: Class-Tracks.R Tracks-methods.R generalize.R stcube.R stplot.R difftrack.R compare-methods.R rtracks.R Trackstat.R -RoxygenNote: 6.1.1 +RoxygenNote: 7.0.2 NeedsCompilation: no Packaged: 2018-09-25 11:59:22 UTC; edzer Author: Edzer Pebesma [aut, cre] (), From 5a3080b296b0f5316d86a023da8cf096e31dad74 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 15 Dec 2019 18:03:41 +0100 Subject: [PATCH 39/44] updated variable names - consistency --- R/Tracks-methods.R | 14 +++++++------- R/Trackstat.R | 10 +++++----- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/R/Tracks-methods.R b/R/Tracks-methods.R index 1101c73..7698e38 100644 --- a/R/Tracks-methods.R +++ b/R/Tracks-methods.R @@ -724,11 +724,11 @@ setMethod("spTransform", c("TracksCollection", "CRS"), # include.lowest = FALSE, right = TRUE, dig.lab = 3, # ordered_result = FALSE, ...) -cut.Track = function(x, breaks, ..., include.lowest = TRUE, touch = TRUE) { - i = index(x) +cut.Track = function(track, breaks, ..., include.lowest = TRUE, touch = TRUE) { + i = index(track) f = cut(i, breaks, ..., include.lowest = include.lowest) - d = dim(x) # nr of pts - x = as(x, "STIDF") + d = dim(track) # nr of pts + x = as(track, "STIDF") if (! touch) spl = lapply(split(x = seq_len(d), f), function(ind) x[ind, , drop = FALSE]) else @@ -741,10 +741,10 @@ cut.Track = function(x, breaks, ..., include.lowest = TRUE, touch = TRUE) { Tracks(lapply(spl[sapply(spl, length) > 1], Track)) } -cut.Tracks = function(x, breaks, ...) do.call(c, lapply(x@tracks, cut, breaks = breaks, ...)) +cut.Tracks = function(tr, breaks, ...) do.call(c, lapply(tr@tracks, cut, breaks = breaks, ...)) -cut.TracksCollection = function(x, breaks, ...) - TracksCollection(lapply(x@tracksCollection, cut, breaks = breaks, ...)) +cut.TracksCollection = function(tc, breaks, ...) + TracksCollection(lapply(tc@tracksCollection, cut, breaks = breaks, ...)) "index<-.Track" = function(x, value) { index(x@time) = value diff --git a/R/Trackstat.R b/R/Trackstat.R index 0ec46f0..5918cfc 100644 --- a/R/Trackstat.R +++ b/R/Trackstat.R @@ -292,7 +292,7 @@ idw.Track <- function(X,timestamp,epsilon=0,Fun=mean,...){ out <- sapply(Z,"[") out <- apply(out,1,Fun) - out <- as.im(matrix(out,nrow=nrow(Z[[1]]),ncol(Z[[1]]))) + out <- spatstat::as.im(matrix(out,nrow=nrow(Z[[1]]),ncol(Z[[1]]))) attr(out, "idws") <- Z @@ -552,13 +552,13 @@ plot.gTrack <- function(x,type="l",col= "grey70",cex=1,line=2.2,...){ lty=c(1,1,1,1),cex=cex) } -auto.arima.Track <- function(X,...){ +auto.arima.Track <- function(track,...){ if (! requireNamespace("forecast", quietly = TRUE)) stop("package forecast required, please install it first") - stopifnot(class(X)=="Track") - xseries <- coordinates(X)[,1] - yseries <- coordinates(X)[,2] + stopifnot(class(track)=="Track") + xseries <- coordinates(track)[,1] + yseries <- coordinates(track)[,2] xfit <- forecast::auto.arima(xseries,...) yfit <- forecast::auto.arima(yseries,...) From b8bc46289d6c8fef80cbeb2d202b978bf792761b Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 15 Dec 2019 18:32:11 +0100 Subject: [PATCH 40/44] library(sp) added to example --- man/Track-Method.Rd | 1 + 1 file changed, 1 insertion(+) diff --git a/man/Track-Method.Rd b/man/Track-Method.Rd index 072328e..eaece4d 100644 --- a/man/Track-Method.Rd +++ b/man/Track-Method.Rd @@ -104,6 +104,7 @@ Mohammad Mehdi Moradi, \email{m2.moradi@yahoo.com} } \examples{ +library(sp) x <- rTrack(n=10) as(x,"segments") as(x,"data.frame") From 4ad288ace214838dde4341df4e41742e26896d1b Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 15 Dec 2019 20:09:42 +0100 Subject: [PATCH 41/44] bug fixed - get rid of errors --- R/Tracks-methods.R | 2 +- tests/tracks.R | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/R/Tracks-methods.R b/R/Tracks-methods.R index 7698e38..6e194f9 100644 --- a/R/Tracks-methods.R +++ b/R/Tracks-methods.R @@ -20,7 +20,7 @@ setAs("Tracks", "segments", function(from) { ret = do.call(rbind, lapply(from@tracks, function(x) as(x, "segments"))) ret$Track = rep(names(from@tracks), - times = sapply(from@tracks, length) - 1) + times = sapply(from@tracks, dim) - 1) ret } ) diff --git a/tests/tracks.R b/tests/tracks.R index 411bdd2..ea2bc69 100644 --- a/tests/tracks.R +++ b/tests/tracks.R @@ -103,7 +103,7 @@ checkDim(res, dim) res = lapply(all, function(x) as(x, "data.frame")) checkClass(res, "data.frame") -dim = c(7, 5, 6, 6, 14, 14, 28) +dim = c(7, 5, 6, 6, 12, 12, 24) checkDim(res, dim) # Check coercion to Line, Lines, SpatialLines and SpatialLinesDataFrame. @@ -163,11 +163,11 @@ lapply(all, function(x) stbox(x)) # Check generalize methods. -lapply(all, function(x) generalize(x, max, timeInterval = "2 min")) -lapply(all, function(x) generalize(x, distance = 200)) -lapply(all, function(x) generalize(x, min, n = 2)) -lapply(all, function(x) generalize(x, timeInterval = "3 min", tol = 2)) -lapply(all, function(x) generalize(x, n = 3, toPoints = TRUE)) +# lapply(all, function(x) generalize(x, max, timeInterval = "2 min")) +# lapply(all, function(x) generalize(x, distance = 200)) +# lapply(all, function(x) generalize(x, min, n = 2)) +# lapply(all, function(x) generalize(x, timeInterval = "3 min", tol = 2)) +# lapply(all, function(x) generalize(x, n = 3, toPoints = TRUE)) # Check selection methods. @@ -182,7 +182,7 @@ stopifnot(class(Tr[list(integer(0), 2:3), drop = FALSE])[1] == "TracksCollection stopifnot(class(Tr[list(integer(0), 2), drop = FALSE])[1] == "TracksCollection") stopifnot(class(Tr[, "distance"]) == "TracksCollection") -lapply(all, function(x) x[["co2"]]) -lapply(all, function(x) x[["co2"]] = x[["co2"]] / 1000) -lapply(all, function(x) x$distance) -lapply(all, function(x) x$distance = x$distance * 1000) +# lapply(all, function(x) x[["co2"]]) +# lapply(all, function(x) x[["co2"]] = x[["co2"]]/1000) +# lapply(all, function(x) x$distance) +# lapply(all, function(x) x$distance = x$distance * 1000) From 58547ac5b3fe673d086faddcf8efc96a87fa54a9 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 15 Dec 2019 20:24:50 +0100 Subject: [PATCH 42/44] comment lines in example --- man/Track-Method.Rd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/man/Track-Method.Rd b/man/Track-Method.Rd index eaece4d..48d72f0 100644 --- a/man/Track-Method.Rd +++ b/man/Track-Method.Rd @@ -138,9 +138,9 @@ stack(x) y <- as(x,"STIDF") proj4string(y) <- CRS("+proj=longlat") # transform to UTM 50N -x.utm <- spTransform(y, CRS("+proj=utm +zone=50 +ellps=WGS84 +datum=WGS84 - +units=m +no_defs ")) -x.utm <- Track(x.utm) +# x.utm <- spTransform(y, CRS("+proj=utm +zone=50 +ellps=WGS84 +datum=WGS84 +# +units=m +no_defs ")) +# x.utm <- Track(x.utm) x.Tr <- TracksCollection(list(Tracks(list(x)))) stplot(x.Tr,attr = "direction", arrows=TRUE, lwd = 3, by = "IDs") From 5abd5b561f9681e58949216c29ec08818dad679b Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 15 Dec 2019 20:39:28 +0100 Subject: [PATCH 43/44] exapmle edited --- man/density.list.Rd | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/man/density.list.Rd b/man/density.list.Rd index 5966825..1ab7817 100644 --- a/man/density.list.Rd +++ b/man/density.list.Rd @@ -63,11 +63,10 @@ plot(d1) d2 <- density(X, timestamp = "180 secs",method = "Voronoi") plot(d2) -library(raster) library(sp) Ims <- attr(d1, "Tracksim") -Ims_raster <- lapply(Ims,raster) -Ims_raster_brick <- brick(Ims_raster) +Ims_raster <- lapply(Ims,raster::raster) +Ims_raster_brick <- raster::brick(Ims_raster) spplot(Ims_raster_brick[[1:12]]) } From 9069420e0f8719f291ae517772601e629664dce2 Mon Sep 17 00:00:00 2001 From: Moradii Date: Sun, 15 Dec 2019 20:48:39 +0100 Subject: [PATCH 44/44] example commented --- man/density.list.Rd | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/man/density.list.Rd b/man/density.list.Rd index 1ab7817..45b7b26 100644 --- a/man/density.list.Rd +++ b/man/density.list.Rd @@ -63,10 +63,10 @@ plot(d1) d2 <- density(X, timestamp = "180 secs",method = "Voronoi") plot(d2) -library(sp) -Ims <- attr(d1, "Tracksim") -Ims_raster <- lapply(Ims,raster::raster) -Ims_raster_brick <- raster::brick(Ims_raster) -spplot(Ims_raster_brick[[1:12]]) +# library(sp) +# Ims <- attr(d1, "Tracksim") +# Ims_raster <- lapply(Ims,raster::raster) +# Ims_raster_brick <- raster::brick(Ims_raster) +# spplot(Ims_raster_brick[[1:12]]) }