MATSIM
TransitRouterConfig.java
Go to the documentation of this file.
1 /* *********************************************************************** *
2  * project: org.matsim.*
3  * TransitRouterConfig.java
4  * *
5  * *********************************************************************** *
6  * *
7  * copyright : (C) 2009 by the members listed in the COPYING, *
8  * LICENSE and WARRANTY file. *
9  * email : info at matsim dot org *
10  * *
11  * *********************************************************************** *
12  * *
13  * This program is free software; you can redistribute it and/or modify *
14  * it under the terms of the GNU General Public License as published by *
15  * the Free Software Foundation; either version 2 of the License, or *
16  * (at your option) any later version. *
17  * See also COPYING, LICENSE and WARRANTY file *
18  * *
19  * *********************************************************************** */
20 
21 package org.matsim.pt.router;
22 
23 import org.apache.logging.log4j.LogManager;
24 import org.apache.logging.log4j.Logger;
27 import org.matsim.core.config.Config;
32 import org.matsim.core.gbl.Gbl;
34 
42 public class TransitRouterConfig implements MatsimParameters {
43  private static final Logger log = LogManager.getLogger( TransitRouterConfig.class ) ;
44 
49  private double searchRadius = 1000.0;
50 
61  private double extensionRadius = 200.0;
62 
73  private double beelineWalkConnectionDistance = 100.0;
74 
83  private double additionalTransferTime = 0.0;
84 
85  private double beelineWalkSpeed; // meter / second
86 
88 
90 
92 
94 
96 
97  private double utilityOfLineSwitch_utl;
98 
99  private Double beelineDistanceFactor;
100 
101  private final double directWalkFactor ;
102 
103  private boolean cacheTree;
104 
105  public TransitRouterConfig(final Config config) {
106  this(config.scoring(), config.routing(), config.transitRouter(), config.vspExperimental());
107  }
108 
109  public TransitRouterConfig(final ScoringConfigGroup pcsConfig, final RoutingConfigGroup routingConfig,
110  final TransitRouterConfigGroup trConfig, final VspExperimentalConfigGroup vspConfig )
111  {
112  pcsConfig.setLocked(); routingConfig.setLocked() ; trConfig.setLocked() ; vspConfig.setLocked() ;
113 
114  if (pcsConfig.getScoringParametersPerSubpopulation().size()>1){
115  LogManager.getLogger(getClass()).warn("More than one subpopulation is used in plansCalcScore. "
116  + "This is not currently implemented in the TransitRouter (but should work for scoring),"
117  + " so the values for the \"default\" subpopulation will be used. (jb, Feb 2018)");
118  }
119 
120  // walk:
121  {
123  if ( params==null ) {
124  params = routingConfig.getTeleportedModeParams().get( TransportMode.non_network_walk );
125  }
126  if ( params==null ) {
127  params = routingConfig.getTeleportedModeParams().get( TransportMode.walk) ;
128  }
129  if ( params==null ) {
130  log.error( "teleported mode params do not exist for " + TransportMode.transit_walk + ", " + TransportMode.non_network_walk + ", nor "
131  + TransportMode.walk + ". At least one of them needs to be defined for TransitRouterConfig. Aborting ...");
132  // yyyy I do not know which of this is conceptually the correct one. It should _not_ be walk since that may be routed on the network, see below. kai, mar'25
133  }
134  Gbl.assertNotNull( params );
135  this.beelineDistanceFactor = params.getBeelineDistanceFactor();
136  this.beelineWalkSpeed = params.getTeleportedModeSpeed() / beelineDistanceFactor;
137  }
138  // yyyyyy the two above need to be moved away from walk since otherwise one is not able to move walk routing to network routing!!!!!! Now trying access_walk ... kai,
139  // apr'19
140 
141  this.marginalUtilityOfTravelTimeWalk_utl_s = pcsConfig.getModes().get(TransportMode.walk).getMarginalUtilityOfTraveling() /3600.0 - pcsConfig.getPerforming_utils_hr()/3600. ;
142 
143  this.marginalUtilityOfTravelDistanceWalk_utl_m = pcsConfig.getMarginalUtilityOfMoney() *
144  pcsConfig.getModes().get(TransportMode.walk).getMonetaryDistanceRate() +
145  pcsConfig.getModes().get(TransportMode.walk).getMarginalUtilityOfDistance();
146 
147  // pt:
148  this.marginalUtilityOfTravelTimeTransit_utl_s = pcsConfig.getModes().get(TransportMode.pt).getMarginalUtilityOfTraveling() /3600.0 - pcsConfig.getPerforming_utils_hr()/3600. ;
149 
150  this.marginalUtilityOfTravelDistanceTransit_utl_m = pcsConfig.getMarginalUtilityOfMoney() *
151  pcsConfig.getModes().get(TransportMode.pt).getMonetaryDistanceRate() +
152  pcsConfig.getModes().get(TransportMode.pt).getMarginalUtilityOfDistance();
153 
154  this.marginalUtilityOfWaitingPt_utl_s = pcsConfig.getMarginalUtlOfWaitingPt_utils_hr() / 3600.0 - pcsConfig.getPerforming_utils_hr()/3600. ;
155 
156  this.utilityOfLineSwitch_utl = pcsConfig.getUtilityOfLineSwitch();
157 
158  // router:
159  this.setSearchRadius(trConfig.getSearchRadius());
160  this.setExtensionRadius(trConfig.getExtensionRadius());
163  this.directWalkFactor = trConfig.getDirectWalkFactor() ;
164  this.cacheTree = trConfig.isCacheTree();
165  }
166 
167  public void setUtilityOfLineSwitch_utl(final double utilityOfLineSwitch_utl_sec) {
168  this.utilityOfLineSwitch_utl = utilityOfLineSwitch_utl_sec;
169  }
170 
176  public double getUtilityOfLineSwitch_utl() {
177  return this.utilityOfLineSwitch_utl;
178  }
179 
180  public void setMarginalUtilityOfTravelTimeWalk_utl_s(final double marginalUtilityOfTravelTimeWalk_utl_s) {
181  this.marginalUtilityOfTravelTimeWalk_utl_s = marginalUtilityOfTravelTimeWalk_utl_s;
182  }
183 
186  }
187 
188  public void setMarginalUtilityOfTravelTimePt_utl_s(final double marginalUtilityOfTravelTimeTransit_utl_s) {
189  this.marginalUtilityOfTravelTimeTransit_utl_s = marginalUtilityOfTravelTimeTransit_utl_s;
190  }
191 
192  public void setMarginalUtilityOfTravelDistanceWalk_utl_m(final double marginalUtilityOfTravelDistanceWalk_utl_m) {
193  this.marginalUtilityOfTravelDistanceWalk_utl_m = marginalUtilityOfTravelDistanceWalk_utl_m;
194  }
195 
201  }
202 
203  public void setMarginalUtilityOfTravelDistancePt_utl_m(final double marginalUtilityOfTravelDistanceTransit_utl_m) {
204  this.marginalUtilityOfTravelDistanceTransit_utl_m = marginalUtilityOfTravelDistanceTransit_utl_m;
205  }
206 
209  }
210 
211  public void setMarginalUtilityOfWaitingPt_utl_s(final double effectiveMarginalUtilityOfWaiting_utl_s) {
212  this.marginalUtilityOfWaitingPt_utl_s = effectiveMarginalUtilityOfWaiting_utl_s;
213  }
214 
221  }
222 
225  }
226 
227  public void setBeelineWalkSpeed(final double beelineWalkSpeed) {
228  this.beelineWalkSpeed = beelineWalkSpeed;
229  }
230 
234  public double getBeelineWalkSpeed() {
235  return this.beelineWalkSpeed;
236  }
237 
238  public double getSearchRadius() {
239  return searchRadius;
240  }
241 
242  public void setSearchRadius(double searchRadius) {
243  this.searchRadius = searchRadius;
244  }
245 
246  public double getExtensionRadius() {
247  return extensionRadius;
248  }
249 
250  public void setExtensionRadius(double extensionRadius) {
251  this.extensionRadius = extensionRadius;
252  }
253 
256  }
257 
258  public void setBeelineWalkConnectionDistance(double beelineWalkConnectionDistance) {
259  this.beelineWalkConnectionDistance = beelineWalkConnectionDistance;
260  }
261 
262  public double getAdditionalTransferTime() {
263  return additionalTransferTime;
264  }
265 
266  public void setAdditionalTransferTime(double additionalTransferTime) {
267  this.additionalTransferTime = additionalTransferTime;
268  }
269 
270  public final Double getBeelineDistanceFactor() {
271  return this.beelineDistanceFactor;
272  }
273 
274  public double getDirectWalkFactor() {
275  return this.directWalkFactor ;
276  }
277 
278  public boolean isCacheTree() {
279  return cacheTree;
280  }
281 
282  public void setCacheTree(boolean cacheTree) {
283  this.cacheTree = cacheTree;
284  }
285 }
void setMarginalUtilityOfTravelTimeWalk_utl_s(final double marginalUtilityOfTravelTimeWalk_utl_s)
TransitRouterConfigGroup transitRouter()
Definition: Config.java:455
void setMarginalUtilityOfTravelDistanceWalk_utl_m(final double marginalUtilityOfTravelDistanceWalk_utl_m)
final ScoringConfigGroup scoring()
Definition: Config.java:407
void setUtilityOfLineSwitch_utl(final double utilityOfLineSwitch_utl_sec)
void setMarginalUtilityOfWaitingPt_utl_s(final double effectiveMarginalUtilityOfWaiting_utl_s)
void setExtensionRadius(double extensionRadius)
VspExperimentalConfigGroup vspExperimental()
Definition: Config.java:443
void setAdditionalTransferTime(double additionalTransferTime)
static void assertNotNull(Object obj)
Definition: Gbl.java:212
RoutingConfigGroup routing()
Definition: Config.java:439
void setBeelineWalkConnectionDistance(double beelineWalkConnectionDistance)
Map< String, TeleportedModeParams > getTeleportedModeParams()
void setBeelineWalkSpeed(final double beelineWalkSpeed)
void setMarginalUtilityOfTravelDistancePt_utl_m(final double marginalUtilityOfTravelDistanceTransit_utl_m)
void setMarginalUtilityOfTravelTimePt_utl_s(final double marginalUtilityOfTravelTimeTransit_utl_s)
TransitRouterConfig(final ScoringConfigGroup pcsConfig, final RoutingConfigGroup routingConfig, final TransitRouterConfigGroup trConfig, final VspExperimentalConfigGroup vspConfig)
Map< String, ScoringParameterSet > getScoringParametersPerSubpopulation()