Runde Objekte in OSM detektieren

Da es noch viele ungetaggte Öltanks / Silos / “storage domes” etc. gibt, würde ich gerne runde Gebäude per Overpass herunterladen.

Da das vermutlich nicht direkt geht: Kennt sich jemand mit Python aus und weiß, wie man den Winkel von heruntergeladen Punkten ermittelt?

Mögliche Kriterien (korrigiert):

9 Nodes
Winkel > 140 °
Winkel annähernd gleich

Die gleiche Frage hattest du schon hier gepostet: https://help.openstreetmap.org/questions/65118/detect-round-objects-with-josm

Bitte Mehrfach-Posts vermeiden, besonders ohne Link auf deine anderen Posts.

Da ist ein Widerspruch drin: bei 10 Knoten ergibt sich ein Innenwinkel von 180-36=144 Grad.
Außerdem sind die Winkel nie mathematisch gleich, selbst wenn die entsprechende JOSM Funktion Rund-Machen angewendet wurde.

Osmose detektiert (annähernd) runde Gebäude. Da könntest du den dafür geeigneten Code finden, und vielleicht genügt Osmose ja schon für deinen Einsatz.

Die Erkennung ob etwas in etwa rund ist, macht Postgresql/Postgis hier in Zeile 45 https://github.com/osm-fr/osmose-backend/blob/master/analysers/analyser_osmosis_roundabout.py
Aber dazu muss man alles in einer DB haben.

Ich finde die Frage interessant

Ich auch. Ich würde mir mal diese kleine Bibliothek anschauen, oder nach anderen Moduln suchen, die eine Great-Circle-Angle-Funktion bereitstellen.

Schauen wir uns das mal an:

ST_Area(ST_MakePolygon(ST_Transform(way)))/ST_Area(ST_MinimumBoundingCircle(ST_Transform(way))) > 0.6

Hier wird also die Fläche des Polygons durch die Fläche des Umkreises geteilt.