public void makeMVI(Carriers carriers, String outfile, double snapshotInterval){
OTFFileWriter otfFileWriter = new OTFFileWriter(scenario, outfile);
EventsManager events = EventsUtils.createEventsManager();
CarrierAgentTracker carrierAgentTracker = new CarrierAgentTracker(carriers, scenario.getNetwork(), new CarrierScoringFunctionFactory() {
@Override
public ScoringFunction createScoringFunction(Carrier carrier) {
return getNoScoring();
}
});
CarrierConfig carrierConfig = new CarrierConfig();
carrierConfig.setPhysicallyEnforceTimeWindowBeginnings(true);
FreightQSimFactory mobsimFactory = new FreightQSimFactory(scenario, events, carrierAgentTracker, carrierConfig);
Mobsim mobsim = mobsimFactory.get();
SnapshotGenerator visualizer = new SnapshotGenerator(scenario.getNetwork(), snapshotInterval, scenario.getConfig().qsim());
visualizer.addSnapshotWriter(otfFileWriter);
events.addHandler(visualizer);
mobsim.run();
visualizer.finish();
otfFileWriter.finish();
}