MATSIM
Classes | Public Member Functions | Static Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
org.matsim.pt.counts.PtCountControlerListener Class Reference
Inheritance diagram for org.matsim.pt.counts.PtCountControlerListener:
Inheritance graph
[legend]

Classes

enum  CountType
 

Public Member Functions

void notifyStartup (final StartupEvent controlerStartupEvent)
 
void notifyBeforeMobsim (BeforeMobsimEvent event)
 
void notifyAfterMobsim (AfterMobsimEvent event)
 
void notifyIterationEnds (final IterationEndsEvent event)
 
default double priority ()
 

Static Public Attributes

static final String OPERATION_COMPAREPTCOUNTS = "compare with pt counts"
 

Private Member Functions

boolean isActiveInThisIteration (int iter)
 

Static Private Member Functions

static double [] copyFromIntArray (int[] source)
 

Private Attributes

EventsManager eventsManager
 
OutputDirectoryHierarchy controlerIO
 
IterationStopWatch iterationStopWatch
 
Network network
 
final Config config
 
final Counts boardCounts
 
final OccupancyAnalyzer occupancyAnalyzer
 

Static Private Attributes

static final Logger log = LogManager.getLogger(PtCountControlerListener.class)
 
static final String MODULE_NAME = "ptCounts"
 

Detailed Description

Definition at line 54 of file PtCountControlerListener.java.

Member Function Documentation

◆ notifyStartup()

void org.matsim.pt.counts.PtCountControlerListener.notifyStartup ( final StartupEvent  event)

Notifies all observers that the controler is initialized and they should do the same

Parameters
event

Implements org.matsim.core.controler.listener.StartupListener.

Definition at line 93 of file PtCountControlerListener.java.

References org.matsim.core.config.groups.PtCountsConfigGroup.getAlightCountsFileName(), org.matsim.core.config.groups.PtCountsConfigGroup.getBoardCountsFileName(), org.matsim.core.config.groups.PtCountsConfigGroup.getOccupancyCountsFileName(), and org.matsim.core.config.Config.ptCounts().

93  {
94  PtCountsConfigGroup ptCounts = this.config.ptCounts();
95  String boardCountsFilename = ptCounts.getBoardCountsFileName();
96  String alightCountsFilename = ptCounts.getAlightCountsFileName();
97  String occupancyCountsFilename = ptCounts.getOccupancyCountsFileName();
98  if (boardCountsFilename == null || alightCountsFilename == null || occupancyCountsFilename == null) {
99  throw new RuntimeException("for pt counts, at this point all three files must be given!");
100  }
101  new MatsimCountsReader(this.alightCounts).readFile(alightCountsFilename);
102  new MatsimCountsReader(this.boardCounts).readFile(boardCountsFilename);
103  new MatsimCountsReader(this.occupancyCounts).readFile(occupancyCountsFilename);
104  }
PtCountsConfigGroup ptCounts()
Definition: Config.java:455
Here is the call graph for this function:

◆ notifyBeforeMobsim()

void org.matsim.pt.counts.PtCountControlerListener.notifyBeforeMobsim ( BeforeMobsimEvent  event)

Notifies all observers of the Controler that the mobility simulation will start next.

Parameters
event

Implements org.matsim.core.controler.listener.BeforeMobsimListener.

Definition at line 107 of file PtCountControlerListener.java.

References org.matsim.core.api.experimental.events.EventsManager.addHandler(), org.matsim.pt.counts.PtCountControlerListener.isActiveInThisIteration(), and org.matsim.pt.counts.OccupancyAnalyzer.reset().

107  {
108  int iter = event.getIteration();
109  if ( isActiveInThisIteration( iter ) ) {
110  occupancyAnalyzer.reset(iter);
112  }
113  }
void addHandler(final EventHandler handler)
Here is the call graph for this function:

◆ notifyAfterMobsim()

void org.matsim.pt.counts.PtCountControlerListener.notifyAfterMobsim ( AfterMobsimEvent  event)

Notifies all observers of the Controler that the mobility simulation just finished.

Parameters
event

