Open AdrianKriger opened 2 years ago
I had hoped to add a basic Bridge CityObject ---straight line feature with two vertices either side of a span--- but don't feel that I should.
25-m DTM | 10-m DTM |
---|---|
5-m DTM | |
The result does improve with the resolution of the terrain model but the existence of the Bridge CityObject is dependent on the quality of the DTM we are here looking East |
The other challenge is: We must connect to the ground at the same (or greater) resolution as the DTM. With a 1-m DTM we have to have a height along the road every metre. 1m every 100m is 100 points. With Delaunay every point is a vertex of a triangle. Thats 3 calculations per point. A road has two sides; so everything *2. You can imagine this can quickly turn into a Tyrannosaurus rex that will eat your processor.
A segmentize function will break a line feature and place a vertex every x-metre. For reasons above; lets keep this > 5-metre.
This will also conform to issue #19.
I've also added a time.sleep(5)
-> here. The loop will rest for 5 seconds after each road is triangulated.
Will add this to a mwe and push through to village_campus in December 2022. Districts July. 2023.
Similar to the building Quality Check; missing vertices where vectors cross (roads crossing buildings) will create a spike. This will be more prevalent when 'roads': 'Yes'. Trace the challenge to the root. |
If osm_LoD1_3DCityModel is failing in your area; perhaps the CityJSONwalkthrough.ipynb would be best.
I had another look at this with a higher quality bare-earth elevation model.
25-m DTM | 5-m DTM |
---|---|
Top here looking South-east. Bottom here looking South
25-m DTM | 5-m DTM |
---|---|
--> Decision stands: No Bridge CityObject. Highest resolution elevation model = 5-metre.
With reference to waterbodies / watercourse or road #14 and missing Transport CityObject #141; roads will be added as a Transportation CityObject.
-> The width tag is prefered ---this is now width:carriageway -> If no width is provided the lanes will serve as a proxy and the width is calculated as lanes * 2.2 -> If no width nor lanes are tagged; no Transport CityObject is created
Factors to consider:
The challenge with the latter is the need to preserve topology. Roads will stop an x-distance before tunnel=* / tunnel=building_passage /amenity=parking_entrance.
Timeline as per Project -> sidepanel
Right now (06/2022) its not perfect.
If you have a look at the mwe example -> citjsnClean_cput3d-str.json in ninja you'll notice the attributes do not always match the roads. When a road is not uniquely grouped (name and highway:type) attributes merge. Option 1) judo-chop the CityModel into submission by editing it in ninja. Option 2) process differently; perhaps add surface as an additional parameter