Skip to content

kpranke/3D_houses

Repository files navigation

3D House Project

Table of Contents

  1. Description
  2. Objectives
    1. Challenges
    2. Limitations
    3. Further Developments
  3. Repo Architecture
  4. Installation
  5. Usage
  6. Visuals
  7. Timeline
  8. Personal Situation

Description

This project is a part of the Becode.org AI Bootcamp programme. The goal is to produce a 3D plot of a house situated in Flanders, Belgium with only the address of the house provided.

3d house model

Objectives

  • to be able to search and implement new libraries
  • to be able to read and use the shapefile format
  • to be able to read and use geoTIFFs
  • to be able to render a 3D plot
  • to be able to present a final product

Challenges

  • research required to understand how to handle geospatial data, such as handling raster and vector data structures and their attributes, for example, bands (in rasters) and polygon extent (for vectors) as well as metadata such as: coordinate reference systems (CRS), EPSG, ...
  • research and use of the Python libraries for handling geospatial data and plotting a 3D model

Limitations

  • limited time to deliver the project
  • outdated data available for the region of Flanders - DSM and DTM files available for the region were created in 2014, therefore it is not possible to plot a model of any building created afterwards.

Further Developments

  • organizing the code into Classes
  • improving the efficiency of the code (currently it takes a few minutes to retrieve information from the DSM and DTM files)
  • extending the search area to the whole country of Belgium
  • improving the 3D plot

Repo Architecture

  • README.md : explains the project
  • requirements.txt : lists libraries installed in the environment in which the project was created
  • main.py : Python script file with the add plotting a 3D Canopy Height Model of a house for the provided address in Flanders, Belgium.
  • retrieve_bounds.py : Python script file necessary to create a .csv file containing bounds of 43 GeoTIFF files storing geospatial information of the Flanders region of Belgium as well as links to the respective DSM and DTM files available in a zippped folders on the Geopunt.be website (it is not necessary to rerun this file as the product of it DTM_bounds.csv file is provided in the repo and main.py is accessing it directly)
  • DTM_bounds.csv : .csv file, which stores info containing bounds of 43 GeoTIFF files storing geospatial information of the Flanders region of Belgium as well as links to the respective DSM and DTM files available in a zippped folders on the Geopunt.be website.
  • Visuals : Opdrachtzones DHM-Vlaanderen II_2.jpg and 3DHouse_example.png are two visuals included in the README.md

Installation

git clone this repository into your local environment. Make sure you installed all dependencies mentioned in the requirements.txt.

Usage

To use the program, run 'python main.py' in your environment via the command line. The program will ask you to provide a valid address for a house in Flanders, Belgium. Your input should be in the following order: street house_number, postcode municypality (the same format is used, e.g. by Google Maps). The output is a Canopy Height Model (CHM) of a given house plotted with Plotly. The whole process may take a few minutes.

Visuals

Picture showing how the area of Belgium is divided into 43 DTM and DSM files (source)

DTM and DSM

Example of a plotted 3d model of a house:

3d house model example

Timeline

The duration of the challenge was 8 working days.

  • Deadline: 04/11/21 17:00 PM

Personal Situation

I am currently participating in the Becode.org AI Bootcamp to upskill into a career in data science.

Back to top

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published