Implements org.matsim.core.controler.listener.AfterMobsimListener.

Definition at line 116 of file PtCountControlerListener.java.

References org.matsim.core.controler.OutputDirectoryHierarchy.getIterationFilename(), org.matsim.pt.counts.PtCountControlerListener.isActiveInThisIteration(), org.matsim.core.api.experimental.events.EventsManager.removeHandler(), and org.matsim.pt.counts.OccupancyAnalyzer.write().

116  {
117  int it = event.getIteration();
118  if ( isActiveInThisIteration( it ) ) {
120  occupancyAnalyzer.write(controlerIO.getIterationFilename(it, "occupancyAnalysis.txt"));
121  }
122  }
final String getIterationFilename(final int iteration, final String filename)
void removeHandler(final EventHandler handler)
Here is the call graph for this function:

◆ isActiveInThisIteration()

boolean org.matsim.pt.counts.PtCountControlerListener.isActiveInThisIteration ( int  iter)
private

◆ notifyIterationEnds()

void org.matsim.pt.counts.PtCountControlerListener.notifyIterationEnds ( final IterationEndsEvent  event)

Notifies all observers of the Controler that a iteration is finished

Parameters
event

Implements org.matsim.core.controler.listener.IterationEndsListener.

Definition at line 129 of file PtCountControlerListener.java.

References org.matsim.pt.counts.PtCountControlerListener.CountType.Alighting, org.matsim.analysis.IterationStopWatch.beginOperation(), org.matsim.pt.counts.PtCountControlerListener.boardCounts, org.matsim.pt.counts.PtCountControlerListener.CountType.Boarding, org.matsim.pt.counts.PtCountControlerListener.copyFromIntArray(), org.matsim.analysis.IterationStopWatch.endOperation(), org.matsim.core.config.Config.findParam(), org.matsim.pt.counts.OccupancyAnalyzer.getAlightVolumesForStop(), org.matsim.pt.counts.OccupancyAnalyzer.getBoardVolumesForStop(), org.matsim.counts.algorithms.CountsComparisonAlgorithm.getComparison(), org.matsim.core.controler.OutputDirectoryHierarchy.getIterationFilename(), org.matsim.pt.counts.OccupancyAnalyzer.getOccupancyVolumesForStop(), org.matsim.core.config.Config.getParam(), org.matsim.pt.counts.PtCountControlerListener.isActiveInThisIteration(), org.matsim.pt.counts.PtCountControlerListener.network, and org.matsim.pt.counts.PtCountControlerListener.CountType.Occupancy.

