private void initBuffer(Network network) { for (Link link : network.getLinks().values()) { double[] travelTimeArray = new double[numSlots]; int time = 0; for (int i = 0; i < numSlots; i++) { // travelTimeArray[i] = link.getLength() / link.getFreespeed(time); travelTimeArray[i] = Double.NaN; time = time + timeSlice; } travelTimes.put(link, travelTimeArray); } }
public void registerNumberOfCarsMonitoring(Id<Link> linkId){ // this.monitoredLinkIds.add(link.getId()); if (!this.linkIdSensorMap.containsKey(linkId)){ Link link = this.network.getLinks().get(linkId); if (link == null){ throw new IllegalStateException("Link with Id " + linkId + " is not in the network, can't register sensor"); } this.linkIdSensorMap.put(linkId, new LinkSensor(link)); } }
public List<Link> convertInvertedNodesToLinks(List<Node> nodes) { List<Link> ret = new ArrayList<Link>(nodes.size()); for (Node n : nodes){ ret.add(this.originalNetwork.getLinks().get(Id.create(n.getId(), Link.class))); } return ret; }
private PassengerRequest createRequest(MobsimPassengerAgent passenger, Id<Link> fromLinkId, Id<Link> toLinkId, double departureTime, double now) { Map<Id<Link>, ? extends Link> links = network.getLinks(); Link fromLink = links.get(fromLinkId); Link toLink = links.get(toLinkId); Id<Request> id = Id.create(mode + "_" + nextId++, Request.class); PassengerRequest request = requestCreator.createRequest(id, passenger, fromLink, toLink, departureTime, now); return request; }
@Override public void handleEvent(LinkEnterEvent event) { String ptMode = this.vehId2ptModeMap.get(event.getVehicleId()); if (ptMode == null) { ptMode = "nonPtMode"; } if (ptMode2CountMap.get(ptMode) == null) { ptMode2CountMap.put(ptMode, 0.0); } ptMode2CountMap.put(ptMode, ptMode2CountMap.get(ptMode) + this.network.getLinks().get(event.getLinkId()).getLength()); } }
public void registerAverageNumberOfCarsPerSecondMonitoring(Id<Link> linkId, double lookBackTime, double timeBucketCollectionDuration) { if (!this.linkIdSensorMap.containsKey(linkId)){ Link link = this.network.getLinks().get(linkId); if (link == null){ throw new IllegalStateException("Link with Id " + linkId + " is not in the network, can't register sensor"); } this.linkIdSensorMap.put(link.getId(), new LinkSensor(link)); } this.linkIdSensorMap.get(linkId).registerAverageVehiclesPerSecondToMonitor(lookBackTime, timeBucketCollectionDuration); }
private OneTruckRequest createRequest(String requestId, String fromLinkId, String toLinkId, double time, Network network) { return new OneTruckRequest(Id.create(requestId, Request.class), network.getLinks().get(Id.createLinkId(fromLinkId)), network.getLinks().get(Id.createLinkId(toLinkId)), time); }
@Override public void handleEvent(LinkEnterEvent event) { String ptMode = this.vehId2ptModeMap.get(event.getVehicleId()); if (ptMode == null) { ptMode = "nonPtMode"; } if (ptMode2CountMap.get(ptMode) == null) { ptMode2CountMap.put(ptMode, 0.0); } ptMode2CountMap.put(ptMode, ptMode2CountMap.get(ptMode) + this.network.getLinks().get(event.getLinkId()).getLength() * this.vehId2NumberOfPassengers.get(event.getVehicleId())); }
@Override public void handleEvent(LinkEnterEvent event) { double newValue = this.network.getLinks().get(event.getLinkId()).getLength(); for (Id<Person> agentId : this.vehId2AgentId2DistanceTravelledInMeterMap.get(event.getVehicleId()).keySet()) { double oldValue = this.vehId2AgentId2DistanceTravelledInMeterMap.get(event.getVehicleId()).get(agentId); this.vehId2AgentId2DistanceTravelledInMeterMap.get(event.getVehicleId()).put(agentId, oldValue + newValue); } }
@Override public void handleEvent(LinkEnterEvent event) { if(event.getVehicleId().toString().contains(this.pIdentifier)){ double linkLength = this.network.getLinks().get(event.getLinkId()).getLength(); this.kmTravelledByMinibuses += linkLength; this.passengerKmMinibus += this.vehId2NumberOfPassengers.get(event.getVehicleId()) * linkLength; } }
private void run(){ this.transitSchedule = new TransitScheduleFactoryImpl().createTransitSchedule(); int stopsAdded = 0; for (Link link : this.net.getLinks().values()) { if(link.getAllowedModes().contains(TransportMode.car)){ stopsAdded += addStopOnLink(link); } } log.info("Added " + stopsAdded + " additional stops for paratransit services"); }
public static Map<Id<Link>, Zone> createLinkToZoneMap(Network network, ZoneFinder zoneFinder) { Map<Id<Link>, Zone> linkToZone = new HashMap<>(); for (Link l : network.getLinks().values()) { linkToZone.put(l.getId(), zoneFinder.findZone(l.getToNode().getCoord())); } return linkToZone; }
@Override public void handleEvent(PersonDepartureEvent event) { if (event.getLegMode().equals(TransportMode.car)){ if (this.personsWithPlan.contains(event.getPersonId())) { Coord departureCoord = network.getLinks().get(event.getLinkId()).getCoord(); this.lastDepartureLocation.put(event.getPersonId(), departureCoord ); this.lastDepartureTime.put(event.getPersonId(), event.getTime()); } } } /**
private static Link findLinkBetween(final Network network, final Id<Link> fromLinkId, final Id<Link> toLinkId) { Link fromLink = network.getLinks().get(fromLinkId); Link toLink = network.getLinks().get(toLinkId); Node from = fromLink.getToNode(); Node to = toLink.getFromNode(); for (Link link : from.getOutLinks().values()) { if (link.getToNode() == to) { return link; } } return null; }
@Test public void testGetLinks_mixedDelimiters() { Network network = getTestNetwork(); List<Link> links = NetworkUtils.getLinks(network, " 1\t\t2 \n4\t \t 3 "); assertEquals(4, links.size()); assertEquals(network.getLinks().get(Id.create(1, Link.class)), links.get(0)); assertEquals(network.getLinks().get(Id.create(2, Link.class)), links.get(1)); assertEquals(network.getLinks().get(Id.create(4, Link.class)), links.get(2)); assertEquals(network.getLinks().get(Id.create(3, Link.class)), links.get(3)); }
@Test public void testRun() { Network network = buildNetwork(); NetworkSimplifier nst = new NetworkSimplifier(); nst.run(network, 20.0); assertEquals("Wrong number of links", 3, network.getLinks().size()); assertNotNull("Expected link not found.", network.getLinks().get(Id.createLinkId("AB-BC"))); assertNotNull("Expected link not found.", network.getLinks().get(Id.createLinkId("CD"))); assertNotNull("Expected link not found.", network.getLinks().get(Id.createLinkId("DE-EF"))); }
@Test public void testGetNodes_SameStartEndLink() { Fixture f = new Fixture(); Link startLink = f.network.getLinks().get(f.linkIds[2]); Link endLink = f.network.getLinks().get(f.linkIds[2]); List<Id<Link>> links = new ArrayList<Id<Link>>(0); NetworkRoute route = RouteUtils.createLinkNetworkRouteImpl(startLink.getId(), endLink.getId()); route.setLinkIds(startLink.getId(), links, endLink.getId()); List<Node> nodes = RouteUtils.getNodes(route, f.network); Assert.assertEquals(0, nodes.size()); }
@Test public void testLoadingScenarioFromURLWorks() throws MalformedURLException { // Config config = ConfigUtils.loadConfig(new URL("https://raw.githubusercontent.com/matsim-org/matsimExamples/master/tutorial/lesson-3/config.xml")); Config config = ConfigUtils.loadConfig(new URL("https://github.com/matsim-org/matsim/raw/master/examples/scenarios/lesson-3/config.xml")); Scenario scenario = ScenarioUtils.loadScenario(config); assertThat("Network has expected size.", scenario.getNetwork().getLinks().size(), equalTo(12940)); assertThat("Population has expected size.", scenario.getPopulation().getPersons().size(), equalTo(8760)); assertThat("There are the expected number of activity facilities.", scenario.getActivityFacilities().getFacilities().size(), equalTo(10281)); }
public MobsimListenerForTests(Scenario scenario, TravelTime travelTime) { this.travelTime = travelTime; this.isUsingFastCapacityUpdate = scenario.getConfig().qsim().isUsingFastCapacityUpdate(); Id<Link> id = Id.create("6", Link.class); link = scenario.getNetwork().getLinks().get(id); }
@Test public void testFilter_NoModes() { final Fixture f = new Fixture(); TransportModeNetworkFilter filter = new TransportModeNetworkFilter(f.scenario.getNetwork()); Network subNetwork = ScenarioUtils.createScenario(ConfigUtils.createConfig()).getNetwork(); filter.filter(subNetwork, new HashSet<String>()); Assert.assertEquals("wrong number of nodes.", 0, subNetwork.getNodes().size()); Assert.assertEquals("wrong number of links", 0, subNetwork.getLinks().size()); }