Beispiel #1
0
    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()
Beispiel #4
0
 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
Beispiel #7
0
    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"]
Beispiel #8
0
    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()
Beispiel #9
0
# %%
## 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))
Beispiel #13
0
 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]