A tutorial with a Jupyter Notebook to show how a simple Convolutional Neural Network (CNN) can be built for satellite image classification.
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/
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.
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!
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.