Skip to content

Commit

Permalink
updates to OS Open Roads and fiona structures
Browse files Browse the repository at this point in the history
  • Loading branch information
songololo committed Dec 1, 2023
1 parent 2e815e1 commit bd6e97d
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 12 deletions.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "cityseer"
version = '4.6.0'
version = '4.6.1'
description = "Computational tools for network-based pedestrian-scale urban analysis"
readme = "README.md"
requires-python = ">=3.10, <3.12"
Expand Down
22 changes: 11 additions & 11 deletions pysrc/cityseer/tools/io.py
Original file line number Diff line number Diff line change
Expand Up @@ -637,37 +637,37 @@ def nx_from_open_roads(
# load the nodes
with fiona.open(open_roads_path, layer=road_node_layer_key) as nodes:
for node_data in nodes.values(bbox=target_bbox):
node_id: str = node_data["properties"]["id"]
node_id: str = node_data.properties["id"]
x: float
y: float
x, y = node_data["geometry"]["coordinates"]
x, y = node_data.geometry["coordinates"]
g_multi.add_node(node_id, x=x, y=y)
# load the edges
n_dropped = 0
with fiona.open(open_roads_path, layer=road_link_layer_key) as edges:
for edge_data in edges.values(bbox=target_bbox):
# x, y = edge_data['geometry']['coordinates']
props: dict = edge_data["properties"] # type: ignore
start_nd: str = props["startNode"]
end_nd: str = props["endNode"]
props: dict = edge_data.properties # type: ignore
start_nd: str = props["start_node"]
end_nd: str = props["end_node"]
names: set[str] = set()
for name_key in ["name1", "name2"]:
for name_key in ["name_1", "name_2"]:
name: str | None = props[name_key]
if name is not None:
names.add(name)
routes: set[str] = set()
for ref_key in ["roadClassificationNumber"]:
for ref_key in ["road_classification_number"]:
ref: str | None = props[ref_key]
if ref is not None:
routes.add(ref)
highways: set[str] = set()
for highway_key in ["roadFunction", "roadClassification"]: # 'formOfWay'
for highway_key in ["road_function", "road_classification"]: # 'formOfWay'
highway: str | None = props[highway_key]
if highway is not None:
highways.add(highway)
if props["trunkRoad"]:
if props["trunk_road"]:
highways.add("Trunk Road")
if props["primaryRoute"]:
if props["primary_route"]:
highways.add("Primary Road")
# filter out unwanted highway tags
highways.difference_update(
Expand All @@ -681,7 +681,7 @@ def nx_from_open_roads(
}
)
# create the geometry
geom = geometry.LineString(edge_data["geometry"]["coordinates"])
geom = geometry.LineString(edge_data.geometry["coordinates"])
geom: geometry.LineString = geom.simplify(5)
# do not add edges to clipped extents
if start_nd not in g_multi or end_nd not in g_multi:
Expand Down

0 comments on commit bd6e97d

Please sign in to comment.