SupaplexOSM / strassenraumkarte-neukoelln

Straßenraum- und Parkraumkarte für den Berliner Ortsteil Neukölln.
https://strassenraumkarte.osm-berlin.org/
Other
96 stars 15 forks source link

script to generate maps with less manual effort #25

Open tordans opened 3 months ago

tordans commented 3 months ago

Originally posted by @mikedld in https://github.com/SupaplexOSM/strassenraumkarte-neukoelln/issues/9#issuecomment-2114176229

FYI I've created a small script that allowed me to generate a few maps for Portugal, should hopefully be suitable for other locations too with slight adjustments: https://github.com/mikedld/osm-strassenraumkarte-generator. If you find anything there of use, including changes in the submodules, feel free to pull from there or let me know you want PRs ;)

SupaplexOSM commented 3 months ago

@mikedld I'm curious: Is it possible to see a map section in Portugal that you created with your script (without having to set everything up myself)? What was your impression - does the rendering work reasonably well? How did you handle the highway areas and street parking? Do you have reasonable data in your locations?

mikedld commented 3 months ago

Here're 2 out of 3 renders that are configured via config.json in that generator repo of mine (3rd one, Lisboa, is huge and takes quite some time to process and render):

(links above will expire in 7 days, don't want to draw much traffic to my server)

I (together with @waldyrious) was slightly surprized that tertiary/secondary/primary highways weren't rendered at all w/o tagging areas with area:highway (could be seen in both renders above), but maybe that's me not doing something right. Tagging the areas was more or less easy for the first link above but only because I've done some work on landuse areas and parkings prior to that; it's also the only place that I dared to touch as it's near where I live and so I can take responsibility for those edits, and the neighborhood just looks cool :)) That said, I had to move some highways to align them with centerlines so that lanes are rendered correctly. There're some oddities with street-side parking (e.g. I'm not sure why cars aren't shown at all in some of them, or why they insist to be parked on the crossings), but overall it does seem to render as one would expect (given proper tagging). I haven't managed to make it render bicycle crossing way with a colored surface no matted what I tried (first link, #21/38.77091/-9.10945) :( And no, micromapping isn't the strongest here, although we're trying...

Certainly there're things that I'd improve, that is if I understood how it actually works internally and had an Idea of how easy/hard it would be. My thoughts aren't at all structured on this at the moment.

dabreegster commented 3 months ago

These are super cool to see! Very useful to compare with osm2streets and looks for bugs / things this map does better. I'd definitely be interested in using your script to generate more areas for comparison.

SupaplexOSM commented 3 months ago

Oh, interesting to see that the major road lines (primary, secondary etc.) are not rendered at all. I don't think the issue is on your side. Since the Straßenraumkarte was initially a purely local project to generate a background map for Neukölln (with a focus on highway areas) and I partly used an external carriageway area data set here, there was initially no need to render them at all. But I will fix that when I get the chance. I have been planning for some time to create "backup" road areas from highway lines in areas without area:highway.

However, I would like to technically modernize the map in the future, for example by using a postgres database with any osm/pbf files. So it may take a while yet...

There're some oddities with street-side parking (e.g. I'm not sure why cars aren't shown at all in some of them, or why they insist to be parked on the crossings

This is probably due to faults in the processing of separate parking areas in some cases. These areas are converted into lines for rendering in a complex process and in some cases no line can be generated. Where the vehicles are missing, there is probably a missing geometry in the street_parking geojson. In Neukölln, we use manually post-processed street parking data (especially snapped to curbs).

During this manual adjustment, incorrect data at intersections can also be corrected. The script cuts out parking spaces within a radius of 5 meters around the intersection points of virtual curb lines deduced from the highway width - in places like here, however, the virtual intersection points are inside the actual intersection. junction areas are not taken into account during this trimming, as sometimes there can also be parking spaces in intersections, e.g. often at T-intersections.

grafik

I haven't managed to make it render bicycle crossing way with a colored surface no matted what I tried (first link, #21/38.77091/-9.10945) :(

At first glance, I can't see why no cycle path crossing is rendered at this location (https://www.openstreetmap.org/way/1056779298). In post-processing there is a special treatment of such cycle path segments, so there should be line segments for this cycle path in "post_processed/cycleways.geojson". Perhaps this is where it fails. The rendering then checks for "cycleway=crossing" and "crossing:markings=dashes" (or crossing=traffic_signals/marked), which is tagged correct here...

All in all, however, I am surprised that the rendering works quite well, especially in Encarnação, since for a "perfect" result some very special tags/mappings are required (as you described for the position of the center lines, for example). But there are only a few places where crazy things happen in Portugal :)

grafik

mikedld commented 3 months ago

Here's the third render (Lisboa): https://cl.gy/fXrTR

I had to disable water bodies post-processing as it fails (probably due to unclosed areas or something like that; don't remember the exact error), and forest trees rendering which fails on tiles generation (memory allocation failures and some other random errors, even with a step of 1, seemingly unconnected to the amount of RAM I have which is 64 GiB, more like defects in QGIS or Qt or something else).