Dynamical system model
Loading...
Searching...
No Matches
dsf::mdt::TrajectoryCollection Class Reference

Public Member Functions

 TrajectoryCollection (std::unordered_map< std::string, std::variant< std::vector< Id >, std::vector< std::time_t >, std::vector< double > > > &&dataframe, std::array< double, 4 > const &bbox={})
 Construct a TrajectoryCollection from a dataframe.
 
 TrajectoryCollection (std::string const &fileName=std::string(), std::unordered_map< std::string, std::string > const &column_mapping={}, char const sep=';', std::array< double, 4 > const &bbox={})
 Construct a TrajectoryCollection, optionally importing from a CSV file.
 
void import (std::string const &fileName, std::unordered_map< std::string, std::string > const &column_mapping={}, char const sep=';', std::array< double, 4 > const &bbox={})
 Import trajectories from a CSV file.
 
void to_csv (std::string const &fileName, char const sep=';') const
 Export clustered trajectories to a CSV file with columns 'uid', 'trajectory_id', 'lon', 'lat', 'timestamp_in', 'timestamp_out'.
 
void filter (double const cluster_radius_km, double const max_speed_kph=150.0, std::size_t const min_points_per_trajectory=2, std::optional< std::time_t > const min_duration_min=std::nullopt)
 Filter all point trajectories to identify stop points based on clustering and speed criteria.
 
auto const & trajectories () const noexcept
 Get the underlying trajectories map.
 

Constructor & Destructor Documentation

◆ TrajectoryCollection() [1/2]

dsf::mdt::TrajectoryCollection::TrajectoryCollection ( std::unordered_map< std::string, std::variant< std::vector< Id >, std::vector< std::time_t >, std::vector< double > > > && dataframe,
std::array< double, 4 > const & bbox = {} )

Construct a TrajectoryCollection from a dataframe.

Parameters
dataframeAn unordered_map representing the dataframe with columns: 'uid', 'timestamp', 'lat', 'lon'.
bboxOptional bounding box [minX, minY, maxX, maxY] to limit the area of interest. Default is empty (no bounding box).

◆ TrajectoryCollection() [2/2]

dsf::mdt::TrajectoryCollection::TrajectoryCollection ( std::string const & fileName = std::string(),
std::unordered_map< std::string, std::string > const & column_mapping = {},
char const sep = ';',
std::array< double, 4 > const & bbox = {} )

Construct a TrajectoryCollection, optionally importing from a CSV file.

Parameters
fileNameThe path to the CSV file.
column_mappingA mapping of column names.
sepThe character used to separate values in the CSV file.
bboxOptional bounding box [minX, minY, maxX, maxY] to limit the area of interest. Default is empty (no bounding box).

Member Function Documentation

◆ filter()

void dsf::mdt::TrajectoryCollection::filter ( double const cluster_radius_km,
double const max_speed_kph = 150.0,
std::size_t const min_points_per_trajectory = 2,
std::optional< std::time_t > const min_duration_min = std::nullopt )

Filter all point trajectories to identify stop points based on clustering and speed criteria.

Parameters
cluster_radius_kmThe radius (in kilometers) to use for clustering points.
max_speed_kphThe max allowed speed (in km/h) to consider a cluster as a stop point. Default is 150.0 km/h.
min_points_per_trajectoryThe minimum number of points required for a trajectory to be considered valid. Default is 2.
min_duration_minThe minimum duration (in minutes) for a cluster to be considered a stop point. If stops are detected, trajectories may be split into multiple segments.

◆ import()

void dsf::mdt::TrajectoryCollection::import ( std::string const & fileName,
std::unordered_map< std::string, std::string > const & column_mapping = {},
char const sep = ';',
std::array< double, 4 > const & bbox = {} )

Import trajectories from a CSV file.

Parameters
fileNameThe path to the CSV file. Accepts columns: 'uid', 'timestamp', 'lat', 'lon'.
column_mappingA mapping of column names.
sepThe character used to separate values in the CSV file.
bboxOptional bounding box [minX, minY, maxX, maxY] to limit the area of interest. Default is empty (no bounding box).

◆ to_csv()

void dsf::mdt::TrajectoryCollection::to_csv ( std::string const & fileName,
char const sep = ';' ) const

Export clustered trajectories to a CSV file with columns 'uid', 'trajectory_id', 'lon', 'lat', 'timestamp_in', 'timestamp_out'.

Parameters
fileNameThe path to the output CSV file.
sepThe character used to separate values in the CSV file.

◆ trajectories()

auto const & dsf::mdt::TrajectoryCollection::trajectories ( ) const
inlinenoexcept

Get the underlying trajectories map.

Returns
A const reference to the map of trajectories.

The documentation for this class was generated from the following files: