protected void write( final OccupancyAnalyzer ocupAnalizer, final int itNum, final boolean stopZoneConversion) { PtCountComparisonAlgorithm4confTimeBinSize ccaOccupancy = new PtCountComparisonAlgorithm4confTimeBinSize(ocupAnalizer, occupCounts, net, scalefactor); ccaOccupancy.calculateComparison(); // set and use kml writter Config config = controler.getConfig(); PtCountSimComparisonKMLWriter kmlWriter = new PtCountSimComparisonKMLWriter( ccaOccupancy.getComparison(), ccaOccupancy.getComparison(), ccaOccupancy.getComparison(), TransformationFactory.getCoordinateTransformation( config.global().getCoordinateSystem(), TransformationFactory.WGS84), occupCounts, occupCounts, occupCounts); kmlWriter.setIterationNumber(itNum); // write counts comparison String kmlFile; String ocuppCompTxtFile; String outDir; if (controler.getControlerIO() != null) { kmlFile = controler.getControlerIO().getIterationFilename(itNum, kmzFile); ocuppCompTxtFile = controler.getControlerIO().getIterationFilename(itNum, txtCompFile); outDir = controler.getControlerIO().getIterationPath(itNum) + S; } else { // <-it happens when this method is invoked outside a simulation run outDir = controler.getConfig().controler().getOutputDirectory() + ITERS + itNum + SL + itNum + PNT; kmlFile = outDir + kmzFile; ocuppCompTxtFile = outDir + txtCompFile; } kmlWriter.writeFile(kmlFile); ccaOccupancy.write(ocuppCompTxtFile); //// extract the specific plot in the iteration folder String plotName = (stopZoneConversion) ? STR_HOUROCCUPPLOT : STR_ERRPLOT; KMZ_Extractor extractor = new KMZ_Extractor(kmlFile, outDir); extractor.extractFile(plotName); log.info(kmlFile + strDONE); plotName = null; extractor = null; outDir = null; kmlFile = null; ccaOccupancy = null; kmlWriter = null; }
public void writeOutParkingOccupancySumPng(Controler controler, int iteration) { String fileName = controler .getControlerIO() .getIterationFilename(iteration, "parkingOccupancyAllParking.png"); double matrix[][] = new double[96][1]; String title = "parked vehicles at all parkings in the simulation"; String xLabel = "time"; String yLabel = "number of vehicles parked"; String[] seriesLabels = {"all parking occupancy"}; double[] xValues = new double[96]; for (int i = 0; i < 96; i++) { xValues[i] = i * 0.25; } for (Id parkingFacilityId : parkingOccupancies.keySet()) { int[] occupancy = parkingOccupancies.get(parkingFacilityId).getOccupancy(); for (int i = 0; i < 96; i++) { matrix[i][0] += occupancy[i]; } } GeneralLib.writeGraphic(fileName, matrix, title, xLabel, yLabel, seriesLabels, xValues); }
public void writeOutParkingOccupanciesTxt( Controler controler, IntegerValueHashMap<Id> facilityCapacities, int iteration) { String iterationFilename = controler.getControlerIO().getIterationFilename(iteration, "parkingOccupancy.txt"); ArrayList<String> list = new ArrayList<String>(); // create header line StringBuffer row = new StringBuffer("name\tcapacity"); for (int i = 0; i < 96; i++) { row.append("\t"); row.append("bin-" + i); } list.add(row.toString()); // content for (Id parkingFacilityId : parkingOccupancies.keySet()) { ParkingOccupancyBins parkingOccupancyBins = parkingOccupancies.get(parkingFacilityId); row = new StringBuffer(parkingFacilityId.toString()); row.append("\t"); row.append(facilityCapacities.get(parkingFacilityId)); for (int i = 0; i < 96; i++) { row.append("\t"); row.append(parkingOccupancyBins.getOccupancy(i * 900)); } list.add(row.toString()); } GeneralLib.writeList(list, iterationFilename); }
public StatsWriter(final Controler c) { io = c.getControlerIO(); }