Tutorial of basic remote sensing and GIS methodologies using open source software (GDAL in Python or R)
HTML Jupyter Notebook
Latest commit b315318 Apr 22, 2016 @ceholden Py3 fixes & fix links


Open Source Geoprocessing Tutorial

Creative Commons License

Tutorial of basic remote sensing and GIS methodologies using open source software (GDAL in Python). Tutorial covers workflow to perform image classification using machine learning classifiers:

  1. Introduction [Python] [R]
  2. The GDAL datatypes and objects [Python] [R]
  3. Your first vegetation index [Python] [R]
  4. Visualizing data [Python] [R]
  5. Vector data - the OGR library [Python] [R]
  6. Land cover classification [Python] [R]

R Installation

The following R libraries will be needed for this tutorial:

  • raster
  • rgdal
  • sp
  • randomForest

Install them from within R as follows:

install.packages(c('raster', 'rgdal', 'sp', 'randomForest'))

Python Installation

Thanks to the lovely people at binder, you can try running the lessons on their servers via magic:


To run the Jupyter Notebooks (formerly known as IPython Notebooks) and follow the tutorial locally, you will need to install Python and the libraries used in the tutorials. This installation can be accomplished in many ways, but I will list the two most common approaches:


I recommend using the Anaconda Python distribution to make installation of the tutorial dependencies less complicated. After installing Anaconda or "miniconda" by following their instructions, you can install the dependencies as follows:

conda env create -f environment.yml
source activate open-geo-tutorial


Assuming you already have Python installed, you could use the the Python package manager, pip, to install the dependencies.

Following "pip" convention, you can find all package requirements in the requirements.txt file. I would also recommend installing these packages into a virtual environment to avoid conflicts with existing versions of the required Python packages. To isolate these dependencies from the rest of your system, use virtualenv:

# Create virtual environment to isolate dependencies
virtualenv venv
# Activate virtual environment
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt

You will need to have GDAL installed for Python to build the drivers against. You may have the Python bindings already built as part of GDAL's installation process.