Hi both,
Py6S is just a wrapper around the underlying 6S model, so it doesn’t have the built-in ability to do atmospheric correction of arbitrary images.
There are other tools that do atmospheric correction but use Py6S ‘under the hood’ to do the radiative transfer calculations - for example ARCSI (
https://github.com/remotesensinginfo/arcsi). I’d suggest using these tools to do atmospheric correction if possible (they can be extended to work with other sensors).
The other option is to write your own code for doing atmospheric correction with Py6S. In simple terms, you’d need to:
1. Parameterise Py6S correctly for your image/sensor/time/atmospheric conditions
2. Extract the three atmospheric correction parameters (coef_xa, coef_xb, coef_xc) for each band
3. Load in your image (using something like GDAL or rasterio) and apply the correction formula using those coefficients
That’s the simplest way of doing this, and would result in a uniform correction across the image. Ideally you’d run Py6S multiple times for various atmospheric conditions, and then create a lookup table and interpolate within the lookup table to do atmospheric correction with varying atmospheric information across the image. I actually wrote a paper on why this is important a while back - see
https://rtwilson.com/academic/WilsonMiltonNield_2014_SpatVarAtmos_Paper.pdf
By the way, I now do freelance work on various remote sensing topics including Py6S - see
www.rtwilson.com for details. If you needed custom atmospheric correction methods implementing then I may be able to do this as paid work.
Hope that helps,
Robin