private void loadActivityFacilities() { if ((this.config.facilities() != null) && (this.config.facilities().getInputFile() != null)) { URL facilitiesFileName = this.config.facilities().getInputFileURL(config.getContext()); log.info("loading facilities from " + facilitiesFileName); final String inputCRS = config.facilities().getInputCRS(); final String internalCRS = config.global().getCoordinateSystem(); MatsimFacilitiesReader reader = new MatsimFacilitiesReader(inputCRS, internalCRS, this.scenario.getActivityFacilities()); reader.putAttributeConverters(attributeConverters); reader.parse(facilitiesFileName); log.info("loaded " + this.scenario.getActivityFacilities().getFacilities().size() + " facilities from " + facilitiesFileName); } else { log.info("no facilities file set in config, therefore not loading any facilities. This is not a problem except if you are using facilities"); } if ((this.config.facilities() != null) && (this.config.facilities().getInputFacilitiesAttributesFile() != null)) { URL facilitiesAttributesURL = ConfigGroup.getInputFileURL(this.config.getContext(), this.config.facilities().getInputFacilitiesAttributesFile()); log.info("loading facility attributes from " + facilitiesAttributesURL); ObjectAttributesXmlReader reader = new ObjectAttributesXmlReader(this.scenario.getActivityFacilities().getFacilityAttributes()); reader.putAttributeConverters( attributeConverters ); reader.parse(facilitiesAttributesURL); } else { log.info("no facility-attributes file set in config, not loading any facility attributes"); } }
@Test public void testParserWriter1() { Config config = ConfigUtils.createConfig(); TriangleScenario.setUpScenarioConfig(config); Scenario scenario = ScenarioUtils.createScenario(config); ActivityFacilities facilities = scenario.getActivityFacilities(); new MatsimFacilitiesReader(scenario).readFile(config.facilities().getInputFile()); String outputFilename = this.utils.getOutputDirectory() + "output_facilities.xml"; TriangleScenario.writeFacilities(facilities, outputFilename); long checksum_ref = CRCChecksum.getCRCFromFile(config.facilities().getInputFile()); long checksum_run = CRCChecksum.getCRCFromFile(outputFilename); Assert.assertEquals(checksum_ref, checksum_run); }
public static void run(Scenario scenario) { DestinationChoiceContext dcContext = new DestinationChoiceContext(scenario); dcContext.init(); DCScoringFunctionFactory dcScoringFunctionFactory = new DCScoringFunctionFactory(scenario, dcContext); DestinationChoiceConfigGroup dccg = ConfigUtils.addOrGetModule( dcContext.getScenario().getConfig(), DestinationChoiceConfigGroup.class); if (dccg.getPrefsFile() == null && !scenario.getConfig().facilities().getInputFile().equals("null")) { dcScoringFunctionFactory.setUsingConfigParamsForScoring(false); } else { dcScoringFunctionFactory.setUsingConfigParamsForScoring(true); } Controler controler = new Controler(scenario); controler.addControlerListener(new DestinationChoiceInitializer(dcContext)); if (dccg.getRestraintFcnExp() > 0.0 && dccg.getRestraintFcnFactor() > 0.0) { controler.addControlerListener(new FacilitiesLoadCalculator(dcContext.getFacilityPenalties())); } controler.setScoringFunctionFactory(dcScoringFunctionFactory); controler.run(); }
config.network().setInputFile(getAbsolutePath(prefix, config.network().getInputFile())); config.plans().setInputFile(getAbsolutePath(prefix, config.plans().getInputFile())); config.facilities().setInputFile(getAbsolutePath(prefix, config.facilities().getInputFile())); config.counts().setInputFile(getAbsolutePath(prefix, config.counts().getCountsFileName())); config.households().setInputFile(getAbsolutePath(prefix, config.households().getInputFile()));