What is Atmospheric Correction in Satellite Imagery?
Atmospheric correction turns raw satellite imagery into surface reflectance, the data you need for accurate NDVI, change detection, and analysis.
Summary
- Atmospheric correction removes the optical effects of the atmosphere from satellite imagery, converting top-of-atmosphere (TOA) reflectance into surface reflectance, the actual brightness of the ground.
- Raw satellite imagery includes everything between the satellite and the ground: aerosols, water vapour, dust, ozone, smoke. That’s not what you want to measure.
- Without correction, the same patch of ground can produce wildly different NDVI values from week to week, purely because the atmosphere changed. That kills time-series analysis.
- Sentinel-2 Level-2A and Landsat Collection 2 Level-2 ship pre-corrected using Sen2Cor and LaSRC respectively. Most commercial high-resolution imagery does not.
- Different methods exist for different needs: Sen2Cor and ACOLITE are free, FLAASH and ATCOR are paid, and dark object subtraction (DOS) is the rough-and-ready option when nothing better is available.
A vegetation monitoring project images the same patch of crops twice, three weeks apart. Cloud-free both times. Same satellite, same sensor, same bands. The NDVI numbers swing by 30%.
The crops didn’t change that much. The atmosphere did.
This is the part of satellite imagery nobody warns you about. Every photo you’ve ever seen taken from space is, in a small but important way, lying to you. The satellite isn’t really looking at the ground. It’s looking at the top of the atmosphere, with the ground sort of fuzzily visible through several kilometres of air, water vapour, dust, and whatever forest-fire smoke happened to be drifting through that morning.
Atmospheric correction is how we strip that atmosphere out. Without it, you’re not measuring what’s on the ground. You’re measuring what’s on the ground plus everything between you and the ground. For some applications that’s fine. For most serious ones, it’s a disaster.
The Atmosphere Is Lying to Your Satellite
Here’s the basic problem. Sunlight starts at the sun, travels 150 million kilometres through empty space, and then hits Earth’s atmosphere. That last bit, maybe 100 kilometres of stuff, is where everything gets messy.
The atmosphere scatters some of the light sideways before it ever reaches the ground. (That’s why the sky is blue. Blue wavelengths scatter more than red.) It absorbs some of it entirely, especially in specific water-vapour and ozone bands. The light that does make it through hits the surface, bounces back up, and then has to make the whole trip in reverse, getting scattered and absorbed all over again before it reaches the satellite.

So when a satellite “sees” a pixel of imagery, it’s actually seeing a mixture of:
- Light that reflected cleanly off the ground (the bit you want)
- Light that scattered off aerosols in the air and never touched the ground at all (called “path radiance”, the bit you don’t want)
- Light from the ground that got attenuated on its way back up (less than there should be)
- Light absorbed by water vapour, ozone, oxygen, CO2, and methane in specific narrow bands
The raw measurement, the number the sensor records before any processing, is called top-of-atmosphere (TOA) reflectance. It’s perfectly accurate. It’s also not what you want.
What you want is surface reflectance: how bright the actual ground is, independent of whatever atmospheric conditions happened to exist that day. That number is comparable across dates, across sensors, across locations. TOA isn’t.
What Atmospheric Correction Actually Does
The correction has to undo physical effects, so it works by modelling those effects and reversing them. The classic approach uses a radiative transfer model. Basically a computational simulation of how light moves through the atmosphere given certain conditions.
Feed the model with:
- Aerosol optical depth (how dusty or hazy the air is)
- Water vapour content (how much moisture sits between the ground and the satellite)
- Ozone column (mostly relevant for UV bands)
- Sun-target-sensor geometry (the angles involved)
- Surface elevation (more atmosphere above sea-level surfaces than above mountains)
The model then tells you: given these conditions, this is how much atmospheric distortion exists in each pixel’s measurement. Subtract that out, and what’s left is surface reflectance.
The hard part is getting the atmospheric parameters. Some come from external sources, like ozone columns from NOAA and water vapour from MODIS retrievals or from the satellite’s own bands. Aerosol optical depth is the trickiest one to nail down, and it’s also the parameter that matters most. Half the engineering of atmospheric correction is “how do we estimate aerosols well enough.”
TOA vs Surface Reflectance, Visually
Here’s the same scene in both forms. Same satellite, same date, same area. The only difference is whether atmospheric correction has been applied.