129  {
130  int iter = event.getIteration();
131  if ( isActiveInThisIteration( iter ) ) {
132 
134 
135  double countsScaleFactor = Double.parseDouble(this.config.getParam(MODULE_NAME, "countsScaleFactor"));
136 
137  Map<CountType,CountsComparisonAlgorithm> cca = new HashMap<CountType,CountsComparisonAlgorithm>();
138  cca.put( CountType.Boarding, new CountsComparisonAlgorithm(new CountsComparisonAlgorithm.VolumesForId() {
139 
140  @Override
141  public double[] getVolumesForStop(Id<TransitStopFacility> locationId) {
143  }
144  }, this.boardCounts, network, countsScaleFactor)) ;
145  cca.put( CountType.Alighting, new CountsComparisonAlgorithm(new CountsComparisonAlgorithm.VolumesForId() {
146 
147  @Override
148  public double[] getVolumesForStop(Id<TransitStopFacility> locationId) {
150  }
151  }, this.alightCounts, network, countsScaleFactor) ) ;
152  cca.put( CountType.Occupancy, new CountsComparisonAlgorithm(new CountsComparisonAlgorithm.VolumesForId() {
153 
154  @Override
155  public double[] getVolumesForStop(Id<TransitStopFacility> locationId) {
157  }
158  }, this.occupancyCounts, network, countsScaleFactor) ) ;
159 
160  String distanceFilterStr = this.config.findParam(MODULE_NAME, "distanceFilter");
161  String distanceFilterCenterNodeId = this.config.findParam(MODULE_NAME, "distanceFilterCenterNode");
162 
163  if ((distanceFilterStr != null) && (distanceFilterCenterNodeId != null)) {
164 
165 
166  for ( CountsComparisonAlgorithm algo : cca.values() ) {
167  algo.setCountCoordUsingDistanceFilter(Double.parseDouble(distanceFilterStr), distanceFilterCenterNodeId) ;
168  }
169  }
170  for ( CountsComparisonAlgorithm algo : cca.values() ) {
171  algo.setCountsScaleFactor(countsScaleFactor);
172  algo.run();
173  }
174 
175  String outputFormat = this.config.findParam(MODULE_NAME, "outputformat");
176  if (outputFormat.contains("txt") || outputFormat.contains("all")) {
177  for ( Entry<CountType,CountsComparisonAlgorithm> entry : cca.entrySet() ) {
178  CountsComparisonAlgorithm algo = entry.getValue() ;
179  new PtCountSimComparisonTableWriter(algo.getComparison()).write(controlerIO.getIterationFilename(iter, "simCountCompare" + entry.getKey().toString() + ".txt"));
180  }
181  }
182 
184  }
185  }
final String getParam(final String moduleName, final String paramName)
Definition: Config.java:322
final String getIterationFilename(final int iteration, final String filename)
void endOperation(final String identifier)
final String findParam(final String moduleName, final String paramName)
Definition: Config.java:350
int [] getOccupancyVolumesForStop(final Id< TransitStopFacility > stopId)
int [] getAlightVolumesForStop(final Id< TransitStopFacility > stopId)
void beginOperation(final String identifier)
int [] getBoardVolumesForStop(final Id< TransitStopFacility > stopId)
Here is the call graph for this function:

◆ copyFromIntArray()

static double [] org.matsim.pt.counts.PtCountControlerListener.copyFromIntArray ( int []  source)
staticprivate

Definition at line 187 of file PtCountControlerListener.java.

Referenced by org.matsim.pt.counts.PtCountControlerListener.notifyIterationEnds().

187  {
188  double[] dest = new double[source.length];
189  for(int i=0; i<source.length; i++) {
190  dest[i] = source[i];
191  }
192  return dest;
193  }

◆ priority()

default double org.matsim.core.controler.listener.ControlerListener.priority ( )
inherited

Member Data Documentation

◆ eventsManager

EventsManager org.matsim.pt.counts.PtCountControlerListener.eventsManager
private

Definition at line 57 of file PtCountControlerListener.java.

◆ controlerIO

OutputDirectoryHierarchy org.matsim.pt.counts.PtCountControlerListener.controlerIO
private

Definition at line 58 of file PtCountControlerListener.java.

◆ iterationStopWatch

IterationStopWatch org.matsim.pt.counts.PtCountControlerListener.iterationStopWatch
private

Definition at line 59 of file PtCountControlerListener.java.

◆ network

Network org.matsim.pt.counts.PtCountControlerListener.network
private

◆ log

final Logger org.matsim.pt.counts.PtCountControlerListener.log = LogManager.getLogger(PtCountControlerListener.class)
staticprivate

Definition at line 64 of file PtCountControlerListener.java.

◆ OPERATION_COMPAREPTCOUNTS

final String org.matsim.pt.counts.PtCountControlerListener.OPERATION_COMPAREPTCOUNTS = "compare with pt counts"
static

Definition at line 69 of file PtCountControlerListener.java.

◆ MODULE_NAME

final String org.matsim.pt.counts.PtCountControlerListener.MODULE_NAME = "ptCounts"
staticprivate

Definition at line 71 of file PtCountControlerListener.java.

◆ config

final Config org.matsim.pt.counts.PtCountControlerListener.config
private

Definition at line 74 of file PtCountControlerListener.java.

◆ boardCounts

final Counts org.matsim.pt.counts.PtCountControlerListener.boardCounts
private

◆ occupancyAnalyzer

final OccupancyAnalyzer org.matsim.pt.counts.PtCountControlerListener.occupancyAnalyzer
private

Definition at line 76 of file PtCountControlerListener.java.


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