org.matsim.core.utils.collections.Tuple.getSecond()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(12.5k)|赞(0)|评价(0)|浏览(105)

本文整理了Java中org.matsim.core.utils.collections.Tuple.getSecond()方法的一些代码示例,展示了Tuple.getSecond()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Tuple.getSecond()方法的具体详情如下:
包路径:org.matsim.core.utils.collections.Tuple
类名称:Tuple
方法名:getSecond

Tuple.getSecond介绍

暂无

代码示例

代码示例来源:origin: matsim-org/matsim

public void writeData() {
  for (List<Tuple<Id, Double>> list : this.positions.values()) {
    for (Tuple<Id, Double> info : list) {
      System.out.println(info.getFirst().toString() + "\t" + info.getSecond().toString());
    }
    System.out.println();
  }
}

代码示例来源:origin: matsim-org/matsim

@Deprecated //not tested
private int getNumberOfCarsAtDistancePerSecond(Id<Link> linkId, Double distanceMeter, double timeSeconds){
  Tuple<Double, Double> tuple = this.linkFirstSecondDistanceMeterMap.get(linkId);
  int numberOfCarsFirstDetector = this.getNumberOfCarsInDistance(linkId, tuple.getFirst(), timeSeconds);
  int numberOfCarsSecondDetector = this.getNumberOfCarsInDistance(linkId, tuple.getSecond(), timeSeconds);
  log.error("Link " + linkId + " first pos: " + tuple.getFirst() + " second pos: " + tuple.getSecond());
  log.error("NumberOfCars SecondDetector: " + numberOfCarsSecondDetector + " first detector: " + numberOfCarsFirstDetector);
  return numberOfCarsFirstDetector - numberOfCarsSecondDetector  ;
}

代码示例来源:origin: matsim-org/matsim

/**
 * Scales a vector given by start and end point by a factor. Changes only the end coordinate of the vector.
 * @param scaleFactor a scale factor in [0..1]
 * @return a tuple with the old start point as first and the scaled end point as
 *         second entry
 * @deprecated not used yet
 */
@Deprecated
public static Tuple<Point2D.Double, Point2D.Double> scaleVectorEnd(final Point2D.Double start, final Point2D.Double end,
    double scaleFactor) {
  
  Tuple<Point2D.Double, Point2D.Double> scaledVector = calculateScaledVector(start, end, scaleFactor);
  return new Tuple<Point2D.Double, Point2D.Double>(start, scaledVector.getSecond());
}

代码示例来源:origin: matsim-org/matsim

private HbefaWarmEmissionFactor getEf(Id<Vehicle> vehicleId, Tuple<HbefaVehicleCategory, HbefaVehicleAttributes> vehicleInformationTuple, HbefaWarmEmissionFactorKey efkey) {
  HbefaWarmEmissionFactor ef;
  //The logic has changed here, now it will fall back to aggregate factors per traffic scenario, instead of if any scenarios are missing.
  if(this.detailedHbefaWarmTable != null && this.detailedHbefaWarmTable.get(efkey) != null){
    ef = this.detailedHbefaWarmTable.get(efkey);
  } else {
    vehAttributesNotSpecifiedCnt++;
    efkey.setHbefaVehicleAttributes(new HbefaVehicleAttributes()); //want to check for average vehicle
    ef = this.avgHbefaWarmTable.get(efkey);
    int maxWarnCnt = 3;
    if(this.detailedHbefaWarmTable != null && vehAttributesNotSpecifiedCnt <= maxWarnCnt) {
      logger.warn("Detailed vehicle attributes are not specified correctly for vehicle " + vehicleId + ": " +
          "`" + vehicleInformationTuple.getSecond() + "'. Using fleet average values instead.");
      if(vehAttributesNotSpecifiedCnt == maxWarnCnt) logger.warn(Gbl.FUTURE_SUPPRESSED);
    }
  }
  return ef;
}

代码示例来源:origin: matsim-org/matsim

/**
 * Initialize the quadtrees of all available activity types
 */
