Skip to content

Commit feb5793

Browse files
authored
feat: write out legs in standalone mode choice (#270)
1 parent 6abc3a3 commit feb5793

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

core/src/main/java/org/eqasim/core/standalone_mode_choice/RunStandaloneModeChoice.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
import org.apache.logging.log4j.Logger;
2222
import org.eqasim.core.analysis.DistanceUnit;
2323
import org.eqasim.core.analysis.PersonAnalysisFilter;
24+
import org.eqasim.core.analysis.legs.LegItem;
25+
import org.eqasim.core.analysis.legs.LegReaderFromPopulation;
26+
import org.eqasim.core.analysis.legs.LegWriter;
2427
import org.eqasim.core.analysis.pt.PublicTransportLegItem;
2528
import org.eqasim.core.analysis.pt.PublicTransportLegReaderFromPopulation;
2629
import org.eqasim.core.analysis.pt.PublicTransportLegWriter;
@@ -247,12 +250,14 @@ RecordedTravelTime provideRecordedTravelTime() {
247250
// We initialize the TripReaderFromPopulation here as we might need it just below
248251
TripReaderFromPopulation tripReader = new TripReaderFromPopulation(Arrays.asList("car,pt".split(",")), injector.getInstance(PersonAnalysisFilter.class), Optional.empty(), Optional.empty());
249252
PublicTransportLegReaderFromPopulation ptLegReader = new PublicTransportLegReaderFromPopulation(injector.getInstance(TransitSchedule.class), injector.getInstance(PersonAnalysisFilter.class));
253+
LegReaderFromPopulation legReader = new LegReaderFromPopulation(Arrays.asList("car", "pt"), injector.getInstance(PersonAnalysisFilter.class), Optional.empty(), Optional.empty());
250254
OutputDirectoryHierarchy outputDirectoryHierarchy = injector.getInstance(OutputDirectoryHierarchy.class);
251255

252256
cmd.getOption(CMD_WRITE_INPUT_CSV).ifPresent(s -> {
253257
if(Boolean.parseBoolean(s)) {
254258
writeTripsCsv(population, outputDirectoryHierarchy.getOutputFilename("input_trips.csv"), tripReader);
255259
writePtLegsCsv(population, outputDirectoryHierarchy.getOutputFilename("input_pt_legs.csv"), ptLegReader);
260+
writeLegsCsv(population, outputDirectoryHierarchy.getOutputFilename("input_legs.csv"), legReader);
256261
}
257262
});
258263

@@ -269,6 +274,7 @@ RecordedTravelTime provideRecordedTravelTime() {
269274
if(Boolean.parseBoolean(s)) {
270275
writeTripsCsv(population, outputDirectoryHierarchy.getOutputFilename("output_trips.csv"), tripReader);
271276
writePtLegsCsv(population, outputDirectoryHierarchy.getOutputFilename("output_pt_legs.csv"), ptLegReader);
277+
writeLegsCsv(population, outputDirectoryHierarchy.getOutputFilename("output_legs.csv"), legReader);
272278
}
273279
});
274280
if(cmd.hasOption(CMD_SIMULATE_AFTER)) {
@@ -320,4 +326,13 @@ private static void writePtLegsCsv(Population population, String filePath, Publi
320326
throw new RuntimeException(e);
321327
}
322328
}
329+
330+
private static void writeLegsCsv(Population population, String filePath, LegReaderFromPopulation legsReader) {
331+
Collection<LegItem> legs = legsReader.readLegs(population);
332+
try {
333+
new LegWriter(legs, DistanceUnit.meter, DistanceUnit.meter).write(filePath);
334+
} catch (IOException e) {
335+
throw new RuntimeException(e);
336+
}
337+
}
323338
}

0 commit comments

Comments
 (0)