In this workshop we are going to walk you through the details of the 3D BAG data set, which is a collection of 3D building models at multiple levels of detail for the Netherlands. See https://3dbag.nl. We will introduce the data set, discussing the data model, available formats, data quality and some of the peculiarities. In the hands-on part of the session, we will show how you can make the most out of the data by using Python, whether you integrate with other services or use it directly for analysis. In this part we will focus on CityJSON (http://www.cityjson.org) and cjio (https://github.com/cityjson/cjio), but we will also show other tools that can be helpful for working with the data.
Python version: 3.6 or above. We used Python 3.8 for developing these materials.
Probably the easiest if you install the dependencies with conda
. See how to install conda
Create a new conda environment and set install the dependencies from the environment.yml
file.
conda env create --name foss4gnl_3dbag --file environment.yml
You can also set up everything if you cannot or don't want to use conda. In this case, install the dependencies manually with pip
. The dependencies are listed in the environment.yml
file.
- Introductions
- 3D BAG schema (intro.ipynb)
- Data layers
- Identifiers
- CityJSON introduction (intro.ipynb)
- General schema
- Geometry representations, depth of arrays
- Semantic Objects
- Transformation
- Get 2D layers for your AOI through WFS
- Draw your Area Of Interest in QGIS
- In QGIS
- In Python (wfs.ipynb)
- Basics of CityJSON in Python (basics.ipynb)
- cjio CLI
- CityJSON with standard libraries
- cjio API intro
- Get a citymodel for your area of interest (download.ipynb)
- Get the tile ID-s within a WKT polygon
- Download the tiles
- Merge the tiles
- Subset with the AOI
- Write result
- Assign addresses to CityObjects (addresses.ipynb)
- Access the BAG API
- Get addresses for each CityObject
- Write addresses to attributes
- Create new semantic surfaces (semantics.ipynb)
- Explain the semantic surface access and indexing works in the API
- Create new semantic surfaces per surface orentation
- Assign semantics to the geometry and the citymodel
- Wrap up and summarise the learnings
- Individual work