44import java .io .IOException ;
55import java .util .Collections ;
66
7- import org .eqasim .core .components .raptor .EqasimRaptorConfigGroup ;
7+ import org .eqasim .core .misc .InjectorBuilder ;
8+ import org .eqasim .core .simulation .EqasimConfigurator ;
9+ import org .eqasim .core .simulation .vdf .VDFConfigGroup ;
10+ import org .eqasim .core .simulation .vdf .travel_time .VDFTravelTime ;
811import org .eqasim .server .services .ServiceConfiguration ;
912import org .eqasim .server .services .isochrone .road .RoadIsochroneService ;
1013import org .eqasim .server .services .isochrone .transit .TransitIsochroneService ;
2124import org .matsim .core .network .algorithms .NetworkCleaner ;
2225import org .matsim .core .network .algorithms .TransportModeNetworkFilter ;
2326import org .matsim .core .network .io .MatsimNetworkReader ;
27+ import org .matsim .core .router .util .TravelTime ;
2428import org .matsim .core .scenario .ScenarioUtils ;
29+ import org .matsim .core .trafficmonitoring .FreeSpeedTravelTime ;
2530import org .matsim .pt .transitSchedule .api .TransitScheduleReader ;
2631
2732import com .fasterxml .jackson .core .JsonParseException ;
@@ -49,9 +54,14 @@ public Services build(CommandLine cmd)
4954 ServiceConfiguration .class );
5055 }
5156
52- Config config = ConfigUtils .loadConfig (cmd .getOptionStrict ("config-path" ),
53- new EqasimRaptorConfigGroup ());
57+ EqasimConfigurator configurator = EqasimConfigurator .getInstance (cmd );
58+
59+ Config config = ConfigUtils .loadConfig (cmd .getOptionStrict ("config-path" ));
60+ configurator .updateConfig (config );
61+ cmd .applyConfiguration (config );
62+
5463 Scenario scenario = ScenarioUtils .createScenario (config );
64+ configurator .configureScenario (scenario );
5565
5666 new MatsimNetworkReader (scenario .getNetwork ())
5767 .readURL (ConfigGroup .getInputFileURL (config .getContext (),
@@ -64,17 +74,27 @@ public Services build(CommandLine cmd)
6474 config .transit ().getTransitScheduleFile ()));
6575 }
6676
77+ configurator .adjustScenario (scenario );
78+
6779 Network roadNetwork = NetworkUtils .createNetwork ();
6880 new TransportModeNetworkFilter (scenario .getNetwork ()).filter (roadNetwork , Collections .singleton ("car" ));
6981 new NetworkCleaner ().run (roadNetwork );
7082
83+ TravelTime travelTime = new FreeSpeedTravelTime ();
84+ if (cmd .hasOption ("vdf-path" )) {
85+ VDFConfigGroup vdfConfig = VDFConfigGroup .getOrCreate (config );
86+ vdfConfig .setInputTravelTimesFile (cmd .getOptionStrict ("vdf-path" ));
87+
88+ travelTime = new InjectorBuilder (scenario , configurator ).build ().getInstance (VDFTravelTime .class );
89+ }
90+
7191 final RoadRouterService roadRouterService ;
7292 final RoadIsochroneService roadIsochroneService ;
7393 final TransitRouterService transitRouterService ;
7494 final TransitIsochroneService transitIsochroneService ;
7595
7696 roadRouterService = RoadRouterService .create (config , roadNetwork , configuration .walk ,
77- threads );
97+ threads , travelTime );
7898
7999 roadIsochroneService = RoadIsochroneService .create (config , roadNetwork ,
80100 configuration .walk );
0 commit comments