Robin Wilson

A PhD student studying complexity in remote sensing


Example output from the run360 method in Py6S, showing the atmospherically-modified BRDF of a vegetation surface Py6S is a Python programming language interface to the 6S Radiative Transfer Model. It allows you to run many 6S simulations using a simple Python syntax, rather than dealing with the rather cryptic 6S input and output files. As well as generally making it easier to use 6S, Py6S adds new features including:

  • The ability to run many simulations easily and quickly, with no manual editing of input files
  • The ability to run for many wavelengths and/or angles and easily plot the results
  • The ability to import real-world data to parameterise 6S, from radiosonde measurements and AERONET sun photometer measurements

Py6S was originally created as part of my PhD, to allow me to easily run a number of 6S simulations - to perform sensitivity analyses, for example - but has now been extended to cover the entire range of 6S functionality. Anything that can be done using the standard 6S model can be done through Py6S.

Py6S is described in a paper which is currently In Press at Computers and Geosciences - the reference will be added here when it is officially released. This reference should be cited whenever Py6S is used in any academic work.

To get started, go to the documentation at the Py6S ReadTheDocs page. The installation instructions there will take you through how to compile the main 6S executable for your system (Windows, Linux and OS X) and then how to install the Py6S interface from the Python Package Index. The code is open-source, released under the LGPL license, and is available at the Py6S Github Repository.

If you have any problems installing or using Py6S then please contact me at robin@rtwilson.com - I'd love to help!