45 oc.
addCallExample(
"-c <CONFIGURATION>",
"run routing with options from file");
70 oc.
addSynonyme(
"alternatives-output",
"alternatives");
71 oc.
addDescription(
"alternatives-output",
"Output",
"Write generated route alternatives to FILE");
74 oc.
addDescription(
"intermodal-network-output",
"Output",
"Write edge splits and connectivity to FILE");
77 oc.
addDescription(
"intermodal-weight-output",
"Output",
"Write intermodal edges with lengths and travel times to FILE");
80 oc.
addDescription(
"write-trips",
"Output",
"Write trips instead of vehicles (for validating trip input)");
83 oc.
addDescription(
"write-trips.geo",
"Output",
"Write trips with geo-coordinates");
86 oc.
addDescription(
"write-trips.junctions",
"Output",
"Write trips with fromJunction and toJunction");
91 oc.
addDescription(
"weight-files",
"Input",
"Read network weights from FILE(s)");
94 oc.
addDescription(
"lane-weight-files",
"Input",
"Read lane-based network weights from FILE(s)");
97 oc.
addSynonyme(
"weight-attribute",
"measure",
true);
98 oc.
addDescription(
"weight-attribute",
"Input",
"Name of the xml attribute which gives the edge weight");
103 oc.
addSynonyme(
"weights.expand",
"expand-weights",
true);
104 oc.
addDescription(
"weights.expand",
"Processing",
"Expand weights behind the simulation's end");
107 oc.
addDescription(
"weights.random-factor",
"Processing",
"Edge weights for routing are dynamically disturbed by a random factor drawn uniformly from [1,FLOAT)");
110 oc.
addDescription(
"routing-algorithm",
"Processing",
"Select among routing algorithms ['dijkstra', 'astar', 'CH', 'CHWrapper']");
113 oc.
addDescription(
"weight-period",
"Processing",
"Aggregation period for the given weight files; triggers rebuilding of Contraction Hierarchy");
116 oc.
addDescription(
"weights.priority-factor",
"Processing",
"Consider edge priorities in addition to travel times, weighted by factor");
119 oc.
addDescription(
"astar.all-distances",
"Processing",
"Initialize lookup table for astar from the given file (generated by marouter --all-pairs-output)");
122 oc.
addDescription(
"astar.landmark-distances",
"Processing",
"Initialize lookup table for astar ALT-variant from the given file");
125 oc.
addDescription(
"astar.save-landmark-distances",
"Processing",
"Save lookup table for astar ALT-variant to the given file");
135 oc.
addDescription(
"gawron.beta",
"Processing",
"Use FLOAT as Gawron's beta");
139 oc.
addDescription(
"gawron.a",
"Processing",
"Use FLOAT as Gawron's a");
142 oc.
addDescription(
"exit-times",
"Output",
"Write exit times (weights) for each edge");
145 oc.
addDescription(
"keep-all-routes",
"Processing",
"Save routes with near zero probability");
148 oc.
addDescription(
"skip-new-routes",
"Processing",
"Only reuse routes from input, do not calculate new ones");
151 oc.
addDescription(
"ptline-routing",
"Processing",
"Route all public transport input");
154 oc.
addDescription(
"logit",
"Processing",
"Use c-logit model (deprecated in favor of --route-choice-method logit)");
157 oc.
addDescription(
"route-choice-method",
"Processing",
"Choose a route choice method: gawron, logit, or lohse");
161 oc.
addDescription(
"logit.beta",
"Processing",
"Use FLOAT as logit's beta");
165 oc.
addDescription(
"logit.gamma",
"Processing",
"Use FLOAT as logit's gamma");
169 oc.
addDescription(
"logit.theta",
"Processing",
"Use FLOAT as logit's theta (negative values mean auto-estimation)");
172 oc.
addDescription(
"persontrip.walkfactor",
"Processing",
"Use FLOAT as a factor on pedestrian maximum speed during intermodal routing");
176 "Where are mode changes from car to walking allowed (possible values: 'parkingAreas', 'ptStops', 'allJunctions' and combinations)");
179 oc.
addDescription(
"persontrip.transfer.taxi-walk",
"Processing",
"Where taxis can drop off customers ('allJunctions, 'ptStops')");
182 oc.
addDescription(
"persontrip.transfer.walk-taxi",
"Processing",
"Where taxis can pick up customers ('allJunctions, 'ptStops')");
185 oc.
addDescription(
"persontrip.taxi.waiting-time",
"Processing",
"Estimated time for taxi pickup");
188 oc.
addDescription(
"railway.max-train-length",
"Processing",
"Use FLOAT as a maximum train length when initializing the railway router");
224 if (oc.
getString(
"routing-algorithm") !=
"dijkstra" && oc.
getString(
"weight-attribute") !=
"traveltime") {
225 WRITE_ERROR(
"Routing algorithm '" + oc.
getString(
"routing-algorithm") +
"' does not support weight-attribute '" + oc.
getString(
"weight-attribute") +
"'.");
228 if (oc.
getBool(
"bulk-routing") && (oc.
getString(
"routing-algorithm") ==
"CH" || oc.
getString(
"routing-algorithm") ==
"CHWrapper")) {
229 WRITE_ERROR(
"Routing algorithm '" + oc.
getString(
"routing-algorithm") +
"' does not support bulk routing.");
232 if (oc.
isDefault(
"routing-algorithm") && (oc.
isSet(
"astar.all-distances") || oc.
isSet(
"astar.landmark-distances") || oc.
isSet(
"astar.save-landmark-distances"))) {
233 oc.
set(
"routing-algorithm",
"astar");
236 if (oc.
getString(
"route-choice-method") !=
"gawron" && oc.
getString(
"route-choice-method") !=
"logit") {
241 WRITE_WARNING(
"The --logit option is deprecated, please use --route-choice-method logit.");
242 oc.
set(
"route-choice-method",
"logit");
245 if (oc.
isSet(
"output-file") && !oc.
isSet(
"alternatives-output")) {
246 const std::string& filename = oc.
getString(
"output-file");
247 const int len = (int)filename.length();
248 if (len > 4 && filename.substr(len - 4) ==
".xml") {
249 oc.
set(
"alternatives-output", filename.substr(0, len - 4) +
".alt.xml");
250 }
else if (len > 4 && filename.substr(len - 3) ==
".gz") {
251 oc.
set(
"alternatives-output", filename.substr(0, len - 3) +
".alt.gz");
253 WRITE_WARNING(
"Cannot derive file name for alternatives output, skipping it.");
256 if (oc.
getBool(
"write-trips.junctions")) {
258 oc.
set(
"write-trips",
"true");
259 }
else if (!oc.
getBool(
"write-trips")) {
260 WRITE_WARNING(
"Option --write-trips.junctions takes no affect when --write-trips is disabled.");
#define WRITE_WARNING(msg)
std::vector< std::string > StringVector
Definition of a vector of strings.
A storage for options typed value containers)
void addDescription(const std::string &name, const std::string &subtopic, const std::string &description)
Adds a description for an option.
void doRegister(const std::string &name, Option *v)
Adds an option under the given name.
bool isSet(const std::string &name, bool failOnNonExistant=true) const
Returns the information whether the named option is set.
bool set(const std::string &name, const std::string &value)
Sets the given value for the named option.
std::string getString(const std::string &name) const
Returns the string-value of the named option (only for Option_String)
void addSynonyme(const std::string &name1, const std::string &name2, bool isDeprecated=false)
Adds a synonyme for an options name (any order)
bool isDefault(const std::string &name) const
Returns the information whether the named option has still the default value.
void addOptionSubTopic(const std::string &topic)
Adds an option subtopic.
bool getBool(const std::string &name) const
Returns the boolean-value of the named option (only for Option_Bool)
static OptionsCont & getOptions()
Retrieves the options.
void addCallExample(const std::string &example, const std::string &desc)
Add a call example.
static void addImportOptions()
Inserts import options used by duarouter into the OptionsCont-singleton.
static void addDUAOptions()
Inserts dua options used by duarouter into the OptionsCont-singleton.
static void fillOptions()
Inserts options used by duarouter into the OptionsCont-singleton.
static bool checkOptions()
Checks set options from the OptionsCont-singleton for being valid for usage within duarouter.
static bool checkOptions(OptionsCont &oc)
Checks whether options are valid.
static void fillOptions(OptionsCont &oc)
Inserts options used by routing applications into the OptionsCont-singleton.
static void insertRandOptions()
Initialises the given options container with random number options.
Structure representing possible vehicle parameter.
int departLane
(optional) The lane the vehicle shall depart from (index in edge)
ArrivalSpeedDefinition arrivalSpeedProcedure
Information how the vehicle's end speed shall be chosen.
double departSpeed
(optional) The initial speed of the vehicle
static bool parseArrivalLane(const std::string &val, const std::string &element, const std::string &id, int &lane, ArrivalLaneDefinition &ald, std::string &error)
Validates a given arrivalLane value.
ArrivalLaneDefinition arrivalLaneProcedure
Information how the vehicle shall choose the lane to arrive on.
DepartLaneDefinition departLaneProcedure
Information how the vehicle shall choose the lane to depart from.
static bool parseDepartSpeed(const std::string &val, const std::string &element, const std::string &id, double &speed, DepartSpeedDefinition &dsd, std::string &error)
Validates a given departSpeed value.
static bool parseArrivalPos(const std::string &val, const std::string &element, const std::string &id, double &pos, ArrivalPosDefinition &apd, std::string &error)
Validates a given arrivalPos value.
static bool parseArrivalSpeed(const std::string &val, const std::string &element, const std::string &id, double &speed, ArrivalSpeedDefinition &asd, std::string &error)
Validates a given arrivalSpeed value.
double departPos
(optional) The position the vehicle shall depart from
DepartSpeedDefinition departSpeedProcedure
Information how the vehicle's initial speed shall be chosen.
double arrivalPos
(optional) The position the vehicle shall arrive on
static bool parseDepartLane(const std::string &val, const std::string &element, const std::string &id, int &lane, DepartLaneDefinition &dld, std::string &error)
Validates a given departLane value.
ArrivalPosDefinition arrivalPosProcedure
Information how the vehicle shall choose the arrival position.
double arrivalSpeed
(optional) The final speed of the vehicle (not used yet)
static bool parseDepartPos(const std::string &val, const std::string &element, const std::string &id, double &pos, DepartPosDefinition &dpd, std::string &error)
Validates a given departPos value.
DepartPosDefinition departPosProcedure
Information how the vehicle shall choose the departure position.
static void addConfigurationOptions(OptionsCont &oc)
Adds configuration options to the given container.