CityRiverSpaces / prototyping

Initial prototyping material
Apache License 2.0
0 stars 0 forks source link

OSM street-based delineation #2

Open cforgaci opened 3 months ago

cforgaci commented 3 months ago
cforgaci commented 2 months ago

Corridor edge

Corridor segments

cforgaci commented 2 months ago

Next we focus on corridor edge delineation using a buffer and sfnetworks. First try the algorithm described above.

fnattino commented 2 months ago

Small update for the corridor edge delineation. I have tested the following approach in this notebook:

One option is to start from the intersection of the distance lines and the city boundary as origin and destination and calculate the shortest path that is least deviated from the distance lines. We can use sfnetworks for this.

This works well on one side of the river, but the shortest-path algorithm fails to converge on the other side - needs further investigation. Should maybe test different algorithms and better check the quality of the network (visually it looks fine)..

cforgaci commented 2 months ago

Thanks for the update @fnattino. This is great and promising, seeing that it already works quite well on one side of the river! I will open a PR with a few suggestions building on what you started.

cforgaci commented 2 months ago

See #5 for further changes.

fnattino commented 1 month ago

The Axwoman tool to extract naturally-continuous structures from street networks seems to be available only as an ArcGIS extension. A different algorithm, called COINS, for the same purposed has been proposed in this article and it is implemented in momepy.

fnattino commented 1 week ago

The approach using the shortest-distance path to identify corridor edge boundary works reasonably well for cities whose river is mostly "straight" within the area of interest (e.g. Bucharest and Berlin, but it cannot be easily applied where there are multiple turns (e.g. in Paris, for which reasonable results can be obtained only on smaller bounding boxes).

An approach that determine the corridor edge by minimising the distance of the drawn line on the street network from the initial estimate of the corridor edge (e.g. the buffered waterway) could work in the more difficult cases. We could also considering switching between the two algorithms when the degree of linearity of the river (distance covered / length of the river) falls below a certain threshold.

fnattino commented 1 week ago

We also gave it a try to the delineation of segments, based on identifying the crossings of the waterway, and using a modified COINS algorithm to create strokes that would intersects both edges of the river corridor (tried for Bucharest, Berlin, and Paris). The algorithm can be probably improved by simplifying the network edge structure, especially when encountering roundabouts.