Remote Sensing Image Analysis with Python
ZFL Bonn, March/April 2015
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