SlideShare une entreprise Scribd logo
1  sur  9
© 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...

Contenu connexe

En vedette

Making use of OpenStreetMap data with Python
Making use of OpenStreetMap data with PythonMaking use of OpenStreetMap data with Python
Making use of OpenStreetMap data with PythonAndrii Mishkovskyi
 
Visualisation of Complex 3D City Models on Mobile Webbrowsers Using Cloud-bas...
Visualisation of Complex 3D City Models on Mobile Webbrowsers Using Cloud-bas...Visualisation of Complex 3D City Models on Mobile Webbrowsers Using Cloud-bas...
Visualisation of Complex 3D City Models on Mobile Webbrowsers Using Cloud-bas...Martin Christen
 
Staticmaps cloudmade-internal-april-2009
Staticmaps cloudmade-internal-april-2009Staticmaps cloudmade-internal-april-2009
Staticmaps cloudmade-internal-april-2009Andrii Mishkovskyi
 
Build website in_django
Build website in_django Build website in_django
Build website in_django swee meng ng
 
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDBFlask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDBBruno Rocha
 
Quokka CMS - Desenvolvendo web apps com Flask e MongoDB - grupy - Outubro 2015
Quokka CMS - Desenvolvendo web apps com Flask e MongoDB - grupy - Outubro 2015Quokka CMS - Desenvolvendo web apps com Flask e MongoDB - grupy - Outubro 2015
Quokka CMS - Desenvolvendo web apps com Flask e MongoDB - grupy - Outubro 2015Bruno Rocha
 
Quick flask an intro to flask
Quick flask   an intro to flaskQuick flask   an intro to flask
Quick flask an intro to flaskjuzten
 
Node.js Socket.IO
Node.js  Socket.IONode.js  Socket.IO
Node.js Socket.IOEyal Vardi
 
Node.js File system & Streams
Node.js File system & StreamsNode.js File system & Streams
Node.js File system & StreamsEyal Vardi
 
Writing your first web app using Python and Flask
Writing your first web app using Python and FlaskWriting your first web app using Python and Flask
Writing your first web app using Python and FlaskDanielle Madeley
 
Node.js Event Emitter
Node.js Event EmitterNode.js Event Emitter
Node.js Event EmitterEyal Vardi
 
Node js overview
Node js overviewNode js overview
Node js overviewEyal Vardi
 
Introduction to Google App Engine with Python
Introduction to Google App Engine with PythonIntroduction to Google App Engine with Python
Introduction to Google App Engine with PythonBrian Lyttle
 
Putting Your Data on a Map
Putting Your Data on a MapPutting Your Data on a Map
Putting Your Data on a MapShawn Day
 
Async & Parallel in JavaScript
Async & Parallel in JavaScriptAsync & Parallel in JavaScript
Async & Parallel in JavaScriptEyal Vardi
 
Modules and injector
Modules and injectorModules and injector
Modules and injectorEyal Vardi
 
Angular 2.0 forms
Angular 2.0 formsAngular 2.0 forms
Angular 2.0 formsEyal Vardi
 
Angular 2.0 Views
Angular 2.0 ViewsAngular 2.0 Views
Angular 2.0 ViewsEyal Vardi
 
Angular 2.0 Pipes
Angular 2.0 PipesAngular 2.0 Pipes
Angular 2.0 PipesEyal Vardi
 

En vedette (20)

Making use of OpenStreetMap data with Python
Making use of OpenStreetMap data with PythonMaking use of OpenStreetMap data with Python
Making use of OpenStreetMap data with Python
 
Visualisation of Complex 3D City Models on Mobile Webbrowsers Using Cloud-bas...
Visualisation of Complex 3D City Models on Mobile Webbrowsers Using Cloud-bas...Visualisation of Complex 3D City Models on Mobile Webbrowsers Using Cloud-bas...
Visualisation of Complex 3D City Models on Mobile Webbrowsers Using Cloud-bas...
 
Python and GIS
Python and GISPython and GIS
Python and GIS
 
Staticmaps cloudmade-internal-april-2009
Staticmaps cloudmade-internal-april-2009Staticmaps cloudmade-internal-april-2009
Staticmaps cloudmade-internal-april-2009
 
Build website in_django
Build website in_django Build website in_django
Build website in_django
 
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDBFlask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
 
Quokka CMS - Desenvolvendo web apps com Flask e MongoDB - grupy - Outubro 2015
Quokka CMS - Desenvolvendo web apps com Flask e MongoDB - grupy - Outubro 2015Quokka CMS - Desenvolvendo web apps com Flask e MongoDB - grupy - Outubro 2015
Quokka CMS - Desenvolvendo web apps com Flask e MongoDB - grupy - Outubro 2015
 
