Remote Sensing Image Analysis with Python
ZFL Bonn, March/April 2015

Mort Canty

Software Installation on Windows

Python

Download and install version 2.7.9 of Python(x,y) for Windows

My Scripts

Download the Zip archive from my CRCPython Git repository and unpack.
Alternatively, if you are familiar with Git, you can clone the repository.
Execute ..\CRC\auxil\dist\auxil-1.1.win32.exe to install my auxil Python package.
Copy the file ..\provmeans\windows 32bit\prov_means.dll to your Windows directory.
You will also need the mlpy package, which you can get here, and the pyshp package, here.

Test your installation: cd to ..\CRC\src\CHAPTER1 and run python ex1_5.py

The follow-along IPython notebooks and scripts can be downloaded here.

Recommended Reading

Langtangen (2009) Python Scripting for Computational Science
Canty (2014) Image Analysis, Classification and Change Detection in Remote Sensing
Westra (2013)
Python Geospatial Development
Rossant (2013) Learning IPython for Interactive Computing and Data Visualization

Web Resources

My software page
Numpy and Scipy documentation
GDAL (Geospatial Data Abstraction Library)
GDAL/OGR in Python
Python GDAL/OGR Cookbook

Course Summary

Python Integrated Development Environments (IDEs)

IDLE

Eclipse/Pydev

IPython

IPython Notebook

Introduction to Python

Hello World!

#!/usr/bin/env python
import sys,math
r = float(sys.argv[1])
s = math.sin(r)
print 'Hello World! sin(%f)=%f'%(r,s)

Basic syntax and namespaces

Variables, lists, tuples, dictionaries

Functions, parameters, keywords, scope

String processing

Input/output

Classes and OOP

Exceptions and Debugging

Exceptions, try/except/finally blocks

debugging in IPython

Array-Oriented Computing

Numpy arrays (ndarray)

Vectorized computation

Slicing

Matrices

Linear algebra

Scipy

GDAL

Command line functions

Reading and writing raster images

Geo-transforms

Vector data, ESRI shapefiles

Python Scripts for Image Analysis

Principal components

Corner detection, Canny edges

Pan-sharpening

Solar incidence angle correction

Clustering

Supervised classification

Parallel computing for cross-validation

Change detection

Radiometric normalization