© 2015 FHNW / IVGI
Martin Christen, Daniel Rettenmund
martin.christen@fhnw.ch
FHNW - Fachhochschule Nordwestschweiz
PythonUnconference - September 2015 1
OpenStreetMap in 3D
using Python
© 2015 FHNW / IVGI
Ziel: 3D Service mit Flask aus OSM Daten
PythonUnconference - September 2015 2
OSM 3D
Import Modellierung
Wavefront OBJ
X3D
X3DOM
3D Portrayal Service
© 2015 FHNW / IVGI
OpenStreetMap als Datenquelle
PythonUnconference - September 2015 3
© 2015 FHNW / IVGI PythonUnconference - September 2015 4
Generierung der 3D-Modelle
• Gebäudehöhe
–Höhenwert oder Anzahl Stockwerke
• Dachform
–Unterscheidung der häufigsten Typen
–Flachdach, wenn keine Angabe
[Bildquelle: http://wiki.openstreetmap.org/wiki/Simple_3D_Buildings]
© 2015 FHNW / IVGI PythonUnconference - September 2015 5
3D-Portrayal-Service (3DPS)
• Aufruf über Webbrowser
–Angabe der Parameter in URL (ähnlich wie WMS)
http://localhost:5000/3dps?SERVICE=3DPS&REQUEST=GetScene
&VERSION=1.0.0&BOUNDINGBOX=1495170,6200358,1502633,6205459
&LAYERS=buildings,roofs,ground,trees&FORMAT=model/x3d+xml
–Abspeichern des Modells
• Einfacher Viewer
–Ansicht des Modells direkt im Browser (X3DOM)
© 2015 FHNW / IVGI
Resultat
PythonUnconference - September 2015 6
© 2015 FHNW / IVGI
3dmaps.ch
PythonUnconference - September 2015 7
http://rotterdam.3dmaps.ch
*) GPU Compression DXT5/S3TC: Compression Ratio 4:1, aber Format nicht unterstützt in Geo-Welt / HTML5
 90 CityGML total: 2.72 GB
 26'474 Textures à 1024x1024, ca. 77 GB unkomprimert*.
 Orthophoto: 10'000 Texturen à 4096x4096, ca. 470 GB unkomprimiert*.
© 2015 FHNW / IVGI
OSM Daten mit 3dmaps.ch
PythonUnconference - September 2015 8
Rendered with Renderman (soon: PovRay)
© 2015 FHNW / IVGI PythonUnconference - September 2015 9
Will be announced on Twitter...
@MartinChristen
@3dmaps_ch
...soon on github...

OpenStreetMap in 3D using Python

  • 1.
    © 2015 FHNW/ IVGI Martin Christen, Daniel Rettenmund martin.christen@fhnw.ch FHNW - Fachhochschule Nordwestschweiz PythonUnconference - September 2015 1 OpenStreetMap in 3D using Python
  • 2.
    © 2015 FHNW/ IVGI Ziel: 3D Service mit Flask aus OSM Daten PythonUnconference - September 2015 2 OSM 3D Import Modellierung Wavefront OBJ X3D X3DOM 3D Portrayal Service
  • 3.
    © 2015 FHNW/ IVGI OpenStreetMap als Datenquelle PythonUnconference - September 2015 3
  • 4.
    © 2015 FHNW/ IVGI PythonUnconference - September 2015 4 Generierung der 3D-Modelle • Gebäudehöhe –Höhenwert oder Anzahl Stockwerke • Dachform –Unterscheidung der häufigsten Typen –Flachdach, wenn keine Angabe [Bildquelle: http://wiki.openstreetmap.org/wiki/Simple_3D_Buildings]
  • 5.
    © 2015 FHNW/ IVGI PythonUnconference - September 2015 5 3D-Portrayal-Service (3DPS) • Aufruf über Webbrowser –Angabe der Parameter in URL (ähnlich wie WMS) http://localhost:5000/3dps?SERVICE=3DPS&REQUEST=GetScene &VERSION=1.0.0&BOUNDINGBOX=1495170,6200358,1502633,6205459 &LAYERS=buildings,roofs,ground,trees&FORMAT=model/x3d+xml –Abspeichern des Modells • Einfacher Viewer –Ansicht des Modells direkt im Browser (X3DOM)
  • 6.
    © 2015 FHNW/ IVGI Resultat PythonUnconference - September 2015 6
  • 7.
    © 2015 FHNW/ IVGI 3dmaps.ch PythonUnconference - September 2015 7 http://rotterdam.3dmaps.ch *) GPU Compression DXT5/S3TC: Compression Ratio 4:1, aber Format nicht unterstützt in Geo-Welt / HTML5  90 CityGML total: 2.72 GB  26'474 Textures à 1024x1024, ca. 77 GB unkomprimert*.  Orthophoto: 10'000 Texturen à 4096x4096, ca. 470 GB unkomprimiert*.
  • 8.
    © 2015 FHNW/ IVGI OSM Daten mit 3dmaps.ch PythonUnconference - September 2015 8 Rendered with Renderman (soon: PovRay)
  • 9.
    © 2015 FHNW/ IVGI PythonUnconference - September 2015 9 Will be announced on Twitter... @MartinChristen @3dmaps_ch ...soon on github...