Quick flask an intro to flask
Quick flask   an intro to flaskQuick flask   an intro to flask
Quick flask an intro to flask
 
Node.js Socket.IO
Node.js  Socket.IONode.js  Socket.IO
Node.js Socket.IO
 
Node.js File system & Streams
Node.js File system & StreamsNode.js File system & Streams
Node.js File system & Streams
 
Writing your first web app using Python and Flask
Writing your first web app using Python and FlaskWriting your first web app using Python and Flask
Writing your first web app using Python and Flask
 
Node.js Event Emitter
Node.js Event EmitterNode.js Event Emitter
Node.js Event Emitter
 
Node js overview
Node js overviewNode js overview
Node js overview
 
Introduction to Google App Engine with Python
Introduction to Google App Engine with PythonIntroduction to Google App Engine with Python
Introduction to Google App Engine with Python
 
Putting Your Data on a Map
Putting Your Data on a MapPutting Your Data on a Map
Putting Your Data on a Map
 
Async & Parallel in JavaScript
Async & Parallel in JavaScriptAsync & Parallel in JavaScript
Async & Parallel in JavaScript
 
Modules and injector
Modules and injectorModules and injector
Modules and injector
 
Angular 2.0 forms
Angular 2.0 formsAngular 2.0 forms
Angular 2.0 forms
 
Angular 2.0 Views
Angular 2.0 ViewsAngular 2.0 Views
Angular 2.0 Views
 
Angular 2.0 Pipes
Angular 2.0 PipesAngular 2.0 Pipes
Angular 2.0 Pipes
 

Similaire à OpenStreetMap in 3D using Python

Cloud Native Computing
Cloud Native ComputingCloud Native Computing
Cloud Native ComputingAarno Aukia
 
Wie nutzen wir Cloud-Infrastruktur @ VSHN.ch
Wie nutzen wir Cloud-Infrastruktur @ VSHN.chWie nutzen wir Cloud-Infrastruktur @ VSHN.ch
Wie nutzen wir Cloud-Infrastruktur @ VSHN.chAarno Aukia
 
Die generierte Zeitmaschine - Historisierung auf Knopfdruck
Die generierte Zeitmaschine - Historisierung auf KnopfdruckDie generierte Zeitmaschine - Historisierung auf Knopfdruck
Die generierte Zeitmaschine - Historisierung auf KnopfdruckTrivadis
 
Ein ansatz für die untersuchung von linkquellen einer webseite mithilfe von p...
Ein ansatz für die untersuchung von linkquellen einer webseite mithilfe von p...Ein ansatz für die untersuchung von linkquellen einer webseite mithilfe von p...
Ein ansatz für die untersuchung von linkquellen einer webseite mithilfe von p...E-Government
 
OSDC 2010 | IT Service Management mit Open Source Software „OpenITSM“ by Juli...
OSDC 2010 | IT Service Management mit Open Source Software „OpenITSM“ by Juli...OSDC 2010 | IT Service Management mit Open Source Software „OpenITSM“ by Juli...
OSDC 2010 | IT Service Management mit Open Source Software „OpenITSM“ by Juli...NETWAYS
 
HTAG_Skalierung_Plattform_lokal_final_versand.pptx
HTAG_Skalierung_Plattform_lokal_final_versand.pptxHTAG_Skalierung_Plattform_lokal_final_versand.pptx
HTAG_Skalierung_Plattform_lokal_final_versand.pptxFIWARE
 
Cloud Computing in der öffentlichen Verwaltung: ein konkreter Erfahrungsbericht
Cloud Computing in der öffentlichen Verwaltung: ein konkreter ErfahrungsberichtCloud Computing in der öffentlichen Verwaltung: ein konkreter Erfahrungsbericht
Cloud Computing in der öffentlichen Verwaltung: ein konkreter Erfahrungsberichthpchrist
 
Linked Open Data Pilot Österreich - Beta Launch
Linked Open Data Pilot Österreich - Beta LaunchLinked Open Data Pilot Österreich - Beta Launch
Linked Open Data Pilot Österreich - Beta LaunchMartin Kaltenböck
 
3D-DAY in Friedrichshafen
3D-DAY in Friedrichshafen3D-DAY in Friedrichshafen
3D-DAY in FriedrichshafenGeorg Eck
 
TFF2023 - Navigating Tourism Data Nexus
TFF2023 - Navigating Tourism Data NexusTFF2023 - Navigating Tourism Data Nexus
TFF2023 - Navigating Tourism Data NexusTourismFastForward
 
