21 package org.matsim.core.network.algorithms;
23 import java.util.HashSet;
26 import org.apache.logging.log4j.LogManager;
27 import org.apache.logging.log4j.Logger;
55 this.minX = min.
getX();
56 this.maxX = max.
getX();
57 this.minY = min.
getY();
58 this.maxY = max.
getY();
60 this.radius = Double.MAX_VALUE;
72 this.minX = Double.MIN_VALUE;
73 this.maxX = Double.MAX_VALUE;
74 this.minY = Double.MIN_VALUE;
75 this.maxY = Double.MAX_VALUE;
81 Set<Node> nodesToRemove;
87 int nofLinksRemoved = 0;
88 for (
Node n : nodesToRemove) {
89 nofLinksRemoved += n.getInLinks().size() + n.getOutLinks().size();
93 log.info(
"number of nodes removed: "+nodesToRemove.size());
94 log.info(
"number of links removed: "+nofLinksRemoved);
95 log.info(
"number of nodes remaining: "+network.
getNodes().size());
96 log.info(
"number of links remaining: "+network.
getLinks().size());
100 Set<Node> nodesToRemove =
new HashSet<>();
102 Coord coord = n.getCoord();
103 double x = coord.
getX();
104 double y = coord.
getY();
105 if (!((x < this.maxX) && (this.minX < x) && (y < this.maxY) && (this.minY < y))) {
106 nodesToRemove.add(n);
109 return nodesToRemove;
113 Set<Node> nodesToRemove =
new HashSet<>();
115 Coord coord = n.getCoord();
117 if (distance > radius) {
118 nodesToRemove.add(n);
121 return nodesToRemove;
NetworkScenarioCut(final Coord center, final double radius)
Map< Id< Node >, ? extends Node > getNodes()
static double calcEuclideanDistance(Coord coord, Coord other)
Node removeNode(final Id< Node > nodeId)
Set< Node > rectangularCut(Network network)
NetworkScenarioCut(final Coord min, final Coord max)
void run(final Network network)
Set< Node > circularCut(Network network)
Map< Id< Link >, ? extends Link > getLinks()