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);
  }
Ejemplo n.º 4
0
 public StatsWriter(final Controler c) {
   io = c.getControlerIO();
 }