.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "_auto_examples/plot_moving_link_extremity.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr__auto_examples_plot_moving_link_extremity.py: Editing network geometry: Links =============================== On this example we move a link extremity from one point to another and see what happens to the network .. GENERATED FROM PYTHON SOURCE LINES 8-22 .. code-block:: python ## 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 LineString, Point import matplotlib.pyplot as plt # We create the example project inside our temp folder fldr = join(gettempdir(), uuid4().hex) project = create_example(fldr) .. GENERATED FROM PYTHON SOURCE LINES 23-44 .. code-block:: python all_nodes = project.network.nodes links = project.network.links # Let's move node one from the upper left corner of the image above, a bit to the left and to the bottom # We edit the link that goes from node 1 to node 2 link = links.get(1) node = all_nodes.get(1) new_extremity = Point(node.geometry.x + 0.02, node.geometry.y - 0.02) link.geometry = LineString([node.geometry, new_extremity]) # and the link that goes from node 2 to node 1 link = links.get(3) node2 = all_nodes.get(2) link.geometry = LineString([new_extremity, node2.geometry]) links.save() links.refresh() # Because each link is unidirectional, you can no longer go from node 1 to node 2, obviously .. GENERATED FROM PYTHON SOURCE LINES 45-47 We do NOT recommend this, though.... It is very slow for real networks We plot the entire network .. GENERATED FROM PYTHON SOURCE LINES 47-67 .. code-block:: python curr = project.conn.cursor() curr.execute('Select link_id from links;') for lid in curr.fetchall(): geo = links.get(lid[0]).geometry plt.plot(*geo.xy, color='blue') all_nodes = project.network.nodes curr = project.conn.cursor() curr.execute('Select node_id from nodes;') for nid in curr.fetchall(): geo = all_nodes.get(nid[0]).geometry plt.plot(*geo.xy, 'ro', color='black') plt.show() # Now look at the network how it used to be .. image-sg:: /_auto_examples/images/sphx_glr_plot_moving_link_extremity_001.png :alt: plot moving link extremity :srcset: /_auto_examples/images/sphx_glr_plot_moving_link_extremity_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out Out: .. code-block:: none /home/runner/work/aequilibrae/aequilibrae/docs/source/examples/plot_moving_link_extremity.py:60: UserWarning: color is redundantly defined by the 'color' keyword argument and the fmt string "ro" (-> color='r'). The keyword argument will take precedence. plt.plot(*geo.xy, 'ro', color='black') .. GENERATED FROM PYTHON SOURCE LINES 68-69 .. code-block:: python project.close() .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 0.719 seconds) .. _sphx_glr_download__auto_examples_plot_moving_link_extremity.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_moving_link_extremity.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_moving_link_extremity.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_