Sommerkurs python 05_u_06_gui
Sommerkurs python 05_u_06_guiSommerkurs python 05_u_06_gui
Sommerkurs python 05_u_06_guiJoe OntheRocks
 
CV Anthony FARAUT - DE
CV Anthony FARAUT - DECV Anthony FARAUT - DE
CV Anthony FARAUT - DEAnthony FARAUT
 
W3C/DFKI Automotive Workshop
W3C/DFKI Automotive WorkshopW3C/DFKI Automotive Workshop
W3C/DFKI Automotive WorkshopGeorg Rehm
 

Similaire à OpenStreetMap in 3D using Python (20)

Cloud Native Computing
Cloud Native ComputingCloud Native Computing
Cloud Native Computing
 
Wie nutzen wir Cloud-Infrastruktur @ VSHN.ch
Wie nutzen wir Cloud-Infrastruktur @ VSHN.chWie nutzen wir Cloud-Infrastruktur @ VSHN.ch
Wie nutzen wir Cloud-Infrastruktur @ VSHN.ch
 
VDV 45x oder Google (GTFS)?
VDV 45x oder Google (GTFS)?VDV 45x oder Google (GTFS)?
VDV 45x oder Google (GTFS)?
 
Die generierte Zeitmaschine - Historisierung auf Knopfdruck
Die generierte Zeitmaschine - Historisierung auf KnopfdruckDie generierte Zeitmaschine - Historisierung auf Knopfdruck
Die generierte Zeitmaschine - Historisierung auf Knopfdruck
 
Ein ansatz für die untersuchung von linkquellen einer webseite mithilfe von p...
Ein ansatz für die untersuchung von linkquellen einer webseite mithilfe von p...Ein ansatz für die untersuchung von linkquellen einer webseite mithilfe von p...
Ein ansatz für die untersuchung von linkquellen einer webseite mithilfe von p...
 
OSDC 2010 | IT Service Management mit Open Source Software „OpenITSM“ by Juli...
OSDC 2010 | IT Service Management mit Open Source Software „OpenITSM“ by Juli...OSDC 2010 | IT Service Management mit Open Source Software „OpenITSM“ by Juli...
OSDC 2010 | IT Service Management mit Open Source Software „OpenITSM“ by Juli...
 
Analytics as a Service - Microsoft Azure
Analytics as a Service  - Microsoft Azure Analytics as a Service  - Microsoft Azure
Analytics as a Service - Microsoft Azure
 
HTAG_Skalierung_Plattform_lokal_final_versand.pptx
HTAG_Skalierung_Plattform_lokal_final_versand.pptxHTAG_Skalierung_Plattform_lokal_final_versand.pptx
HTAG_Skalierung_Plattform_lokal_final_versand.pptx
 
Cloud Computing in der öffentlichen Verwaltung: ein konkreter Erfahrungsbericht
Cloud Computing in der öffentlichen Verwaltung: ein konkreter ErfahrungsberichtCloud Computing in der öffentlichen Verwaltung: ein konkreter Erfahrungsbericht
Cloud Computing in der öffentlichen Verwaltung: ein konkreter Erfahrungsbericht
 
Linked Open Data Pilot Österreich - Beta Launch
Linked Open Data Pilot Österreich - Beta LaunchLinked Open Data Pilot Österreich - Beta Launch
Linked Open Data Pilot Österreich - Beta Launch
 
Großveranstaltungen in Smart Citys
Großveranstaltungen in Smart CitysGroßveranstaltungen in Smart Citys
Großveranstaltungen in Smart Citys
 
3D-DAY in Friedrichshafen
3D-DAY in Friedrichshafen3D-DAY in Friedrichshafen
3D-DAY in Friedrichshafen
 
TFF2023 - Navigating Tourism Data Nexus
TFF2023 - Navigating Tourism Data NexusTFF2023 - Navigating Tourism Data Nexus
TFF2023 - Navigating Tourism Data Nexus
 
Sommerkurs python 05_u_06_gui
Sommerkurs python 05_u_06_guiSommerkurs python 05_u_06_gui
Sommerkurs python 05_u_06_gui
 
Konzept Technology Cinema 3D - Hannover Messe 2014
Konzept Technology Cinema 3D - Hannover Messe 2014Konzept Technology Cinema 3D - Hannover Messe 2014
Konzept Technology Cinema 3D - Hannover Messe 2014
 
VDC Newsletter 2005-10
VDC Newsletter 2005-10VDC Newsletter 2005-10
VDC Newsletter 2005-10
 
Einführung in DIALux
Einführung in DIALuxEinführung in DIALux
Einführung in DIALux
 
CV Anthony FARAUT - DE
CV Anthony FARAUT - DECV Anthony FARAUT - DE
CV Anthony FARAUT - DE
 
