public static void main(String[] args) { Config config; if (args.length == 1) { LOG.info("A user-specified config.xml file was provided. Using it..."); config = ConfigUtils.loadConfig(args[0], new BicycleConfigGroup()); fillConfigWithBicycleStandardValues(config); } else if (args.length == 0) { LOG.info("No config.xml file was provided. Using 'standard' example files given in this contrib's resources folder."); // Setting the context like this works when the data is stored under "/matsim/contribs/bicycle/src/main/resources/bicycle_example" config = ConfigUtils.createConfig("bicycle_example/"); config.addModule(new BicycleConfigGroup()); fillConfigWithBicycleStandardValues(config); config.network().setInputFile("network_lane.xml"); // Modify this config.plans().setInputFile("population_1200.xml"); } else { throw new RuntimeException("More than one argument was provided. There is no procedure for this situation. Thus aborting!" + " Provide either (1) only a suitable config file or (2) no argument at all to run example with given example of resources folder."); } config.controler().setLastIteration(100); // Modify if motorized interaction is used boolean considerMotorizedInteraction = false; new RunBicycleExample().run(config, considerMotorizedInteraction); }
public static void populationWithBDIAttributeExample() { { Config config = ConfigUtils.createConfig() ; Scenario scenario = ScenarioUtils.createScenario( config ) ; Population pop = scenario.getPopulation() ; PopulationFactory pf = pop.getFactory() ; for ( int ii=0 ; ii<10 ; ii++ ) { Person person = pf.createPerson( Id.createPersonId(ii)) ; person.getAttributes().putAttribute("isBDIAgent", true ) ; pop.addPerson(person); } PopulationUtils.writePopulation(pop, "pop.xml"); } { Config config = ConfigUtils.createConfig() ; config.plans().setInputFile("pop.xml"); Scenario scenario = ScenarioUtils.loadScenario( config ) ; for ( Person person : scenario.getPopulation().getPersons().values() ) { final String attribute = (String) person.getAttributes().getAttribute("isBDIAgent"); System.out.println( "id=" + person.getId() + "; isBdi=" + attribute ) ; } } }
config.plans().setInputFile(popFileName);
config.plans().setInputFile( populationFilename ); config.plans().setInputPersonAttributeFile( popAttrFilename ); ConfigUtils.addOrGetModule(config, RoadPricingConfigGroup.GROUP_NAME, RoadPricingConfigGroup.class).setTollLinksFile(tollFilename);
private void evaluate() throws MalformedURLException { Config config = utils.loadConfig(IOUtils.newUrl(utils.classInputResourcePath(), "config.xml")); config.network().setInputFile(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("berlin"), "network.xml.gz").toString()); config.plans().setInputFile(IOUtils.newUrl(utils.classInputResourcePath(), "plans.xml.gz").toString()); Scenario referenceScenario = ScenarioUtils.loadScenario(config); config.plans().setInputFile(new File(utils.getOutputDirectory() + "ITERS/it.1/1.plans.xml.gz").toURI().toURL().toString()); Scenario scenario = ScenarioUtils.loadScenario(config); final boolean isEqual = PopulationUtils.equalPopulation(referenceScenario.getPopulation(), scenario.getPopulation()); if ( !isEqual ) { new PopulationWriter(referenceScenario.getPopulation(), scenario.getNetwork()).write(utils.getOutputDirectory() + "/reference_population.xml.gz"); new PopulationWriter(scenario.getPopulation(), scenario.getNetwork()).write(utils.getOutputDirectory() + "/output_population.xml.gz"); } Assert.assertTrue("different plans files.", isEqual); }
@Test public void testEquilOneAgent() { Map<Id<Vehicle>, Map<Id<Link>, Double>> agentTravelTimes = new HashMap<>(); Config config = ConfigUtils.loadConfig("test/scenarios/equil/config.xml"); MatsimRandom.reset(config.global().getRandomSeed()); Scenario scenario = ScenarioUtils.createScenario(config); String popFileName = "plans1.xml"; config.plans().setInputFile(popFileName); ScenarioUtils.loadScenario(scenario); EventsManager events = EventsUtils.createEventsManager(); events.addHandler(new EventTestHandler(agentTravelTimes)); PrepareForSimUtils.createDefaultPrepareForSim(scenario).run(); new QSimBuilder(scenario.getConfig()) // .useDefaults() // .build(scenario, events) // .run(); Map<Id<Link>, Double> travelTimes = agentTravelTimes.get(Id.create("1", Vehicle.class)); Assert.assertEquals(360.0, travelTimes.get(Id.create(6, Link.class)).intValue(), MatsimTestUtils.EPSILON); Assert.assertEquals(180.0, travelTimes.get(Id.create(15, Link.class)).intValue(), MatsimTestUtils.EPSILON); // this one is NOT a travel time (it includes two activities and a zero-length trip) Assert.assertEquals(13561.0, travelTimes.get(Id.create(20, Link.class)).intValue(), MatsimTestUtils.EPSILON); Assert.assertEquals(360.0, travelTimes.get(Id.create(21, Link.class)).intValue(), MatsimTestUtils.EPSILON); Assert.assertEquals(1260.0, travelTimes.get(Id.create(22, Link.class)).intValue(), MatsimTestUtils.EPSILON); Assert.assertEquals(360.0, travelTimes.get(Id.create(23, Link.class)).intValue(), MatsimTestUtils.EPSILON); }
config.plans().setInputFile(getAbsolutePath(prefix, config.plans().getInputFile())); config.facilities().setInputFile(getAbsolutePath(prefix, config.facilities().getInputFile())); config.counts().setInputFile(getAbsolutePath(prefix, config.counts().getCountsFileName()));
@Test public void test_EquilPopulationPlans1Modified1_TestHandlerDetailedEventChecker() { Config config = ConfigUtils.loadConfig("test/scenarios/equil/config.xml"); config.plans().setInputFile("plans1.xml"); MatsimRandom.reset(config.global().getRandomSeed()); Scenario scenario = ScenarioUtils.createScenario(config); ScenarioUtils.loadScenario(scenario); new EquilPopulationPlans1Modified1().modifyPopulation(scenario.getPopulation()); this.runJDEQSim(scenario); assertEquals(scenario.getPopulation().getPersons().size(), super.eventsByPerson.size()); super.checkAscendingTimeStamps(); super.checkEventsCorrespondToPlans(scenario.getPopulation()); super.compareToDEQSimTravelTimes(utils.getPackageInputDirectory() + "deq_events.txt", 1.0); }
config.controler().setRunId(runId); config.network().setInputFile(runDirectory + runId + ".output_network.xml.gz"); config.plans().setInputFile(runDirectory + runId + ".output_plans.xml.gz"); config.controler().setOutputDirectory(runDirectory);
@Test public void passesVehicleFromOldPlan() { final Config config = ConfigUtils.loadConfig(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("equil"), "config.xml")); config.plans().setInputFile("plans1.xml"); final Scenario scenario = ScenarioUtils.loadScenario(config); com.google.inject.Injector injector = Injector.createInjector(scenario.getConfig(), new AbstractModule() { @Override public void install() { install(new TripRouterModule()); install(new ScenarioByInstanceModule(scenario)); addTravelTimeBinding("car").toInstance(new FreespeedTravelTimeAndDisutility(config.planCalcScore())); addTravelDisutilityFactoryBinding("car").toInstance(new OnlyTimeDependentTravelDisutilityFactory()); } }); TripRouter tripRouter = injector.getInstance(TripRouter.class); PlanRouter testee = new PlanRouter(tripRouter); Plan plan = scenario.getPopulation().getPersons().get(Id.createPersonId(1)).getSelectedPlan(); Id<Vehicle> vehicleId = Id.create(1, Vehicle.class); ((NetworkRoute) TripStructureUtils.getLegs(plan).get(0).getRoute()).setVehicleId(vehicleId); testee.run(plan); if ( !config.plansCalcRoute().isInsertingAccessEgressWalk() ) { Assert.assertEquals("Vehicle Id transferred to new Plan", vehicleId, ((NetworkRoute) TripStructureUtils.getLegs(plan).get(0).getRoute()).getVehicleId()); } else { Assert.assertEquals("Vehicle Id transferred to new Plan", vehicleId, ((NetworkRoute) TripStructureUtils.getLegs(plan).get(1).getRoute()).getVehicleId()); // yy I changed get(0) to get(1) since in the input file there is no intervening walk leg, but in the output there is. kai, feb'16 } }
config.plans().setInputFile(PLANS_FILE_TESTINPUT); new ConfigWriter(config).write(CONFIG_FILE);
private Scenario loadScenario() { Config config = utils.loadConfig(IOUtils.newUrl(utils.classInputResourcePath(), "config.xml")); config.network().setInputFile(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("berlin"), "network.xml.gz").toString()); config.plans().setInputFile(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("berlin"), "plans_hwh_1pct.xml.gz").toString()); config.qsim().setTimeStepSize(10.0); config.qsim().setStuckTime(100.0); config.qsim().setRemoveStuckVehicles(true); config.controler().setEventsFileFormats(EnumSet.of(EventsFileFormat.xml)); config.controler().setLastIteration(1); /* linear interpolate the into time bins aggregated travel time data to avoid artifacts at the boundaries of time bins: * e.g. a first time bin with aggregated travel time of 90 seconds and a second time bin with 45 seconds; time bin size 60; * i.e. consolidateData-method in TravelTimeCalculator will accept this difference; imagine an requested route starting 2 * seconds before the end of the first time bin, another route starts 2 seconds after the start of the second time bin; then * the second one will arrive 41 seconds earlier than the first. Depending on the algorithm, some routers will detect this, * some not (see MATSim-730), which is why we decided to test the linear interpolated travel time data here (which does not * contain this artifacts). theresa, sep'17 * */ config.travelTimeCalculator().setTravelTimeGetterType("linearinterpolation"); /* * The input plans file is not sorted. After switching from TreeMap to LinkedHashMap * to store the persons in the population, we have to sort the population manually. * cdobler, oct'11 */ Scenario scenario = ScenarioUtils.loadScenario(config); PopulationUtils.sortPersons(scenario.getPopulation()); return scenario; }
config.plans().setInputFile(PLANS_FILE_TESTINPUT); new ConfigWriter(config).write(CONFIG_FILE);
config.controler().setWriteEventsInterval(0); config.controler().setWritePlansInterval(0); config.plans().setInputFile("dummy/non-existing/population.xml");
final Config config = utils.loadConfig(IOUtils.newUrl(ExamplesUtils.getTestScenarioURL("equil"), "config.xml")); ConfigUtils.loadConfig(config, IOUtils.newUrl(utils.classInputResourcePath(), "config.xml")); config.plans().setInputFile(IOUtils.newUrl(utils.classInputResourcePath(), "plans2.xml").toString());
config.plans().setInputFile(new File(utils.getOutputDirectory() + "/run1/ITERS/it.10/10.plans.xml.gz").toURI().toURL().toString()); Controler controler2 = new Controler(config); controler2.getConfig().controler().setCreateGraphs(false);
config.controler().setLastIteration(2); config.network().setInputFile(NETWORK_FILENAME); config.plans().setInputFile(PLANS_FILENAME);
config.network().setInputFile("network.xml"); config.network().setLaneDefinitionsFile("testLaneDefinitions_v2.0.xml"); config.plans().setInputFile("population.xml"); config.controler().setOutputDirectory(testUtils.getOutputDirectory() + "output"); final int lastIteration = 50;
config.controler().setLastIteration(lastIteration); config.global().setNumberOfThreads(4); // just use any number > 1 config.plans().setInputFile(IOUtils.newUrl(testUtils.classInputResourcePath(), "plans1.xml").toString());
final String netFile = directory+"/net.xml"; config.plans().setInputFile( plansFile ); config.plans().setInputPersonAttributeFile( attributeFile ); config.network().setInputFile( netFile );