This project was a teamwork by Arnaud D., Lyes and Shilpa S..
This is a learning project about data visualization using Python tools. The objective is to generate a 3D rendering of any building located in the Flanders region of Belgium using open data.
Input : an address given by user or selected by user from a pre-determined list. Example : Schoenmarkt 35, 2000 Antwerpen
Output : a 3D image rendered for the building structure at the above address. Example :
This work was done during working hours in 2 weeks in June 2021 as required by the project timeline. It means there's room for improvements in the future if more time could be allowed to it ;)
Please note that this project was done at the beginning of a training in AI where the teammates were enrolled. The primary objective was to consolidate our learnings in:
- Python (specifically in pandas, numpy and matplotlib libraries),
- Git and GitHub,
- IDEs and notebooks,
- Teamwork
This is why there is room for improvements, both for the 3D rendering itself (eg, using other plotting libraries) and for adding other features like living area of the house in m², number of floors, if there is a pool, the vegetation in the neighborhood, etc... Therefore, any contribution (comments, feedback, feature suggestion) or help is welcome!
From the address of a house or building given by the final user or selected from a pre-determined list, our application retrieves:
- its location within Flanders (using an API),
- the cadastral data associated to it,
- the elevation data (please see resources.md for more info) of the location and its surroundings
Then, our python programming will ensure the 3D rendering!
DSM - Digital Surface Model
DTM - Digital Terrain Model
Above links contain the required .tif files for DSM and DTM respectively. .tif is for the elevation of a structure.
Cadastral Data
Above link contains the required files for Belgium specific Lambert72 coordinates. They are for the location, and the shape of the building on ground.
- Clone the project with this command in your terminal :
git clone https://github.com/lyesds/3D_houses.git
- Download at least one couple of DSM/DTM related files (for example DHMVIIDSMRAS1m_k15.zip and DHMVIIDTMRAS1m_k15.zip). The more files you have, the larger the area of Flanders will be covered by the application.
- Extract the content of the GeoTIFF folder inside the downloaded zip files into folders
assets/data/DSM
andassets/data/DTM
respectively. - Download the cadastral data (see link above) and extract its content into
assets/data/cadastral
. - Lastly, go to the root of the project folder with your terminal and run the line below :
pip install -r requirements.txt
Click [here](link to jupyter nb) to open the interface and enjoy!
- ✔️ consolidate the knowledge in Python 🐍, specifically in numpy, pandas and matplotlib.
- ✔️ search and implement new libraries: geopandas, osgeo, gdal, rasterio, shapely.
- ✔️ read and use the shapefile format
- ✔️ read and use .tif files (GeoTIFF)
- ✔️ render a 3D plot
- ✔️ present a final product
- The client is LIDAR PLANES, a company active in the Geospatial industry.
- The goal is to launch a new branch in the insurance business using a 3D model of houses with only their addresses as input.
Must-have features: 3D lookup of houses:heavy_check_mark:
Nice-to-have features: quick rendering:heavy_check_mark:, additional features (living area of the house in m², number of floors, if there is a pool, the vegetation in the neighborhood, etc...), better visualizations.