On the left, that milky blue cast is path radiance. Light bouncing off aerosols in the air, never actually touching the ground. It makes water look brighter than it is. It softens contrast. It pushes everything toward the same washed-out tone.
On the right, after correction, dark features stay dark. The water is properly deep blue. The forest is properly dark green. The brown fields are properly brown. This is what you’d see if you somehow stripped away the atmosphere and looked straight at the ground.
The visual difference is obvious. The analytical difference is far more important. The NDVI you calculate from the right image actually reflects vegetation health. The NDVI from the left image reflects vegetation health plus whatever the atmosphere was doing that morning, and the atmosphere changes constantly.
The Methods People Actually Use
A handful of correction methods dominate the field. They differ in physical rigour, computational cost, and how badly they fall over when atmospheric inputs are missing.
| Method | What it is | Free? | Best for |
|---|---|---|---|
| Sen2Cor | ESA’s official Sentinel-2 processor (Level-1C to Level-2A) | Yes | Default Sentinel-2 correction |
| LaSRC | USGS Landsat Surface Reflectance Code | Yes | Default Landsat correction |
| ACOLITE | RBINS open-source tool, especially good over water | Yes | Coastal, inland water, lakes |
| FLAASH | MODTRAN-based, sold with ENVI | No | Commercial multispectral and hyperspectral |
| ATCOR | Closed-source, sold with ERDAS or standalone | No | Production environments with mixed sensors |
| 6S / 6SV | Academic radiative transfer model, basis of many others | Yes | Research, custom pipelines |
| DOS | Dark Object Subtraction, empirical not physics-based | Yes | Quick-and-dirty when nothing else is available |
| iCOR | VITO’s correction tool, works for Sentinel-2 and Landsat | Yes | Multi-sensor consistency |
| Polymer | Aerosol-tolerant correction for ocean colour | Yes | Open ocean, turbid water |
A few patterns are worth pointing out.
Sen2Cor and LaSRC are the default for the free data sources. If you download Sentinel-2 Level-2A or Landsat Collection 2 Level-2 from ESA or USGS, the correction has already been applied. You don’t have to do anything. This is one of the underrated wins of the free data programmes: billions of square kilometres of atmospherically corrected imagery, no licence cost, no processing required.
Commercial high-resolution imagery usually does not ship corrected. WorldView, Pléiades, Beijing-3, Jilin-1, SuperView. When you buy these products as standard, you typically get either raw TOA imagery or basic radiometrically calibrated imagery with the atmosphere still very much present. Atmospheric correction is an additional step you (or your provider) have to do.
ACOLITE and Polymer were built specifically because the standard methods fall apart over water. Surface reflectance over deep water is tiny. Most of what the satellite sees is path radiance from the atmosphere, not bottom reflectance or even surface reflectance. Ocean colour applications need correction methods that are aerosol-tolerant in a way Sen2Cor wasn’t designed for.
Dark Object Subtraction is the duct-tape solution. It assumes that the darkest pixel in your image (a deep shadow, a clear lake) should have effectively zero reflectance in the visible bands, so whatever brightness it does have must be atmospheric. Subtract that value from every pixel and call it done. It’s empirical, ignores wavelength-specific scattering, and produces results that range from “surprisingly OK” to “definitely wrong” depending on the scene. It works with zero auxiliary data, which is sometimes all you have.
What Wavelengths Get Hit Hardest
Not all bands suffer equally. Atmospheric effects are strongly wavelength-dependent, and that determines how much correction matters for any given application.
Blue light scatters off everything. That’s why the sky is blue, why distant mountains look hazy, and why the blue band is the most affected by aerosols. Green and red scatter less. Near-infrared barely scatters at all, which is part of why NIR is so useful for vegetation analysis. Shortwave infrared barely interacts with the atmosphere at clean-sky conditions but gets absorbed strongly by water vapour in specific bands.
The practical implication: anything that uses the blue band (true-colour visualisation, water turbidity, ocean colour) needs proper correction. Anything that primarily uses NIR (most vegetation indices) is more forgiving but still benefits.
NDVI uses red and NIR. Without correction, the red value is too high because atmospheric path radiance adds brightness to it, which compresses the difference between red and NIR, which makes vegetation look less vigorous than it actually is. Over time, as atmospheric conditions vary, your NDVI baseline drifts. Suddenly a healthy field looks like it’s declining. It isn’t.
When You Need Correction (and When You Can Skip It)
This is the part most guides skip. Atmospheric correction matters more for some applications than others. Knowing which is which saves time and money.
You absolutely need atmospheric correction for:
- Time-series analysis of any kind. Comparing images from different dates only works if the atmosphere has been removed. Otherwise you’re partly measuring weather.
- Quantitative vegetation indices (NDVI, EVI, NDWI, NDRE). Even small TOA errors compound into meaningful index drift. Geopera’s docs site catalogues over 350 spectral indices, and nearly every one assumes you’re working with surface reflectance.
- Change detection across multiple acquisitions. Same logic. Without correction, atmospheric variation will look like real change.
- Multi-sensor analysis. Combining Sentinel-2 with Landsat with WorldView without correction is impossible. Each sensor has slightly different atmospheric responses; correction normalises them.
- Quantitative water applications. Bathymetry, water quality, algal bloom detection. The signal from water is tiny. The atmosphere dominates the raw measurement.
- Anything you’ll feed to a machine learning model that you want to generalise across times and places.
You can skip it (mostly) for:
- One-off visualisation where you just need a pretty picture for a slide deck. TOA looks fine enough for a single date.
- Visual interpretation by an analyst comparing features in a single scene. Object detection, asset counting, parking lot censuses. The atmosphere doesn’t really change the answer.
- Cases where you’ll do an empirical relative calibration anyway, like normalising to known invariant features within the scene.
The Honest Limitations
Atmospheric correction is physics-based modelling, which means it’s only as good as its inputs. A few things can go wrong.
Bad aerosol estimates. If the model thinks there’s clean air over your scene but actually there’s smoke from a forest fire, the correction will be wrong. The error is sometimes larger than the atmospheric effect itself.
Adjacency effects. Light that scattered off bright neighbouring pixels (a white roof, a snowfield, a cloud edge) bleeds into the measurement of dark pixels. Standard atmospheric correction doesn’t fully handle this.
Thin cirrus clouds. These are nearly invisible in standard cloud masks but still affect reflectance. Some processors use a specific cirrus band (Sentinel-2 has one at 1380nm) to detect and partially correct for this.
Cloud shadows. A pixel in cloud shadow gets less direct sunlight than a pixel in full sun. Atmospheric correction handles direct illumination but not shadow geometry.
Bright over-corrections in shallow water. Some methods, tuned for land, can produce nonsense negative reflectance over clear shallow water where the actual signal is mostly bottom reflectance.
Knowing these failure modes matters. A correction product isn’t the same as ground truth. It’s an estimate, with error bars, and those error bars get bigger when conditions are unusual.
Where This Fits With What We Do
At Geopera, atmospheric correction is part of the standard processing we apply to every commercial imagery order, alongside orthorectification and pansharpening. It’s not an extra. It’s not a paid upgrade. It happens before the file ever reaches you.
The reason is straightforward. If you bought satellite imagery to do something with it (calculate vegetation indices, detect change, monitor a coastline, feed a model) then uncorrected TOA data isn’t fit for purpose. Delivering it raw and letting you “handle the correction yourself” is the polite version of delivering broken product.
Most of the free data sources already come corrected (Sentinel-2 L2A, Landsat C2 L2). For everything else, including Maxar/Vantor WorldView, 21AT’s Beijing-3, CGSTL’s Jilin-1, SpaceWill’s SuperView, and Wyvern hyperspectral, we run correction ourselves before delivery. You get surface reflectance, not raw TOA, with no extra step on your end.
This is why our pricing looks different from other providers’. Most charge a base rate for raw imagery and then 30-80% extra for processing. We charge one number that already includes the work that turns raw imagery into something analysis-ready.
If you’d rather see it work than read about it, you can order processed imagery through the Pera Portal, or talk to our team about what processing your project actually needs.
Frequently Asked Questions
What is atmospheric correction in remote sensing?
Atmospheric correction is the process of removing the optical effects of Earth’s atmosphere (scattering and absorption by aerosols, water vapour, ozone, and gases) from satellite imagery. The output is surface reflectance, which represents the actual brightness of the ground rather than the brightness recorded at the top of the atmosphere.
Do I need atmospheric correction for NDVI?
For single-date qualitative visualisation, no. For any quantitative or time-series NDVI analysis, yes. Without correction, NDVI values from the same field on different dates can swing by 20-40% purely from atmospheric variability, which makes trend analysis unreliable.
Is Sentinel-2 Level-2A already atmospherically corrected?
Yes. Sentinel-2 Level-2A products are corrected using ESA’s Sen2Cor processor and represent surface reflectance. Level-1C is the uncorrected top-of-atmosphere version. Most users should download L2A unless they need to apply a different correction method.
What’s the difference between TOA reflectance and surface reflectance?
TOA (top-of-atmosphere) reflectance is what the satellite sensor measures directly, which includes both the ground signal and atmospheric effects. Surface reflectance is what’s left after atmospheric correction removes those effects, representing the actual brightness of the ground. Surface reflectance is comparable across dates and sensors; TOA reflectance is not.
Which atmospheric correction software is best?
It depends on the use case. For Sentinel-2 over land, Sen2Cor is the default and works well. For Sentinel-2 over coastal and inland water, ACOLITE generally outperforms Sen2Cor. For Landsat, USGS Collection 2 Level-2 (LaSRC) is the standard. For commercial high-resolution imagery, FLAASH and ATCOR are industry standards but require paid licences. 6S underlies several of these and is the choice for research and custom pipelines.
Can dark object subtraction replace proper atmospheric correction?
Sometimes. DOS is fast, requires no auxiliary data, and produces acceptable results for visual interpretation. It struggles with wavelength-dependent scattering, doesn’t handle absorption properly, and falls over when no genuinely dark pixels exist in the scene. For quantitative work, prefer a physics-based correction method when one is available.
Need analysis-ready satellite imagery without the processing headache? Geopera applies atmospheric correction (along with orthorectification, pansharpening, and spectral index calculation) to every order, included in the base price. Order through the Pera Portal or talk to our team about what your project needs.