private void initTrees(ActivityFacilities facilities, DestinationChoiceConfigGroup config) {
  log.info("Doing location choice for activities: " + this.flexibleTypes.toString());
  
  for (String flexibleType : this.flexibleTypes) {
    Tuple<QuadTree<ActivityFacilityWithIndex>, ActivityFacilityImpl[]> tuple = this.lcContext.getQuadTreeAndFacilities(flexibleType);
    this.quadTreesOfType.put(flexibleType, tuple.getFirst());
    this.facilitiesOfType.put(flexibleType, tuple.getSecond());
  }
}

代码示例来源:origin: matsim-org/matsim

public Tuple<QuadTree<ActivityFacilityWithIndex>, ActivityFacilityImpl[]> getQuadTreeAndFacilities(String activityType) {
  if (this.cacheQuadTrees) {
    QuadTree<ActivityFacilityWithIndex> quadTree = this.quadTreesOfType.get(activityType);
    ActivityFacilityImpl[] facilities = this.facilitiesOfType.get(activityType);
    if (quadTree == null || facilities == null) {				
      Tuple<QuadTree<ActivityFacilityWithIndex>, ActivityFacilityImpl[]> tuple = getTuple(activityType);
      this.quadTreesOfType.put(activityType, tuple.getFirst());
      this.facilitiesOfType.put(activityType, tuple.getSecond());
      
      return tuple;
    } else return new Tuple<QuadTree<ActivityFacilityWithIndex>, ActivityFacilityImpl[]>(quadTree, facilities);
  } else return getTuple(activityType);
}

代码示例来源:origin: matsim-org/matsim

@Override
  public int compare(Tuple<String, Double> o1, Tuple<String, Double> o2) {
    double result = o1.getSecond() - o2.getSecond();
    if (result == 0) {
      if (o1.getFirst().equals(o2.getFirst()))
        return 0;
      else
        return o1.hashCode() - o2.hashCode();
    } else if (result < 0)
      return 1;
    else
      return -1;
  }
});

代码示例来源:origin: matsim-org/matsim

private void setMaxExtensionTimeInSylviaPlan(Tuple<SignalPlan, SylviaSignalPlan> plans) {
  int ext = plans.getFirst().getCycleTime() - plans.getSecond().getCycleTime();
  plans.getSecond().setMaxExtensionTime(ext);
}

代码示例来源:origin: matsim-org/matsim

@Override
  public int compare(final Tuple<Double, MobsimAgent> o1, final Tuple<Double, MobsimAgent> o2) {
    int ret = o1.getFirst().compareTo(o2.getFirst()); // first compare time information
    if (ret == 0) {
      ret = o2.getSecond().getId().compareTo(o1.getSecond().getId()); // if they're equal, compare the Ids: the one with the larger Id should be first
    }
    return ret;
  }
}

代码示例来源:origin: matsim-org/matsim

@Override
  public int compare(Tuple<Double, MobsimAgent> o1, Tuple<Double, MobsimAgent> o2) {
    int ret = o1.getFirst().compareTo(o2.getFirst()); // first compare time information
    if (ret == 0) {
      ret = o2.getSecond().getId().compareTo(o1.getSecond().getId()); // if they're equal, compare the Ids: the one with the larger Id should be first
    }
    return ret;
  }
});

代码示例来源:origin: matsim-org/matsim

@Override
public void handleEvent(VehicleArrivesAtFacilityEvent event) {
  if(!useVehicleIds || vehicleIds.contains(event.getVehicleId().toString())) {
    Tuple<String, Double> route = inTransitVehicles.remove(event.getVehicleId().toString());
    if(route!=null)
      try {
        stopStopTimes.get(route.getFirst()).get(event.getFacilityId().toString()).addStopStopTime((int) (route.getSecond()/timeSlot), event.getTime()-route.getSecond());
      } catch(Exception e) {
        //System.out.println("No: "+route.getFirst()+"-->"+event.getFacilityId());
      }
    inTransitVehicles.put(event.getVehicleId().toString(), new Tuple<String, Double>(event.getFacilityId().toString(), event.getTime()));
  }
}
@Override

代码示例来源:origin: matsim-org/matsim