VDC-Newsletter November 2014
VDC-Newsletter November 2014VDC-Newsletter November 2014
VDC-Newsletter November 2014
 
W3C/DFKI Automotive Workshop
W3C/DFKI Automotive WorkshopW3C/DFKI Automotive Workshop
W3C/DFKI Automotive Workshop
 

Plus de Martin Christen

Opening Session GeoPython & Python Machine Learning Conference
Opening Session GeoPython & Python Machine Learning Conference Opening Session GeoPython & Python Machine Learning Conference
Opening Session GeoPython & Python Machine Learning Conference Martin Christen
 
EuroPython 2019: GeoSpatial Analysis using Python and JupyterHub
EuroPython 2019: GeoSpatial Analysis using Python and JupyterHubEuroPython 2019: GeoSpatial Analysis using Python and JupyterHub
EuroPython 2019: GeoSpatial Analysis using Python and JupyterHubMartin Christen
 
Lightning Talk GeoBeer #25
Lightning Talk GeoBeer #25Lightning Talk GeoBeer #25
Lightning Talk GeoBeer #25Martin Christen
 
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...Martin Christen
 
Teaching with JupyterHub - lessons learned
Teaching with JupyterHub - lessons learnedTeaching with JupyterHub - lessons learned
Teaching with JupyterHub - lessons learnedMartin Christen
 
Mixed Reality Anwendungen mit 3D-Stadtmodellen
Mixed Reality Anwendungen mit 3D-StadtmodellenMixed Reality Anwendungen mit 3D-Stadtmodellen
Mixed Reality Anwendungen mit 3D-StadtmodellenMartin Christen
 
Gettiing Started with IoT using Raspberry Pi and Python
Gettiing Started with IoT using Raspberry Pi and PythonGettiing Started with IoT using Raspberry Pi and Python
Gettiing Started with IoT using Raspberry Pi and PythonMartin Christen
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python DevelopmentMartin Christen
 
3D Computer Graphics with Python
3D Computer Graphics with Python3D Computer Graphics with Python
3D Computer Graphics with PythonMartin Christen
 
Webilea: The OpenWebGlobe Project
Webilea: The OpenWebGlobe ProjectWebilea: The OpenWebGlobe Project
Webilea: The OpenWebGlobe ProjectMartin Christen
 
OpenWebGlobe - GeoSharing Bern
OpenWebGlobe - GeoSharing BernOpenWebGlobe - GeoSharing Bern
OpenWebGlobe - GeoSharing BernMartin Christen
 

Plus de Martin Christen (12)

Opening Session GeoPython & Python Machine Learning Conference
Opening Session GeoPython & Python Machine Learning Conference Opening Session GeoPython & Python Machine Learning Conference
Opening Session GeoPython & Python Machine Learning Conference
 
EuroPython 2019: GeoSpatial Analysis using Python and JupyterHub
EuroPython 2019: GeoSpatial Analysis using Python and JupyterHubEuroPython 2019: GeoSpatial Analysis using Python and JupyterHub
EuroPython 2019: GeoSpatial Analysis using Python and JupyterHub
 
Lightning Talk GeoBeer #25
Lightning Talk GeoBeer #25Lightning Talk GeoBeer #25
Lightning Talk GeoBeer #25
 
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
 
Teaching with JupyterHub - lessons learned
Teaching with JupyterHub - lessons learnedTeaching with JupyterHub - lessons learned
Teaching with JupyterHub - lessons learned
 
Mixed Reality Anwendungen mit 3D-Stadtmodellen
Mixed Reality Anwendungen mit 3D-StadtmodellenMixed Reality Anwendungen mit 3D-Stadtmodellen
Mixed Reality Anwendungen mit 3D-Stadtmodellen
 
Presentation final 72
Presentation final 72Presentation final 72
Presentation final 72
 
Gettiing Started with IoT using Raspberry Pi and Python
Gettiing Started with IoT using Raspberry Pi and PythonGettiing Started with IoT using Raspberry Pi and Python
Gettiing Started with IoT using Raspberry Pi and Python
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python Development
 
3D Computer Graphics with Python
3D Computer Graphics with Python3D Computer Graphics with Python
3D Computer Graphics with Python
 
Webilea: The OpenWebGlobe Project
Webilea: The OpenWebGlobe ProjectWebilea: The OpenWebGlobe Project
Webilea: The OpenWebGlobe Project
 
OpenWebGlobe - GeoSharing Bern
OpenWebGlobe - GeoSharing BernOpenWebGlobe - GeoSharing Bern
OpenWebGlobe - GeoSharing Bern
 

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...