MATSIM
Static Public Member Functions | Static Private Member Functions | List of all members
tutorial.programming.example21tutorialTUBclass.transit.TransitScheduleModifier Class Reference

Static Public Member Functions

static void main (String[] args)
 

Static Private Member Functions

static Id< VehiclegetNextTransitVehicle (Id< Vehicle > currentTransitVehicle)
 

Detailed Description

Author
jbischoff This example teaches how to modify a transit schedule. More precisely, it modifies the headway of a given line.

Definition at line 36 of file TransitScheduleModifier.java.

Member Function Documentation

static void tutorial.programming.example21tutorialTUBclass.transit.TransitScheduleModifier.main ( String[]  args)
static

Definition at line 38 of file TransitScheduleModifier.java.

References org.matsim.pt.transitSchedule.api.TransitRoute.addDeparture(), org.matsim.pt.transitSchedule.api.TransitLine.addRoute(), org.matsim.pt.transitSchedule.api.TransitScheduleFactory.createDeparture(), org.matsim.pt.transitSchedule.api.TransitScheduleFactory.createTransitRoute(), org.matsim.pt.transitSchedule.api.TransitRoute.getDepartures(), org.matsim.pt.transitSchedule.api.Departure.getDepartureTime(), org.matsim.pt.transitSchedule.api.TransitSchedule.getFactory(), tutorial.programming.example21tutorialTUBclass.transit.TransitScheduleModifier.getNextTransitVehicle(), org.matsim.pt.transitSchedule.api.TransitRoute.getRoute(), org.matsim.pt.transitSchedule.api.TransitLine.getRoutes(), org.matsim.pt.transitSchedule.api.TransitRoute.getStops(), org.matsim.pt.transitSchedule.api.TransitSchedule.getTransitLines(), org.matsim.api.core.v01.Scenario.getTransitSchedule(), org.matsim.pt.transitSchedule.api.TransitRoute.getTransportMode(), org.matsim.pt.transitSchedule.api.Departure.getVehicleId(), org.matsim.core.config.ConfigUtils.loadConfig(), org.matsim.core.scenario.ScenarioUtils.loadScenario(), org.matsim.pt.transitSchedule.api.TransitLine.removeRoute(), and org.matsim.pt.transitSchedule.api.Departure.setVehicleId().

38  {
39  Scenario scenario = ScenarioUtils.loadScenario(ConfigUtils.loadConfig("input/hapt/config.xml"));
40 
41  Id<TransitLine> lineNo = Id.create("1", TransitLine.class);
42  TransitLine line1 = scenario.getTransitSchedule().getTransitLines().get(lineNo);
43  Id<TransitRoute> routeNo = Id.create("1", TransitRoute.class);
44  TransitRoute route1 = line1.getRoutes().get(routeNo);
45  System.out.println(route1.getRoute());
46  TransitScheduleFactory transitScheduleFactory = scenario.getTransitSchedule().getFactory();
47  TransitRoute route1a = transitScheduleFactory.createTransitRoute(Id.create("1a",TransitRoute.class), route1.getRoute(), route1.getStops(), route1.getTransportMode());
48  Departure lastDeparture = null;
49  int i = 0;
50  for (Departure currentDeparture : route1.getDepartures().values()){
51  double newDepartureTime = currentDeparture.getDepartureTime()-i*5*60;
52  Departure newDeparture = transitScheduleFactory.createDeparture(Id.create("1_"+newDepartureTime, Departure.class), newDepartureTime);
53  newDeparture.setVehicleId(currentDeparture.getVehicleId());
54  route1a.addDeparture(newDeparture);
55  lastDeparture = newDeparture;
56  System.out.println(lastDeparture);
57  i++;
58  }
59  Id<Vehicle> lastTransitVehicle = lastDeparture.getVehicleId();
60 
61 
62  for (double j = lastDeparture.getDepartureTime()+15*60; j < 22*3600; j = j+15*60){
63  Id<Departure> departureId = Id.create("1_"+j, Departure.class);
64  Departure nextDeparture = transitScheduleFactory.createDeparture(departureId, j);
65  Id<Vehicle> nextTransitVehicle =getNextTransitVehicle(lastTransitVehicle);
66  lastTransitVehicle = nextTransitVehicle;
67  nextDeparture.setVehicleId(nextTransitVehicle);
68  route1a.addDeparture(nextDeparture);
69  System.out.println(lastDeparture);
70  lastDeparture = nextDeparture;
71  }
72 
73  line1.removeRoute(route1);
74  line1.addRoute(route1a);
75 
76  new TransitScheduleWriter(scenario.getTransitSchedule()).writeFile("input/hapt/newschedule.xml");
77 
78 
79  }
static Id< Vehicle > getNextTransitVehicle(Id< Vehicle > currentTransitVehicle)

Here is the call graph for this function:

static Id<Vehicle> tutorial.programming.example21tutorialTUBclass.transit.TransitScheduleModifier.getNextTransitVehicle ( Id< Vehicle currentTransitVehicle)
staticprivate

Definition at line 80 of file TransitScheduleModifier.java.

Referenced by tutorial.programming.example21tutorialTUBclass.transit.TransitScheduleModifier.main().

80  {
81  String[] vehicle = currentTransitVehicle.toString().split("_");
82  String line = vehicle[0];
83  String lastVehicleNo = vehicle[1];
84  int lastVehicle = Integer.parseInt(lastVehicleNo);
85  lastVehicle++;
86  if (lastVehicle == 5) {
87  lastVehicle = 0;
88  }
89  Id<Vehicle> nextVehicle = Id.create(line+"_"+lastVehicle, Vehicle.class);
90  return nextVehicle;
91  }

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