def __change_project(self): self.proj.close() self.proj = Project() self.proj = create_example(join(gettempdir(), uuid4().hex), 'nauru') zones = 5 network = self.proj.network nodes = network.nodes geo = network.convex_hull() zone_area = geo.area / zones zone_side = sqrt(2 * sqrt(3) * zone_area / 9) extent = network.extent() curr = self.proj.conn.cursor() b = extent.bounds curr.execute( 'select st_asbinary(HexagonalGrid(GeomFromWKB(?), ?, 0, GeomFromWKB(?)))', [extent.wkb, zone_side, Point(b[2], b[3]).wkb]) grid = curr.fetchone()[0] grid = shapely.wkb.loads(grid) grid = [p for p in grid if p.intersects(geo)] zoning = self.proj.zoning for i, zone_geo in enumerate(grid): zone = zoning.new(i + 1) zone.geometry = zone_geo zone.save() node = nodes.get(i + 1) node.renumber(i + 10001)
def test_create_example(self): par = Parameters()._default for p in ["nauru", "sioux_falls"]: pth = join(gettempdir(), f"proj_example_{p}_{uuid4().hex}") proj = create_example(pth, p) parproj = proj.parameters self.assertEqual(parproj.keys(), par.keys(), f"Wrong parameter keys for {p} example") proj.close()
def setUp(self) -> None: os.environ['PATH'] = os.path.join( gettempdir(), 'temp_data') + ';' + os.environ['PATH'] self.proj_dir = os.path.join(gettempdir(), uuid.uuid4().hex) self.project = create_example(self.proj_dir) self.network = self.project.network self.curr = self.project.conn.cursor()
def setUp(self) -> None: self.project = create_example( join(gettempdir(), "test_set_pce_" + uuid4().hex)) self.project.network.build_graphs() car_graph = self.project.network.graphs["c"] # type: Graph car_graph.set_graph("distance") car_graph.set_blocked_centroid_flows(False) matrix = self.project.matrices.get_matrix("demand_omx") matrix.computational_view() self.tc = TrafficClass(name="car", graph=car_graph, matrix=matrix)
def setUp(self) -> None: self.project = create_example(join(gettempdir(), "test_set_pce_" + uuid4().hex)) self.project.network.build_graphs() self.g = self.project.network.graphs["c"] # type: Graph self.g.set_graph("free_flow_time") self.g.set_blocked_centroid_flows(False) self.matrix = self.project.matrices.get_matrix("demand_omx") self.matrix.computational_view() self.r = PathResults() self.r.prepare(self.g)
def setUp(self) -> None: proj_path = os.path.join(gettempdir(), "test_traffic_assignment_" + uuid.uuid4().hex) self.project = create_example(proj_path) self.project.network.build_graphs() self.g = self.project.network.graphs["c"] # type: Graph self.g.set_graph("distance") self.g.set_skimming("distance") self.g.set_blocked_centroid_flows(False) self.matrix = self.project.matrices.get_matrix("demand_aem") self.matrix.computational_view() self.matrix2 = self.project.matrices.get_matrix("demand_omx") self.matrix2.computational_view() self.matrix2.matrix_view *= 2
def setUp(self) -> None: os.environ["PATH"] = os.path.join( gettempdir(), "temp_data") + ";" + os.environ["PATH"] proj_path = os.path.join(gettempdir(), "test_traffic_assignment_" + uuid.uuid4().hex) self.project = create_example(proj_path) self.project.network.build_graphs() self.car_graph = self.project.network.graphs["c"] # type: Graph self.car_graph.set_graph("free_flow_time") self.car_graph.set_blocked_centroid_flows(False) self.matrix = self.project.matrices.get_matrix("demand_omx") self.matrix.computational_view() self.assignment = TrafficAssignment() self.assigclass = TrafficClass(self.car_graph, self.matrix) self.algorithms = ["msa", "cfw", "bfw", "frank-wolfe"]
def test_set_pce(self): project = create_example( join(gettempdir(), "test_set_pce_" + uuid4().hex)) project.network.build_graphs() car_graph = project.network.graphs["c"] # type: Graph car_graph.set_graph("distance") car_graph.set_blocked_centroid_flows(False) matrix = project.matrices.get_matrix("demand_omx") matrix.computational_view() tc = TrafficClass(graph=car_graph, matrix=matrix) self.assertIsInstance(tc.results, AssignmentResults, "Results have the wrong type") self.assertIsInstance(tc._aon_results, AssignmentResults, "Results have the wrong type") with self.assertRaises(ValueError): tc.set_pce("not a number") tc.set_pce(1) tc.set_pce(3.9) project.close()
# %% ## Imports from uuid import uuid4 from tempfile import gettempdir from os.path import join from datetime import datetime from aequilibrae.utils.create_example import create_example from aequilibrae.paths.results import PathResults # %% # We create an empty project on an arbitrary folder fldr = join(gettempdir(), uuid4().hex) # Let's use the Nauru example project for display project = create_example(fldr, "nauru") # Let's analyze the mode car, or 'c' in our model mode = 'c' # %% # We need to create the graph, but before that we need to have at least one centroid in our network # We get an arbitrary node to set as centroid and allow for the construction of graphs centroid_count = project.conn.execute( 'select count(*) from nodes where is_centroid=1').fetchone()[0] if centroid_count == 0: arbitrary_node = project.conn.execute( 'select node_id from nodes limit 1').fetchone()[0] nodes = project.network.nodes
def setUp(self) -> None: self.proj = create_example(join(gettempdir(), uuid4().hex))
On this example we show how to mode a node in the network and look into what happens to the links. """ ## Imports from uuid import uuid4 from tempfile import gettempdir from os.path import join from aequilibrae.utils.create_example import create_example from shapely.geometry import Point import matplotlib.pyplot as plt # We create the example project inside our temp folder fldr = join(gettempdir(), uuid4().hex) project = create_example(fldr) # %% # Let's move node one from the upper left corner of the image above, a bit to the left and to the bottom # We also add the node we want to move all_nodes = project.network.nodes links = project.network.links node = all_nodes.get(1) new_geo = Point(node.geometry.x + 0.02, node.geometry.y - 0.02) node.geometry = new_geo # We can save changes for all nodes we have edited so far node.save() # %%
def setUp(self) -> None: self.project = create_example(join(gettempdir(), "test_path_disconnected" + uuid4().hex))
def setUp(self) -> None: path = join(gettempdir(), "skim_test_" + uuid4().hex) self.project = create_example(path)
# %% ## Imports from uuid import uuid4 from tempfile import gettempdir from os.path import join from aequilibrae.utils.create_example import create_example import folium # %% # We create an empty project on an arbitrary folder fldr = join(gettempdir(), uuid4().hex) # Let's use the Nauru example project for display project = create_example(fldr, 'nauru') # %% # We grab all the links data as a Pandas dataframe so we can process it easier links = project.network.links.data nodes = project.network.nodes.data # We create our Folium layers network_links = folium.FeatureGroup("links") network_nodes = folium.FeatureGroup("nodes") car = folium.FeatureGroup("Car") walk = folium.FeatureGroup("Walk") bike = folium.FeatureGroup("Bike") transit = folium.FeatureGroup("Transit") layers = [network_links, network_nodes, car, walk, bike, transit]