public MeasurementCadytsContext(Config config, Tuple<Counts<Measurement>, Measurements> tuple) {
  CadytsConfigGroup cadytsConfig = ConfigUtils.addOrGetModule(config, CadytsConfigGroup.GROUP_NAME, CadytsConfigGroup.class ) ;
  cadytsConfig.setWriteAnalysisFile(true);
  this.counts = tuple.getFirst() ;
  this.measurements = tuple.getSecond() ;
  Set<String> measurementsSet = new TreeSet<>();
  for (Id<Measurement> id : this.counts.getCounts().keySet()) {
    measurementsSet.add(id.toString());
  }
  cadytsConfig.setCalibratedItems(measurementsSet);
  this.writeAnalysisFile = cadytsConfig.isWriteAnalysisFile();
}

代码示例来源:origin: matsim-org/matsim

@Override
public void handleEvent(VehicleArrivesAtFacilityEvent event) {
  if(!useVehicleIds || vehicleIds.contains(event.getVehicleId())) {
    Tuple<Id<TransitStopFacility>, Double> route = inTransitVehicles.remove(event.getVehicleId());
    if(route!=null)
      stopStopTimes.get(route.getFirst()).get(event.getFacilityId()).addStopStopTime((int) (route.getSecond()/timeSlot), event.getTime()-route.getSecond());
    inTransitVehicles.put(event.getVehicleId(), new Tuple<Id<TransitStopFacility>, Double>(event.getFacilityId(), event.getTime()));
  }
}
@Override

代码示例来源:origin: matsim-org/matsim

@Override
public void handleEvent(VehicleArrivesAtFacilityEvent event) {
  if(vehicleIds.contains(event.getVehicleId())) {
    Tuple<Id<TransitStopFacility>, Double> route = inTransitVehicles.remove(event.getVehicleId());
    if(route!=null)
      stopStopTimes.get(new Tuple<Id<TransitStopFacility>, Id<TransitStopFacility>>(route.getFirst(), event.getFacilityId())).addStopStopTime((int) (route.getSecond()/timeSlot), event.getTime()-route.getSecond());
    inTransitVehicles.put(event.getVehicleId(), new Tuple<Id<TransitStopFacility>, Double>(event.getFacilityId(), event.getTime()));
  }
}
@Override

代码示例来源:origin: matsim-org/matsim

@Deprecated //not tested
private void registerCarsAtDistancePerSecondMonitoring(Id<Link> linkId, Double distanceMeter){
  double firstDistanceMeter = distanceMeter;
  Link link = this.network.getLinks().get(linkId);
  double secondDistanceMeter = distanceMeter -  2 * link.getFreespeed();
  //TODO could also exceed link length
  if (secondDistanceMeter < 0.0){
    firstDistanceMeter = 2* link.getFreespeed();
    secondDistanceMeter = 0.0;
  }
  Tuple<Double, Double> tuple = new Tuple<Double, Double>(firstDistanceMeter, secondDistanceMeter);
  log.error("Link " + linkId + " first pos: " + tuple.getFirst() + " second pos: " + tuple.getSecond() + " length " + link.getLength());
  this.linkFirstSecondDistanceMeterMap.put(link.getId(), tuple);
  this.registerNumberOfCarsInDistanceMonitoring(linkId, firstDistanceMeter);
  this.registerNumberOfCarsInDistanceMonitoring(linkId, secondDistanceMeter);
}

代码示例来源:origin: matsim-org/matsim

@Override
public void afterSim() {
  double now = internalInterface.getMobsim().getSimTimer().getTimeOfDay();
  for (Tuple<Double, MobsimAgent> entry : teleportationList) {
    MobsimAgent agent = entry.getSecond();
    eventsManager.processEvent(new PersonStuckEvent(now, agent.getId(), agent.getDestinationLinkId(), agent.getMode()));
  }
  teleportationList.clear();
}

代码示例来源:origin: matsim-org/matsim

