Esempio n. 1
0
  @Override
  public void run(final Plan p) {
    PlanImpl plan = (PlanImpl) p;
    double dayTime = 0.0;
    double carDayTime = 0.0;
    double ptDayTime = 0.0;
    double wlkDayTime = 0.0;
    double bikeDayTime = 0.0;
    double othersDayTime = 0.0;
    for (PlanElement pe : plan.getPlanElements())
      if (pe instanceof Leg) {
        Leg bl = (Leg) pe;

        ActTypeZrh legIntent = (ActTypeZrh) this.getLegIntent(plan, bl);

        double time = bl.getTravelTime() / 60.0;
        if (time < 0) time = 0;
        // if (bl.getDepartureTime() < 86400) {
        dayTime += time;
        String mode = bl.getMode();
        if (TransportMode.car.equals(mode)) {
          carTime += time;
          carDayTime += time;
          switch (legIntent) {
            case home:
              carHomeTime += time;
              break;
            case work:
              carWorkTime += time;
              break;
            case education:
              carEducTime += time;
              break;
            case shopping:
              carShopTime += time;
              break;
            case leisure:
              carLeisTime += time;
              break;
            default:
              carOtherTime += time;
              break;
          }
          carLegTimeCounts[Math.min(100, (int) time / 2)]++;
        } else if (TransportMode.pt.equals(mode)) {
          ptTime += time;
          ptDayTime += time;
          switch (legIntent) {
            case home:
              ptHomeTime += time;
              break;
            case work:
              ptWorkTime += time;
              break;
            case education:
              ptEducTime += time;
              break;
            case shopping:
              ptShopTime += time;
              break;
            case leisure:
              ptLeisTime += time;
              break;
            default:
              ptOtherTime += time;
              break;
          }
          ptLegTimeCounts[Math.min(100, (int) time / 2)]++;
        } else if (TransportMode.walk.equals(mode)) {
          wlkTime += time;
          wlkDayTime += time;
          switch (legIntent) {
            case home:
              wlkHomeTime += time;
              break;
            case work:
              wlkWorkTime += time;
              break;
            case education:
              wlkEducTime += time;
              break;
            case shopping:
              wlkShopTime += time;
              break;
            case leisure:
              wlkLeisTime += time;
              break;
            default:
              wlkOtherTime += time;
              break;
          }
          wlkLegTimeCounts[Math.min(100, (int) time / 2)]++;
        } else if (TransportMode.bike.equals(mode)) {
          bikeTime += time;
          bikeDayTime += time;
          switch (legIntent) {
            case home:
              bikeHomeTime += time;
              break;
            case work:
              bikeWorkTime += time;
              break;
            case education:
              bikeEducTime += time;
              break;
            case shopping:
              bikeShopTime += time;
              break;
            case leisure:
              bikeLeisTime += time;
              break;
            default:
              bikeOtherTime += time;
              break;
          }
          bikeLegTimeCounts[Math.min(100, (int) time / 2)]++;
        } else {
          othersTime += time;
          othersDayTime += time;
          switch (legIntent) {
            case home:
              othersHomeTime += time;
              break;
            case work:
              othersWorkTime += time;
              break;
            case education:
              othersEducTime += time;
              break;
            case shopping:
              othersShopTime += time;
              break;
            case leisure:
              othersLeisTime += time;
              break;
            default:
              othersOtherTime += time;
              break;
          }
          othersLegTimeCounts[Math.min(100, (int) time / 2)]++;
        }
      }
    for (int i = 0; i <= Math.min(100, (int) dayTime); i++) totalDayEnRouteTimeCounts[i]++;
    for (int i = 0; i <= Math.min(100, (int) othersDayTime); i++) othersDayEnRouteTimeCounts[i]++;
    for (int i = 0; i <= Math.min(100, (int) carDayTime); i++) carDayEnRouteTimeCounts[i]++;
    for (int i = 0; i <= Math.min(100, (int) ptDayTime); i++) ptDayEnRouteTimeCounts[i]++;
    for (int i = 0; i <= Math.min(100, (int) wlkDayTime); i++) wlkDayEnRouteTimeCounts[i]++;
    for (int i = 0; i <= Math.min(100, (int) bikeDayTime); i++) bikeDayEnRouteTimeCounts[i]++;
  }