@Override public void handleEvent(ActivityStartEvent event) { TravellerChain chain = chains.get(event.getPersonId()); if (!event.getActType().equals(PtConstants.TRANSIT_ACTIVITY_TYPE)) { if (chain == null) { chain = new TravellerChain(); chains.put(event.getPersonId(), chain); chain.distances.add(0.0); chain.modes.add("walk"); } chains.get(event.getPersonId()).in = false; acts.put( event.getPersonId(), acts.get(event.getPersonId()) == null ? 1 : acts.get(event.getPersonId()) + 1); } if (chain.modes.get(chain.modes.size() - 1).equals("walk")) { Double distance = CoordUtils.calcDistance( locations.get(event.getPersonId()), network.getLinks().get(event.getLinkId()).getCoord()); if (chain.modes.size() == chain.distances.size()) { if (event.getActType().equals(PtConstants.TRANSIT_ACTIVITY_TYPE)) chain.modes.set(chain.modes.size() - 1, "pt"); chain.distances.set(chain.distances.size() - 1, distance); } else { chain.modes.remove(chain.modes.size() - 1); chain.distances.set( chain.distances.size() - 1, chain.distances.get(chain.distances.size() - 1) + distance); } } }
@Override public void handleEvent(ActivityStartEvent event) { if (!eventsByPerson.containsKey(event.getPersonId())) { eventsByPerson.put(event.getPersonId(), new LinkedList<Event>()); } eventsByPerson.get(event.getPersonId()).add(event); allEvents.add(event); }
@Override public void handleEvent(ActivityStartEvent event) { List<String> activityChain = activityChains.get(event.getPersonId()); if (activityChain == null) { activityChain = new ArrayList<String>(); activityChains.put(event.getPersonId(), activityChain); } activityChain.add("@" + event.getActType()); }
@Override public void handleEvent(ActivityStartEvent event) { try { if (isTransitScenario) { if (transitDriverIds.contains(event.getPersonId())) return; } TravellerChain chain = chains.get(event.getPersonId()); boolean beforeInPT = chain.isInPT(); if (event.getActType().equals(PtConstants.TRANSIT_ACTIVITY_TYPE)) { chain.setInPT(true); } else { chain.setInPT(false); chain.traveling = false; Activity act = chain.addActivity(); act.setCoord(network.getLinks().get(event.getLinkId()).getCoord()); act.setFacility(event.getFacilityId()); act.setStartTime(event.getTime()); act.setType(event.getActType()); // end the preceding journey Journey journey = chain.getJourneys().getLast(); journey.setDest(act.getCoord()); journey.setEndTime(event.getTime()); journey.setToAct(act); if (beforeInPT) journey.getWalks().getLast().setEgressWalk(true); } } catch (Exception e) { System.err.println(e.getStackTrace()); System.err.println(event.toString()); ; } }
@Override public void handleEvent(ActivityStartEvent event) { // store information from event to variables and print the information on console // String eventType = event.getEventType(); Id<Link> linkId = event.getLinkId(); // String linkShortened = linkId.toString().substring(0, 10) + "..."; Id<Person> personId = event.getPersonId(); double time = event.getTime(); String actType = event.getActType(); // Id facilityId = event.getFacilityId(); // System.out.println("Type: " + eventType + " - LinkId: " + linkShortened + " - PersonId: " + // personId.toString() // + " - Time: " + time/60/60 + " - ActType: " + actType + " - FacilityId: " + facilityId); // count number of activity starts for every agent and store these numbers in a map if (!activityStartCount.containsKey(personId)) { activityStartCount.put(personId, 1); } else { int numberOfCompletedDepartures = activityStartCount.get(personId); activityStartCount.put(personId, numberOfCompletedDepartures + 1); } // System.out.println("Agent " + personId + " has " + activityEndCount.get(personId) + " // activity ends and " + activityStartCount.get(personId) + " activity starts."); // add information to the object "Trip" Id<Trip> tripId = Id.create(personId + "_" + activityStartCount.get(personId), Trip.class); if (trips.get(tripId) != null) { trips.get(tripId).setArrivalLinkId(linkId); trips.get(tripId).setArrivalTime(time); // trips.get(tripId).setArrivalLegMode(legMode); trips.get(tripId).setActivityStartActType(actType); trips.get(tripId).setTripComplete(true); } else { this.noPreviousEndOfActivityCounter++; } // check if number of activity ends and number of activity starts are the same if (activityStartCount.get(personId) != activityEndCount.get(personId)) { // System.err.println("Activity start count differs from activity end count."); throw new RuntimeException("Activity start count differs from activity end count."); } // checking leg modes is not applicable here }
@Override public void handleEvent(ActivityStartEvent event) { if (pIdsToExclude.contains(event.getPersonId())) { return; } TravellerChain chain = chains.get(event.getPersonId()); boolean beforeInPT = chain.inPT; if (event.getActType().equals(PtConstants.TRANSIT_ACTIVITY_TYPE)) chain.inPT = true; else chain.inPT = false; if (!chain.inPT && !chain.walk) chain.modes.add("car"); else if (!chain.inPT && chain.walk && !beforeInPT) chain.modes.add("walk"); else if (chain.walk) chain.modes.add("transit_walk"); else chain.modes.add( getMode( transitSchedule .getTransitLines() .get(chain.lineId) .getRoutes() .get(chain.routeId) .getTransportMode(), chain.lineId)); chain.times.add(event.getTime() - chain.lastTime); }
@Override public void handleEvent(ActivityStartEvent event) { CarrierAgent carrierAgent = getCarrierAgent(event.getPersonId()); if (carrierAgent == null) return; carrierAgent.handleEvent(event); }
@Override public void handleEvent(final ActivityStartEvent event) { starts.put(event.getPersonId(), event.getTime()); }
@Override public void handleEvent(ActivityStartEvent event) { startTimes.put( event.getPersonId(), new Tuple<String, Double>(event.getActType(), event.getTime())); }
@Override public void handleEvent(ActivityStartEvent event) { if (event.getPersonId().equals(filterEventsForAgentId)) { System.out.println(event.toString()); } }