private XMLIntergreenTimes convertDataToXml() {
  ObjectFactory fac = new ObjectFactory();
  XMLIntergreenTimes xmlContainer = fac.createXMLIntergreenTimes();
  
  for (IntergreensForSignalSystemData intergreens :  this.intergreensData.getIntergreensForSignalSystemDataMap().values()) {
    XMLSignalSystem xmlss = fac.createXMLIntergreenTimesXMLSignalSystem();
    xmlss.setRefId(intergreens.getSignalSystemId().toString());
    xmlContainer.getSignalSystem().add(xmlss);
    for (Tuple<Id<SignalGroup>, Id<SignalGroup>> endingBeginningSgIds : intergreens.getEndingBeginningSignalGroupKeys()){
      XMLEndingSignalGroupType xmlEnding = this.getXmlEnding(xmlss.getEndingSignalGroup(), endingBeginningSgIds.getFirst());
      if (xmlEnding == null){
        xmlEnding = fac.createXMLEndingSignalGroupType();
        xmlEnding.setRefId(endingBeginningSgIds.getFirst().toString());
        xmlss.getEndingSignalGroup().add(xmlEnding);
      }
      XMLBeginningSignalGroup xmlBeginn = fac.createXMLEndingSignalGroupTypeXMLBeginningSignalGroup();
      xmlBeginn.setRefId(endingBeginningSgIds.getSecond().toString());
      xmlBeginn.setTimeSeconds(BigInteger.valueOf(intergreens.getIntergreenTime(endingBeginningSgIds.getFirst(), endingBeginningSgIds.getSecond())));
      xmlEnding.getBeginningSignalGroup().add(xmlBeginn);
    }
  }
  return xmlContainer;
}

代码示例来源:origin: matsim-org/matsim

private void handleTeleportationArrivals() {
  double now = internalInterface.getMobsim().getSimTimer().getTimeOfDay();
  while (teleportationList.peek() != null) {
    Tuple<Double, MobsimAgent> entry = teleportationList.peek();
    if (entry.getFirst() <= now) {
      teleportationList.poll();
      MobsimAgent personAgent = entry.getSecond();
      personAgent.notifyArrivalOnLinkByNonNetworkMode(personAgent
          .getDestinationLinkId());
      double distance = personAgent.getExpectedTravelDistance();
      this.eventsManager.processEvent(new TeleportationArrivalEvent(this.internalInterface.getMobsim().getSimTimer().getTimeOfDay(), personAgent.getId(), distance));
      personAgent.endLegAndComputeNextState(now);
      this.teleportationData.remove(personAgent.getId());
      internalInterface.arrangeNextAgentState(personAgent);
    } else {
      break;
    }
  }
}

代码示例来源:origin: matsim-org/matsim

@Override
  public Trip findTrip(Leg prevLeg, double earliestDepartureTime_s) {

    ExperimentalTransitRoute route = (ExperimentalTransitRoute) prevLeg.getRoute();
    Id accessStopId = route.getAccessStopId();
    Id egressStopId = route.getEgressStopId();

    Tuple<Double, Double> routeTravelTime = transitPerformance.getRouteTravelTime(route.getLineId(),
        route.getRouteId(), accessStopId, egressStopId, earliestDepartureTime_s);
    final double accessTime_s = earliestDepartureTime_s + routeTravelTime.getFirst();
    final double egressTime_s = accessTime_s + routeTravelTime.getSecond();
    return new Trip(null, accessTime_s, egressTime_s);
  }
}

代码示例来源:origin: matsim-org/matsim

/**
 * @param coord
 * @return
 */
private Tuple<Integer, Integer>[] getZoneTuplesForLinks(Coord coord) {
  Tuple<Integer, Integer> zoneTuple = getZoneTupleForLinks(coord);
  int x = zoneTuple.getFirst();
  int y = zoneTuple.getSecond();
  return new Tuple[] {
      zoneTuple,
      new Tuple<Integer, Integer>(x-1, y-1),
      new Tuple<Integer, Integer>(x, y-1),
      new Tuple<Integer, Integer>(x+1, y-1),
      new Tuple<Integer, Integer>(x-1, y),
      new Tuple<Integer, Integer>(x+1, y),
      new Tuple<Integer, Integer>(x-1, y+1),
      new Tuple<Integer, Integer>(x, y+1),
      new Tuple<Integer, Integer>(x+1, y+1)
  };
}

相关文章

微信公众号

最新文章

更多