25 #include <boost/tokenizer.hpp>
26 #include <boost/lexical_cast.hpp>
27 #include <boost/algorithm/string.hpp>
29 #include "repast_hpc/Properties.h"
30 #include "repast_hpc/RepastProcess.h"
34 #include "repast_hpc/TDataSource.h"
35 #include "repast_hpc/SVDataSet.h"
72 std::cerr <<
"No instance already created!" << std::endl;
134 Data( repast::Properties aProps ) {
136 if (repast::RepastProcess::instance()->rank() == 0) {
137 std::cout <<
"Data reading" << std::endl;
218 std::vector<long int>
getMunAge(
int municipality,
char gender);
384 unsigned long n_sec_int = (
unsigned long) floor(n_sec);
386 std::ostringstream result;
388 unsigned int hour = n_sec_int / 3600;
389 unsigned int min = (n_sec_int / 60) % 60;
390 unsigned int sec = n_sec_int % 60;
392 result << hour <<
":" << min <<
":" << sec;
405 return (
unsigned long)floor(n_sec / 3600);
415 return (
unsigned long)floor(n_sec / 1800);
433 template<
typename T> std::vector<T>
split(
const std::string & msg,
434 const std::string & separators) {
436 std::vector<T> result;
438 boost::char_separator<char> sep(separators.c_str());
440 boost::tokenizer<boost::char_separator<char> > tok(msg, sep);
443 for (boost::tokenizer<boost::char_separator<char> >::const_iterator i = tok.begin(); i != tok.end(); i++) {
444 std::stringstream s(*i);
445 string s_string = s.str();
446 boost::algorithm::trim(s_string);
447 token = boost::lexical_cast<T>( s_string );
448 result.push_back(token);
void read_distribution_parameters_distance_x_duration_trip()
Read the distribution parameters for distance x duration of a trip.
Definition: Data.cpp:440
const std::map< char, int > & getMapActCharToInt() const
Return the character to integer activity code-book.
Definition: Data.hpp:309
std::map< int, long > _indic_mun_size
size indicator of a municipality
Definition: Data.hpp:121
std::map< int, std::vector< long > > _mun_age_women
women's age distribution by municipality
Definition: Data.hpp:107
std::map< int, float > _death_age_women
death's probability for a woman by age
Definition: Data.hpp:109
std::map< int, dist_param_mixture_2d > _map_act_start_x_dur
distribution parameters for activities' log(starting time) x log(duration)
Definition: Data.hpp:118
Definition: Random.hpp:83
const int MODEL_AGENT_IND_TYPE
constant for the individual agent type
Definition: Data.hpp:38
~Singleton()
Destructor.
Definition: Data.hpp:52
void reset()
Reset sum to 0.
Definition: Data.cpp:766
std::map< int, dist_param_mixture > _map_act_tdep_par_dist
distribution parameters for activities' house departure time (log normal)
Definition: Data.hpp:117
void read_distribution_parameters_house_tdep()
Read the distribution parameters for activities' house time departure.
Definition: Data.cpp:513
static T * _singleton
unique instance of the Data class
Definition: Data.hpp:87
dist_param_mixture getDurationCondiDistTripParDist(int aDistance)
Return a journey duration distribution's parameters conditional to the journey distance.
Definition: Data.cpp:728
std::multimap< int, long > _map_ins_node
set of node by municipalities' ins code
Definition: Data.hpp:112
std::map< int, float > _death_age_men
death's probability for a man by age
Definition: Data.hpp:108
dist_param_mixture_2d _act_dist_x_dur_trip_dist
distribution parameters for log(distance) x log(duration of the trip)
Definition: Data.hpp:119
const int MODEL_AGENT_HH_TYPE
constant for the household agent type
Definition: Data.hpp:39
Random number generators and related tools.
Singleton()
Constructor.
Definition: Data.hpp:49
void read_mun_age_men()
Read the age's distribution by municipality for the men.
Definition: Data.cpp:18
A Network class.
Definition: Network.hpp:479
dist_param_mixture getActDurationCondiStartParDist(int aActivityType, int aStartTime)
Return the activity duration distribution's parameter conditional to a starting time for a given acti...
Definition: Data.cpp:700
dist_param_mixture getActDistParDist(int aActivityType)
Return the distance's distribution's parameter of a given activity type.
Definition: Data.cpp:688
void read_birth_age()
Read the birth probability by age and the probability to have a boy or a girl.
Definition: Data.cpp:100
long int linesCount(std::string filename)
Compute the number of lines in a file.
std::vector< T > split(const std::string &msg, const std::string &separators)
Decompose a string according to a separator into a vector of type T.
Definition: Data.hpp:433
const Network & getNetwork() const
Return the road network.
Definition: Data.hpp:301
std::map< long, int > _map_node_ins
ins code of node
Definition: Data.hpp:113
Network _network
road network
Definition: Data.hpp:120
std::vector< long int > getMunAge(int municipality, char gender)
Get the age's distribution of a municipality for a given gender.
Definition: Data.cpp:634
std::map< char, int > _map_act_charToInt
activities' code-book (from character to integer encoding)
Definition: Data.hpp:115
unsigned int secToHour(float n_sec)
Convert a number of seconds to hours.
Definition: Data.hpp:404
std::map< int, dist_param_mixture > _map_act_dist_par_dist
distribution parameters for activities' distance (log normal)
Definition: Data.hpp:116
float getDeathProba(char gender, int age)
Compute and return the death's probability of an individual.
Definition: Data.cpp:641
unsigned int secToHalfHour(float n_sec)
Convert a number of seconds to half-hours.
Definition: Data.hpp:414
Definition: Random.hpp:55
const std::map< int, int > & getMapInsIdMun() const
Return the codebook of municipalities ins code to their id (1 to 589).
Definition: Data.hpp:325
const std::map< int, char > & getMapActIntToChar() const
Return the integer to character activity code-book.
Definition: Data.hpp:317
void read_activity_cdb()
Read the activities' codebook.
Definition: Data.cpp:157
void read_mun_age_women()
Read the age's distribution by municipality for the women.
Definition: Data.cpp:45
void increment()
Increment sum.
Definition: Data.cpp:762
dist_param_mixture getActHouseTDepParDist(int aActivityType)
Return the house departure time distribution's parameter for a given activity type.
Definition: Data.cpp:694
std::map< int, float > _birth_age
birth's probability by women's age
Definition: Data.hpp:110
int _sum
the aggregate sum computed over all processes used to run the simulation
Definition: Data.hpp:347
int getData()
Return the current state of sum.
Definition: Data.cpp:770
void read_network()
Read the road network.
Definition: Data.cpp:197
std::map< int, std::vector< long > > _mun_age_men
men's age distribution by municipality
Definition: Data.hpp:106
Data(repast::Properties aProps)
Constructor.
Definition: Data.hpp:134
void read_ins_id_mun()
Read the codebooks of ins code and municipality id (1 to 589).
Definition: Data.cpp:599
std::vector< long > getNodesIdFromIns(int aIns)
Return the list of node of a given municipality identified by its INS code.
Definition: Data.cpp:656
Road network related class and methods (Heap, Node, Link and Network classes).
void read_indicators()
Read the various indicators used by the activity localization model.
Definition: Data.cpp:570
void read_distribution_parameters_start_duration()
Read the distribution parameters for activities' starting time x duration.
Definition: Data.cpp:356
float getBirthProba(int age)
Compute and return the birth's probability of an individual by women's age.
Definition: Data.cpp:648
static void kill()
Free the memory.
Definition: Data.hpp:78
Singleton class for the Data class.
Definition: Data.hpp:44
repast::Properties _props
properties of simulation
Definition: Data.hpp:124
A data class.
Definition: Data.hpp:100
Aggregate output data class.
Definition: Data.hpp:344
static T * getInstance()
Return the generated, unique, instance of a T object (if already instanciated).
Definition: Data.hpp:70
std::map< int, int > _map_id_mun_ins
map of id of municipality (key) x ins code (value)
Definition: Data.hpp:123
void read_death_age()
Read the death probability by age and gender.
Definition: Data.cpp:72
std::map< int, char > _map_act_intToChar
activities' code-book (from integer to character encoding)
Definition: Data.hpp:114
std::map< int, int > _map_ins_id_mun
map of ins code (key) x id of municipality (value)
Definition: Data.hpp:122
const std::map< int, int > & getMapIdMunIns() const
Return the codebook of municipalities id (1 to 589) to their ins code.
Definition: Data.hpp:333
long getOneNodeIdFromIns(int aIns)
Return one node of a given municipality identified by its INS code.
Definition: Data.cpp:671
virtual ~Data()
Destructor.
Definition: Data.hpp:170
void read_distribution_parameters_distance()
Read the distribution parameters for activities' distance.
Definition: Data.cpp:297
std::map< int, float > _birth_men
birth's probability to have a boy
Definition: Data.hpp:111
float getBirthsex(int age)
Compute and return the probability to be a boy or girl.
Definition: Data.cpp:652
static void makeInstance(repast::Properties aProps)
Generates a singleton instance of a T object.
Definition: Data.hpp:60
virtual ~AggregateSum()
Destructor.
Definition: Data.hpp:355
void read_node_ins()
Read the municipalities's node.
Definition: Data.cpp:128
AggregateSum()
Constructor.
Definition: Data.cpp:758
std::string secToTime(float n_sec)
Convert a number of seconds to the format hour:min:sec.
Definition: Data.hpp:382