Skip to content

A tutorial with a Jupyter Notebook to show how a simple Convolutional Neural Network (CNN) can be built for satellite image classification

Notifications You must be signed in to change notification settings

vikasnataraja/satellite_cnn_tutorial

Repository files navigation

Scene Classification of Satellite Imagery using a Convolutional Neural Network (CNN)

A tutorial with a Jupyter Notebook to show how a simple Convolutional Neural Network (CNN) can be built for satellite image classification.

CNN Architecture

Clone the repo

To run this repo, first clone it to a local location of your choice and cd into it:

git clone https://github.com/vikasnataraja/satellite_cnn_tutorial.git

# alternatively, if you have ssh keys installed for git, you can use this instead
# git clone [email protected]:vikasnataraja/satellite_cnn_tutorial.git

cd satellite_cnn_tutorial/

Install the necessary packages

It is recommended to create a new conda environment with Python 3.10 for this tutorial. Run the following command which will do all the tasks for you (from creating an environment to installing the packages):

If you are running a Mac or Linux system, run the following command:

./install_packages.sh

If you are running a Windows system, run the following command in a UNIX shell (bash, zsh, etc.). It is recommended to use the Windows Subsystem for Linux (WSL) for this command:

./install_packages_windows.sh

Note that you may need to activate the conda environment AFTER running this command on Windows by running conda activate cnn since that can sometimes go unactivated.

Alternatively, if none of those work, you can execute the following commands one by one in a bash or zsh (or any other similar ones) terminal.

conda create -n cnn python=3.10 -y
conda activate cnn
conda install -c conda-forge numpy matplotlib jupyterlab -y
conda install -c anaconda pillow -y
conda install -c conda-forge xarray dask netCDF4 bottleneck -y
conda install tensorflow==2.12.0 -y
conda install -c conda-forge keras==2.12.0 -y

Note: Anaconda installation of tensorflow tends to be slow (30 - 60 minutes). Please feel free to run this in the background beforehand.

Using the repo

You will need to download the data before you can run the notebook. Use this link to download the data and place it in a directory called data/ inside the repo directory.

The entire workflow is hosted on the Jupyter notebook convolutional_neural_network.ipynb so you should be able to run this notebook after following the previous installation steps!

References

Eurosat: A novel dataset and deep learning benchmark for land use and land cover classification. Patrick Helber, Benjamin Bischke, Andreas Dengel, Damian Borth. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2019.

Introducing EuroSAT: A Novel Dataset and Deep Learning Benchmark for Land Use and Land Cover Classification. Patrick Helber, Benjamin Bischke, Andreas Dengel. 2018 IEEE International Geoscience and Remote Sensing Symposium, 2018.

Original Data Repo

About

A tutorial with a Jupyter Notebook to show how a simple Convolutional Neural Network (CNN) can be built for satellite image classification

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published