Adding roads to the graph
[1]:
import sys
sys.path.append('..')
import geopandas as gpd
Initialization
[11]:
local_crs = 32637
The graph can be obtained by transport_frames.graph.get_graph_from_polygon()
[2]:
import pickle
with open("graph.pkl", "rb") as f:
graph = pickle.load(f)
Load a file with the roads to add. They must contain ref_type
and reg
parameter
[3]:
with open("new_roads.pkl", "rb") as f:
new_roads = pickle.load(f)
new_roads
[3]:
length_meter | type | time_sec | time_min | highway | maxspeed | reg | ref | is_exit | node_start | node_end | ref_type | geometry | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 314159.265359 | car | None | None | None | None | 1 | None | None | None | None | 1.2 | LINESTRING (456400.816 5971764.699, 456300.150... |
[6]:
from transport_frames.utils.helper_funcs import plot_graph
plot_graph(edges=new_roads)

Road addition
[14]:
from transport_frames.road_adder import add_roads
bigger_graph = add_roads(graph,new_roads,local_crs)
[16]:
plot_graph(bigger_graph)

Check connectivity improvement
[7]:
settlement_points = gpd.read_file('/Users/polina/Desktop/github/transport_frames/data/Тульская_область/Тульская_область_region_points.geojson')
settlement_polygons = gpd.read_file('/Users/polina/Desktop/github/transport_frames/data/Тульская_область/settlement.geojson')
[ ]:
from transport_frames.indicators import indicator_connectivity_drive
con_old = indicator_connectivity_drive(settlement_points,settlement_polygons,local_crs,drive_graph = graph)
con_old.head()
name | geometry | connectivity | |
---|---|---|---|
0 | Манаенское | POLYGON ((36.27046 53.67571, 36.27343 53.67505... | 132.3375 |
1 | Астаповское | POLYGON ((36.47061 53.63576, 36.48947 53.63114... | 119.3350 |
2 | Арсеньево | POLYGON ((36.63005 53.72754, 36.63174 53.72702... | 111.7100 |
3 | Левобережное | POLYGON ((35.89856 53.85018, 35.90015 53.84679... | 154.5850 |
4 | Правобережное | POLYGON ((36.14550 53.80533, 36.14561 53.80468... | 144.0700 |
[ ]:
con_new = indicator_connectivity_drive(settlement_points,settlement_polygons,local_crs,drive_graph = bigger_graph)
con_new.head()
name | geometry | connectivity | |
---|---|---|---|
0 | Манаенское | POLYGON ((36.27046 53.67571, 36.27343 53.67505... | 111.3775 |
1 | Астаповское | POLYGON ((36.47061 53.63576, 36.48947 53.63114... | 90.1800 |
2 | Арсеньево | POLYGON ((36.63005 53.72754, 36.63174 53.72702... | 81.6700 |
3 | Левобережное | POLYGON ((35.89856 53.85018, 35.90015 53.84679... | 127.6400 |
4 | Правобережное | POLYGON ((36.14550 53.80533, 36.14561 53.80468... | 117.0225 |