The aim of this project is to use a convolutional-deconvolutional neural network (such as the one described here or here) to predict building height data from satellite images.
The building height data covers a region of Sao Paulo and can be downloaded from this repository.
We will (eventually) use three sources of satellite images: high-resolution maxar data (not publicly available), lower resolution data from Sentinel 2, and radar images from Sentinel 1.
Currently, this model here is being used, see src/model/imele_predict for a functioning code for predicting height with preset weights.
The pipeline for data preprocessing (georeferecing, downscaling building height data, cropping images to same size) can be found in src/data.
The packages required to run the CNN model can be obtained via
pip install -r requirements.txt
For the data processing gdal and for inspecting the building height model rioxarray are required, which can be installed via conda.
All packages needed for data processing and error calculation are listed in requirements_data.txt.
For obtaining the Sentinel data the package earthengine-api is needed as well as a account for the earth-engine. Please follow the instructions given here https://developers.google.com/earth-engine/guides/python_install
For running the superresolution, please follow instructions in the corresponding notebook.
This project is based on the Cookiecutter template for data science projects and is structured as follows:
├── README.md <- The top-level README for developers using this project.
├── data
│ ├── external <- Data from third party sources.
│ ├── interim <- Intermediate data that has been transformed.
│ ├── processed <- The final, canonical data sets for modeling.
│ └── raw <- The original, immutable data dump.
│
├── models <- Trained and serialized models, model predictions, or model summaries
│
├── notebooks <- Jupyter notebooks. Naming convention is a number (for ordering),
│ the creator's initials, and a short `-` delimited description, e.g.
│ `1.0-jqp-initial-data-exploration`.
│
├── references <- Data dictionaries, manuals, and all other explanatory materials.
│
├── reports <- Generated analysis as HTML, PDF, LaTeX, etc.
│ └── figures <- Generated graphics and figures to be used in reporting
│
├── requirements.txt <- The requirements file for reproducing the analysis environment, e.g.
│ generated with `pip freeze > requirements.txt`
│
├── src <- Source code for use in this project.
├── data <- Scripts to download or generate data
│ └── make_dataset.py
│
├── features <- Scripts to turn raw data into features for modeling
│ └── build_features.py
│
├── models <- Scripts to train models and then use trained models to make
│ │ predictions
│ ├── predict_model.py
│ └── train_model.py
│
└── visualization <- Scripts to create exploratory and results oriented visualizations
└── visualize.py