org.matsim.api.core.v01.network.Node.getInLinks()方法的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(13.5k)|赞(0)|评价(0)|浏览(161)

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

Node.getInLinks介绍

[英]Returns this node's set of ingoing links. This set might be empty, but it should not be null.
[中]返回此节点的输入链接集。此集合可能为空,但不应为null

代码示例

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

  1. public static Map<Id<Link>, ? extends Link> getIncidentLinks(Node node) {
  2. Map<Id<Link>, Link> links = new TreeMap<>(node.getInLinks());
  3. links.putAll(node.getOutLinks());
  4. return links;
  5. }

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

  1. public static Map<Id<Node>, ? extends Node> getInNodes(Node node) {
  2. Map<Id<Node>, Node> nodes = new TreeMap<>();
  3. for (Link link : node.getInLinks().values()) {
  4. Node inNode = link.getFromNode();
  5. nodes.put(inNode.getId(), inNode);
  6. }
  7. return nodes;
  8. }

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

  1. /**
  2. * Removes nodes from the network that have no incoming or outgoing links attached to them.
  3. */
  4. public void removeNodesWithoutLinks() {
  5. List<Node> toBeRemoved = new ArrayList<>();
  6. for (Node node : this.network.getNodes().values()) {
  7. if ((node.getInLinks().size() == 0) && (node.getOutLinks().size() == 0)) {
  8. toBeRemoved.add(node);
  9. }
  10. }
  11. for (Node node : toBeRemoved) {
  12. this.network.removeNode(node.getId());
  13. }
  14. }

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

  1. private int getNOfIncidentNodes(final Node node) {
  2. HashMap<Id<Node>, Node> nodes = new HashMap<>();
  3. for (Link link : node.getInLinks().values()) {
  4. nodes.put(link.getFromNode().getId(), link.getFromNode());
  5. }
  6. for (Link link : node.getOutLinks().values()) {
  7. nodes.put(link.getToNode().getId(), link.getToNode());
  8. }
  9. return nodes.size();
  10. }
  11. }

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

  1. @Override
  2. public void run(final Network network) {
  3. Set<Node> nodesToRemove;
  4. if (this.cutType == CutType.RECTANGLE) nodesToRemove = rectangularCut(network);
  5. else if (this.cutType == CutType.CIRCLE) nodesToRemove = circularCut(network);
  6. else return;
  7. int nofLinksRemoved = 0;
  8. for (Node n : nodesToRemove) {
  9. nofLinksRemoved += n.getInLinks().size() + n.getOutLinks().size();
  10. network.removeNode(n.getId());
  11. }
  12. log.info("number of nodes removed: "+nodesToRemove.size());
  13. log.info("number of links removed: "+nofLinksRemoved);
  14. log.info("number of nodes remaining: "+network.getNodes().size());
  15. log.info("number of links remaining: "+network.getLinks().size());
  16. }

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

  1. /**
  2. * Loads the inLinks-array with the corresponding links.
  3. * Cannot be called in constructor, as the queueNetwork does not yet know
  4. * the queueLinks. Should be called by QueueNetwork, after creating all
  5. * QueueNodes and QueueLinks.
  6. */
  7. @Override
  8. public void init() {
  9. int i = 0;
  10. for (Link l : this.node.getInLinks().values()) {
  11. QNetwork network = netsimEngine.getNetsimNetwork() ;
  12. this.inLinksArrayCache[i] = network.getNetsimLinks().get(l.getId());
  13. i++;
  14. }
  15. /* As the order of links has an influence on the simulation results,
  16. * the nodes are sorted to avoid indeterministic simulations. dg[april08]
  17. */
  18. Arrays.sort(this.inLinksArrayCache, new Comparator<NetsimLink>() {
  19. @Override
  20. public int compare(NetsimLink o1, NetsimLink o2) {
  21. return o1.getLink().getId().compareTo(o2.getLink().getId());
  22. }
  23. });
  24. }

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

  1. private static Map<Id<Node>, Node> getIncidentNodes(Node node) {
  2. Map<Id<Node>, Node> nodes = new TreeMap<>();
  3. for (Link link : node.getInLinks().values()) {
  4. nodes.put(link.getFromNode().getId(), link.getFromNode());
  5. }
  6. for (Link link : node.getOutLinks().values()) {
  7. nodes.put(link.getToNode().getId(), link.getToNode());
  8. }
  9. return nodes;
  10. }

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

  1. buffer.append(NetworkFeatureFactory.STARTP);
  2. buffer.append(STARTUL);
  3. for (Link l : n.getInLinks().values()) {
  4. buffer.append(STARTLI);
  5. buffer.append("Link: " );

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

  1. private QNodeImpl(final Node n, NetsimEngineContext context, NetsimInternalInterface netsimEngine2, TurnAcceptanceLogic turnAcceptanceLogic) {
  2. this.node = n;
  3. this.netsimEngine = netsimEngine2 ;
  4. this.context = context ;
  5. this.turnAcceptanceLogic = turnAcceptanceLogic;
  6. int nofInLinks = this.node.getInLinks().size();
  7. this.inLinksArrayCache = new QLinkI[nofInLinks];
  8. this.tempLinks = new QLinkI[nofInLinks];
  9. if (this.context.qsimConfig.getNumberOfThreads() > 1) {
  10. // This could just as well be the "normal" case. The second alternative
  11. // is just there so some scenarios / test cases stay
  12. // "event-file-compatible". Consider removing the second alternative.
  13. this.random = MatsimRandom.getLocalInstance();
  14. } else {
  15. this.random = MatsimRandom.getRandom();
  16. }
  17. }

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

  1. @Override
  2. public Node removeNode(final Id<Node> nodeId) {
  3. Node n = this.nodes.remove(nodeId);
  4. if (n == null) {
  5. return null;
  6. }
  7. HashSet<Link> links1 = new HashSet<>();
  8. links1.addAll(n.getInLinks().values());
  9. links1.addAll(n.getOutLinks().values());
  10. for (Link l : links1) {
  11. removeLink(l.getId());
  12. }
  13. if (this.nodeQuadTree != null) {
  14. this.nodeQuadTree.remove(n.getCoord().getX(),n.getCoord().getY(),n);
  15. }
  16. return n;
  17. }

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

  1. private void expandLandmarkTo() {
  2. LandmarksToTravelTimeComparator comparator = new LandmarksToTravelTimeComparator(this.nodeData, this.landmarkIdx);
  3. PriorityQueue<Node> pendingNodes = new PriorityQueue<>(100, comparator);
  4. LandmarksData role = (LandmarksData) this.nodeData.get(this.landmark);
  5. role.setToLandmarkTravelTime(this.landmarkIdx, 0.0);
  6. role.setFromLandmarkTravelTime(this.landmarkIdx, 0.0);
  7. pendingNodes.add(this.landmark);
  8. while (!pendingNodes.isEmpty()) {
  9. Node node = pendingNodes.poll();
  10. double toTravTime = ((LandmarksData) this.nodeData.get(node)).getToLandmarkTravelTime(this.landmarkIdx);
  11. LandmarksData role2;
  12. for (Link l : node.getInLinks().values()) {
  13. Node n = l.getFromNode();
  14. double linkTravTime = this.costFunction.getLinkMinimumTravelDisutility(l);
  15. role2 = (LandmarksData) this.nodeData.get(n);
  16. double totalTravelTime = toTravTime + linkTravTime;
  17. if (role2.getToLandmarkTravelTime(this.landmarkIdx) > totalTravelTime) {
  18. role2.setToLandmarkTravelTime(this.landmarkIdx, totalTravelTime);
  19. pendingNodes.add(n);
  20. }
  21. }
  22. }
  23. }

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

  1. RoutingNetworkNode routingNode = createRoutingNetworkNode(node, node.getInLinks().size());
  2. routingNetwork.addNode(routingNode);
  3. RoutingNetworkLink[] outLinks = new RoutingNetworkLink[node.getInLinks().size()];
  4. for (Link inLink : node.getInLinks().values()) {
  5. outLinks[i] = routingLinks.remove(inLink.getId());
  6. i++;

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

  1. private Node getLandmark(final ArrayList<Node> nodes, final double[] angles) {
  2. double maxDist = Double.NEGATIVE_INFINITY;
  3. Node landmark = null;
  4. for (Node node : nodes) {
  5. if ((node.getOutLinks().size() > 1 && node.getInLinks().size() > 1)
  6. || landmark == null) {
  7. double x = node.getCoord().getX() - this.center.getX();
  8. double y = node.getCoord().getY() - this.center.getY();
  9. double angle = Math.atan2(y, x) + Math.PI;
  10. double minAngelToBorder = 0;
  11. if (angle - angles[0] < angles[1] - angle) {
  12. minAngelToBorder = angle - angles[0];
  13. } else {
  14. minAngelToBorder = angles[1] - angle;
  15. }
  16. double distApprox = Math.sqrt(x * x + y * y) * (1 + minAngelToBorder / (2 * Math.PI));
  17. // Set the node that is farthest away from the center to be the landmark in the current sector
  18. if (distApprox > maxDist) {
  19. landmark = node;
  20. maxDist = distApprox;
  21. }
  22. }
  23. }
  24. return landmark;
  25. }

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

  1. List<TurnInfo> turnInfosForInLink = null;
  2. for (Node node : scenario.getNetwork().getNodes().values()) {
  3. for (Link inLink : node.getInLinks().values()) {
  4. turnInfosForInLink = inLinkTurnInfoMap.get(inLink.getId());
  5. if (turnInfosForInLink == null) {

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

  1. if ( nearestNode.getInLinks().isEmpty() && nearestNode.getOutLinks().isEmpty() ) {
  2. log.warn(network + "[found nearest node that has no incident links. Will probably crash eventually ... Maybe run NetworkCleaner?]" ) ;

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

  1. private void invertNetwork(){
  2. this.invertedNetwork = NetworkUtils.createNetwork();
  3. int numberOfNodesGenerated = 0;
  4. int numberOfLinksGenerated = 0;
  5. for (Link link : this.originalNetwork.getLinks().values()) {
  6. NetworkUtils.createAndAddNode(this.invertedNetwork, Id.create(link.getId(), Node.class), link.getToNode().getCoord());
  7. numberOfNodesGenerated++;
  8. }
  9. for (Node node : this.originalNetwork.getNodes().values()) {
  10. for (Link inLink : node.getInLinks().values()) {
  11. for (Link outLink : node.getOutLinks().values()) {
  12. List<TurnInfo> turnInfos = this.inLinkTurnInfoMap.get(inLink.getId());
  13. TurnInfo ti = NetworkTurnInfoBuilder.getTurnInfoForOutlinkId(turnInfos, outLink.getId());
  14. if (ti != null){
  15. numberOfLinksGenerated = this.createInvertedLink(inLink, outLink, numberOfLinksGenerated, ti.getModes());
  16. }
  17. }
  18. }
  19. }
  20. log.info("Generated " + numberOfNodesGenerated + " Nodes and " + numberOfLinksGenerated + " Links");
  21. // Debug only
  22. // NetworkWriter myNetworkWriter = new NetworkWriter(wrappedNetwork,
  23. // "wrappedNetwork");
  24. // myNetworkWriter.write();
  25. }

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

  1. PreProcessDijkstra.DeadEndData ddOutData = getPreProcessData(outNode);
  2. for (Link l : outNode.getInLinks().values()) {
  3. if (canPassLink(l)) {
  4. for (Link l : outNode.getInLinks().values()) {
  5. if (canPassLink(l)) {

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

  1. @Test
  2. public void removeLink() {
  3. Fixture f = new Fixture(getEmptyTestNetwork());
  4. Assert.assertTrue(f.network.getLinks().containsKey(f.linkIds[1]));
  5. Assert.assertEquals(1, f.network.getNodes().get(f.nodeIds[1]).getInLinks().size());
  6. f.network.removeLink(f.linkIds[1]);
  7. Assert.assertFalse(f.network.getLinks().containsKey(f.linkIds[1]));
  8. Assert.assertEquals(0, f.network.getNodes().get(f.nodeIds[1]).getInLinks().size());
  9. Assert.assertEquals(1, f.network.getNodes().get(f.nodeIds[1]).getOutLinks().size());
  10. Assert.assertTrue(f.network.getLinks().containsKey(f.linkIds[2]));
  11. f.network.removeLink(f.linkIds[2]);
  12. Assert.assertFalse(f.network.getLinks().containsKey(f.linkIds[2]));
  13. Assert.assertTrue(f.network.getNodes().containsKey(f.nodeIds[1]));
  14. Assert.assertEquals(0, f.network.getNodes().get(f.nodeIds[1]).getOutLinks().size());
  15. Assert.assertEquals(2, f.network.getNodes().get(f.nodeIds[5]).getOutLinks().size());
  16. Assert.assertEquals(2, f.network.getNodes().get(f.nodeIds[8]).getInLinks().size());
  17. f.network.removeLink(f.linkIds[10]);
  18. Assert.assertEquals(1, f.network.getNodes().get(f.nodeIds[5]).getOutLinks().size());
  19. Assert.assertEquals(1, f.network.getNodes().get(f.nodeIds[8]).getInLinks().size());
  20. }

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

  1. @Test
  2. public void removeNode() {
  3. Fixture f = new Fixture(getEmptyTestNetwork());
  4. Assert.assertEquals(8, f.network.getNodes().size());
  5. Assert.assertEquals(12, f.network.getLinks().size());
  6. Assert.assertTrue(f.network.getLinks().containsKey(f.linkIds[1]));
  7. Assert.assertTrue(f.network.getLinks().containsKey(f.linkIds[2]));
  8. Assert.assertTrue(f.network.getNodes().containsKey(f.nodeIds[1]));
  9. f.network.removeNode(f.nodeIds[1]);
  10. Assert.assertEquals(7, f.network.getNodes().size());
  11. Assert.assertEquals(10, f.network.getLinks().size());
  12. Assert.assertFalse(f.network.getLinks().containsKey(f.linkIds[1]));
  13. Assert.assertFalse(f.network.getLinks().containsKey(f.linkIds[2]));
  14. Assert.assertFalse(f.network.getNodes().containsKey(f.nodeIds[1]));
  15. Assert.assertFalse(f.network.getNodes().get(f.nodeIds[4]).getOutLinks().containsKey(f.linkIds[1]));
  16. Assert.assertTrue(f.network.getNodes().get(f.nodeIds[4]).getOutLinks().containsKey(f.linkIds[5]));
  17. Assert.assertTrue(f.network.getNodes().get(f.nodeIds[4]).getOutLinks().containsKey(f.linkIds[7]));
  18. f.network.removeNode(f.nodeIds[8]);
  19. Assert.assertEquals(6, f.network.getNodes().size());
  20. Assert.assertEquals(6, f.network.getLinks().size());
  21. Assert.assertFalse(f.network.getLinks().containsKey(f.linkIds[8]));
  22. Assert.assertFalse(f.network.getLinks().containsKey(f.linkIds[9]));
  23. Assert.assertFalse(f.network.getNodes().containsKey(f.nodeIds[10]));
  24. Assert.assertFalse(f.network.getNodes().containsKey(f.nodeIds[11]));
  25. Assert.assertFalse(f.network.getNodes().get(f.nodeIds[5]).getOutLinks().containsKey(f.linkIds[10]));
  26. Assert.assertTrue(f.network.getNodes().get(f.nodeIds[5]).getOutLinks().containsKey(f.linkIds[6]));
  27. Assert.assertFalse(f.network.getNodes().get(f.nodeIds[5]).getInLinks().containsKey(f.linkIds[9]));
  28. Assert.assertTrue(f.network.getNodes().get(f.nodeIds[5]).getInLinks().containsKey(f.linkIds[3]));
  29. }

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

  1. @Test
  2. public void testFilter_AdditionalModes() {
  3. final Fixture f = new Fixture();
  4. TransportModeNetworkFilter filter = new TransportModeNetworkFilter(f.scenario.getNetwork());
  5. Network subNetwork = ScenarioUtils.createScenario(ConfigUtils.createConfig()).getNetwork();
  6. filter.filter(subNetwork, createHashSet(TransportMode.walk, TransportMode.pt, "motorbike"));
  7. Assert.assertEquals("wrong number of nodes.", 5, subNetwork.getNodes().size());
  8. Assert.assertEquals("wrong number of links", 4, subNetwork.getLinks().size());
  9. Assert.assertTrue(subNetwork.getLinks().containsKey(f.linkIds[13]));
  10. Assert.assertTrue(subNetwork.getLinks().containsKey(f.linkIds[14]));
  11. Assert.assertTrue(subNetwork.getLinks().containsKey(f.linkIds[15]));
  12. Assert.assertTrue(subNetwork.getLinks().containsKey(f.linkIds[16]));
  13. Assert.assertTrue(subNetwork.getNodes().containsKey(f.nodeIds[1]));
  14. Assert.assertTrue(subNetwork.getNodes().containsKey(f.nodeIds[4]));
  15. Assert.assertTrue(subNetwork.getNodes().containsKey(f.nodeIds[7]));
  16. Assert.assertTrue(subNetwork.getNodes().containsKey(f.nodeIds[10]));
  17. Assert.assertTrue(subNetwork.getNodes().containsKey(f.nodeIds[13]));
  18. Assert.assertEquals(f.modesW, subNetwork.getLinks().get(f.linkIds[13]).getAllowedModes());
  19. Assert.assertEquals(f.modesW, subNetwork.getLinks().get(f.linkIds[14]).getAllowedModes());
  20. Assert.assertEquals(f.modesW, subNetwork.getLinks().get(f.linkIds[15]).getAllowedModes());
  21. Assert.assertEquals(f.modesW, subNetwork.getLinks().get(f.linkIds[16]).getAllowedModes());
  22. Assert.assertEquals(1, subNetwork.getNodes().get(f.nodeIds[4]).getInLinks().size());
  23. Assert.assertNotNull(subNetwork.getNodes().get(f.nodeIds[4]).getInLinks().get(f.linkIds[13]));
  24. Assert.assertEquals(1, subNetwork.getNodes().get(f.nodeIds[4]).getOutLinks().size());
  25. Assert.assertNotNull(subNetwork.getNodes().get(f.nodeIds[4]).getOutLinks().get(f.linkIds[14]));
  26. }

相关文章