Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/njanakiev/openstreetmap-heatmap
Visualization of OpenStreetMap Data with Blender and Python
https://github.com/njanakiev/openstreetmap-heatmap
blender blender-scripts data-visualization dataviz openstreetmap python
Last synced: 30 days ago
JSON representation
Visualization of OpenStreetMap Data with Blender and Python
- Host: GitHub
- URL: https://github.com/njanakiev/openstreetmap-heatmap
- Owner: njanakiev
- License: apache-2.0
- Created: 2018-01-22T12:03:28.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-06-04T11:36:41.000Z (over 2 years ago)
- Last Synced: 2024-09-30T05:01:52.454Z (about 1 month ago)
- Topics: blender, blender-scripts, data-visualization, dataviz, openstreetmap, python
- Language: Python
- Homepage:
- Size: 4.46 MB
- Stars: 379
- Watchers: 26
- Forks: 54
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Openstreetmap Heatmap
This project is a visualization of OpenStreetMap data with Blender and Python as a 3D barplot. It creates an occurence heatmap of all points that are collected within a country with a certain tag.OpenStreetMap (OSM) has a vast geospatial data set containing various tags and attributes besides the geometry. By using the [Overpass API](https://wiki.openstreetmap.org/wiki/Overpass_API) we can query for specific tags, filter specific areas and various other kinds of queries. In this case we want to query for tags within the boundary of a country. We are using the two-letter [country codes](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) and filter for a single [OSM tag](https://wiki.openstreetmap.org/wiki/Tags) across all available [OSM elements](https://wiki.openstreetmap.org/wiki/Elements). You can see the various [Map Features](https://wiki.openstreetmap.org/wiki/Map_Features) to get a grasp of the variety.
![DE_biergarten_animation](/assets/DE_biergarten_animation.gif)
# Requirements
- Blender 2.5+
- [overpy](https://python-overpy.readthedocs.io/en/latest/)In order to run this script you need to run
```
blender -b -P run_script.py
```which runs the rendering in the background. You can also load [run_script.py](/run_script.py) into Blender as a script and execute the program from there. You need to have the overpy package available in your Python distribution which is accessed by Blender. I described in this [article](http://til.janakiev.com/using-anaconda-in-blender/) how to use [Anaconda](https://www.anaconda.com/download/) in Blender, which is handy for installing and using additional python packages.
You can edit the settings within the [render_osm_data.py](/render_osm_data.py) under the `# Settings` part. The script can do both render frames of an animation (rotation around the barplot) or render a single frame. You can also load and save the points as a [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON) with the [utils_osm.py](/utils_osm.py) script.
# Gallery
### All Biergarten in Germany
![DE_biergarten](/assets/DE_biergarten.png)
### All Swiss Banks
![CH_bank](/assets/CH_bank.png)
### All Pubs in Great Britain
![GB_pub](/assets/GB_pub.png)