private void exportPopulation() { String filename = this.outFileRoot + this.modulePrefix + ExternalInFileName; PopulationWriter plansWriter = new PopulationWriter(exportPopulation, scenario.getNetwork()); plansWriter.write(filename); }
public static final void writePlans(Population plans, Network network, String filename) { System.out.println(" writing plans xml file... "); new PopulationWriter(plans, network).write(filename); System.out.println(" done."); }
@Override public void writeExperiencedPlans(String iterationFilename) { // finishIteration(); // already called somewhere else in pgm flow. Population tmpPop = PopulationUtils.createPopulation(config); for (Map.Entry<Id<Person>, Plan> entry : this.agentRecords.entrySet()) { Person person = PopulationUtils.getFactory().createPerson(entry.getKey()); Plan plan = entry.getValue(); person.addPlan(plan); tmpPop.addPerson(person); } new PopulationWriter(tmpPop, null).write(iterationFilename); // I removed the "V5" here in the assumption that it is better to move along with future format changes. If this is // undesired, please change back but could you then please also add a comment why you prefer this. Thanks. // kai, jan'16 } @Override
@Override public void writeExecutedPlans(String outputFile) { final Config config = scenario.getConfig(); final String inputCRS = config.plans().getInputCRS(); final String internalCRS = config.global().getCoordinateSystem(); if ( inputCRS == null ) { new PopulationWriter(experiencedPopulation, scenario.getNetwork()).write(outputFile); } else { log.info( "re-projecting \"experienced\" population from "+internalCRS+" to "+inputCRS+" for export" ); final CoordinateTransformation transformation = TransformationFactory.getCoordinateTransformation( internalCRS, inputCRS ); new PopulationWriter(transformation, experiencedPopulation, scenario.getNetwork()).write(outputFile); } }
@Override public boolean invoke() { Population inPopulation = loadPopulation(outputDirectoryHierarchy.getTempPath()+"/test_plans.in.xml"); new PopulationWriter(inPopulation).write(outputDirectoryHierarchy.getTempPath()+"/test_plans.out.xml"); return true; } }, "test", outputDirectoryHierarchy, scenario);
@Override public void notifyBeforeMobsim(final BeforeMobsimEvent event) { final boolean writingPlansAtAll = writePlansInterval > 0; final boolean regularWritePlans = writingPlansAtAll && (event.getIteration()>0 && event.getIteration() % writePlansInterval== 0); final boolean earlyIteration = event.getIteration() <= writeMoreUntilIteration ; if ( writingPlansAtAll && (regularWritePlans || earlyIteration) ) { stopwatch.beginOperation("dump all plans"); log.info("dumping plans..."); final String inputCRS = config.plans().getInputCRS(); final String internalCRS = config.global().getCoordinateSystem(); if ( inputCRS == null ) { new PopulationWriter(population, network).write(controlerIO.getIterationFilename(event.getIteration(), Controler.FILENAME_POPULATION)); } else { log.info( "re-projecting population from "+internalCRS+" back to "+inputCRS+" for export" ); final CoordinateTransformation transformation = TransformationFactory.getCoordinateTransformation( internalCRS, inputCRS ); new PopulationWriter(transformation, population, network).write(controlerIO.getIterationFilename(event.getIteration(), Controler.FILENAME_POPULATION)); } log.info("finished plans dump."); stopwatch.endOperation("dump all plans"); } }
@Override public boolean invoke() { Population inPopulation = loadPopulation(outputDirectoryHierarchy.getTempPath()+"/test_plans.in.xml"); for (Person person : inPopulation.getPersons().values()) { person.getSelectedPlan().getPlanElements().clear(); } new PopulationWriter(inPopulation).write(outputDirectoryHierarchy.getTempPath()+"/test_plans.out.xml"); return true; } }, "test", outputDirectoryHierarchy, scenario);
private void dumpPlans() { // dump plans final PopulationWriter writer = new PopulationWriter(population, network); writer.putAttributeConverters( attributeConverters ); writer.write(controlerIO.getOutputFilename(Controler.OUTPUT_PREFIX + Controler.FILENAME_POPULATION)); final ObjectAttributes personAttributes = population.getPersonAttributes(); if ( personAttributes!=null ) { ObjectAttributesXmlWriter attributesXmlWriter = new ObjectAttributesXmlWriter(personAttributes) ; attributesXmlWriter.setPrettyPrint(true); attributesXmlWriter.putAttributeConverters( attributeConverters ); attributesXmlWriter.writeFile( controlerIO.getOutputFilename(Controler.OUTPUT_PREFIX + Controler.FILENAME_PERSON_ATTRIBUTES ) ); } }
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); }
new PopulationWriter(population, network).write(PLANS_FILE_TESTINPUT);
new PopulationWriter(population, network).write(PLANS_FILE_TESTINPUT);
new PopulationWriter(population, scenario.getNetwork()).write("input/usecases/chessboard/passenger/passengerPlansV2.xml");
writer.write(this.getOutputDirectory() + populationFile); File outfile = new File(this.getOutputDirectory() + populationFile); assertTrue(outfile.exists());
private void doTest(final RouterProvider provider) { // final Config config = loadConfig("test/input/" + this.getClass().getCanonicalName().replace('.', '/') + "/config.xml"); final Config config = ConfigUtils.loadConfig( utils.getClassInputDirectory() + "/config.xml" ); final Scenario scenario = ScenarioUtils.createScenario(config); new MatsimNetworkReader(scenario.getNetwork()).readFile(config.network().getInputFile()); // final String inPlansName = "test/input/" + this.getClass().getCanonicalName().replace('.', '/') + "/plans.xml.gz"; final String inPlansName = utils.getClassInputDirectory() + "/plans.xml.gz" ; new PopulationReader(scenario).readFile(inPlansName); calcRoute(provider, scenario); final Scenario referenceScenario = ScenarioUtils.createScenario(config); new MatsimNetworkReader(referenceScenario.getNetwork()).readFile(config.network().getInputFile()); new PopulationReader(referenceScenario).readFile(inPlansName); final boolean isEqual = PopulationUtils.equalPopulation(referenceScenario.getPopulation(), scenario.getPopulation()); if ( !isEqual ) { new PopulationWriter(referenceScenario.getPopulation(), scenario.getNetwork()).write(this.utils.getOutputDirectory() + "/reference_population.xml.gz"); new PopulationWriter(scenario.getPopulation(), scenario.getNetwork()).write(this.utils.getOutputDirectory() + "/output_population.xml.gz"); } Assert.assertTrue("different plans files.", isEqual); }