I'm new to QGIS and I would like to convert SPOT(2-5) images from DN to TOA. How do I go about doing this? I've an idea of how to do it for Landsat images however I'm not sure about SPOT.

  • 1
    do you want to transform it to TOA radiance or TOA reflectance??
    – Pau
    Aug 18, 2014 at 12:57
  • TOA reflectance
    – Barry
    Aug 18, 2014 at 13:13

2 Answers 2


There is two ways you can do this:

  1. Inside the toolbox:
  • Grass: i.atcorr: performs atmospheric correction (i don´t know if it works with spot)
  • Orfeo Toolbox: Optical calibration (works with spot 5)
  1. Inside toolbox --> band math
  • you can read the metadata, look for the coeficients for the following equations ( for example: <SUN_ELEVATION>, <PHYSICAL_BIAS>, <PHYSICAL_GAIN>)

  • you can find d in Chander et al. 2009

  • you can find ESUN in SPOT ESUN

  • transform DN to TOA radiance (L=DN/Ak; A= bandgain, B=bandbias)

  • transform TOA radiance to TOA reflectance (p=[PI*d^2*L]/[ESUN*cos(theta)]; PI=3,14..., d= distance to solar to earth, L = TOA radiance, ESUN = Mean exoatmospheric solar irradiance, theta = Solar zenith angle (90-SUN_ELEVATION))

  • you must do this for every band

  • The equation works however for Spot it should be (p=[PI*L]/[ESUNd^2*cos(theta)]
    – Barry
    Aug 30, 2014 at 23:41
  • theta should be solar zenith angle in radians, right?
    – GeoMonkey
    Jul 1, 2021 at 14:27

I have been looking online a lot for information regarding this, but it's pretty sparse because most links and resources have gone dead since this question was asked.

The SPOT World Heritage CARTO 2A FAQ outlines what you would need to do (AFTER downloading a zipped L1A SPOT file from the SPOT World Heritage Portal, putting it into the CARTO processing service, and receiving a cartographically projected but radiometrically/atmospherically uncorrected 'N2A' file).

The FAQ includes the ESUN/Esλ values for all SPOT Satellites. As of this posting date, you can still make use of this service, but here's an Archive Version of the FAQ; you can still apply these equations to an L1A-non-CARTO image as the <PHYSICAL_GAIN>/<SUN_ELEVATION> properties are buried within the METADATA.DIM files if you open them up in Notepad or a DIM-reading software.

It's simplified with slightly different correction steps using an L1A/'N2A-CARTO' file:

1. DN to TOA Radiance: Lλ= DN / G

Lλ = TOA Radiance of the spectral band, in W/m²/sr/µm

DN = Dimensionless Number

G = Gain, referred to as <PHYSICAL GAIN> in the accompanying 'CARTO_2A'.xml/L1A METADATA.DIM file, for EACH band

2. TOA Radiance to TOA Reflectance: ρλ = (π * Lλ) / (cos(θsz) * (Esλ * dsun(t))

ρλ = TOA Reflectance

π = pi, aka 3.14

Lλ = TOA Radiance, your answer from 1.

cos(θsz) = Cosine of Solar Zenith Angle, <SUN_ELEVATION> in the 'CARTO_2A'.xml/L1A METADATA.DIM file

Esλ = Mean Average Solar Irradiance for a Band. It has to be corrected against dsun(t) for that day of image acquisition, see 2a.

2a. dsun(t) = 1 / (1 - e * cos[n{t-to}])^2

e = orbit eccentricity (0.01673)

n = mean rotation angle (0.0172 rad / day)

t = Julian day of image acquisition date, i.e. January 10th is 10; March 3rd would be 62

to = 2. SWH doesn't say what this is

Plug these equations into QGIS/ your GIS/EO software of choice with Band Maths for each band individually, and you're away.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.