Context Navigation

Atmospheric correction with ATCOR

The latest version of our atmospheric correction procedure is being developed in a private GitHub repository - email us if you require access.

This page contains some basic processing instructions for atmospherically correcting ARSF data using ATCOR. Note try and do everything in the correct order - if you do later parts of the process first it sometimes resets them when you do the earlier ones (depending on exactly which ones). This is a basic guide only, you may well be able to get better/more accurate results using more advanced bits of ATCOR.

Caution: ATCOR changes the output from radiance to reflectance. So where level 1 files (and therefore level 3 files that were not corrected using ATCOR) are in units of uW/cm2/sr/nm * 1000, level 2 files (and therefore level 3 files that have been corrected using ATCOR) are in units of percent radiance * 100. Note the scaling factors can be changed by the user.

If you don't have one already, create a sensor geometry file. This is currently beyond the scope of this guide (should be added in later).

Run ATCOR. Currently you need to ssh to either gridnode36 or pmpc1071 (Peter Land's machine) to do this.

Select Tools > Solar Zenith and Azimuth. Enter the approximate flightline time and position and click "DO Calculation". This will give you solar azimuth, elevation and zenith values - note these down.

Convert the level 1 BIL file to BSQ by whatever means. You can use Tools > BIL to BSQ Conversion, but I recommend you use the similar option under Basic Tools in ENVI - that way you can get on with using ATCOR on a different line while it's running.

Select Atm. Correction > ATCOR4f: flat terrain.

Click INPUT IMAGE FILE and select your level 1 BSQ file.

Click "Date" and enter the date when the flightline you are correcting was collected.

Ensure the OUTPUT IMAGE FILE is something sensible.

Use logwriter.py <sbet_file> <specim_dir> to get information about the flight altitude and heading.

Work out the approximate elevation of the target site in metres (possibly by inspecting the DEM using GRASS or ENVI)

Click "Flight and Solar Geometry". Enter the flight altitude and heading, ground elevation and solar elevation and azimuth (all as determined in previous steps) in the appropriate boxes.

Click "Selected SENSOR". Click the button with the sensor name and select the sensor appropriate to the bandset used for the flight (check the header file for the number of bands). Select the appropriate calibration file when prompted.

Click "Select" next to "ATMOSPHERIC FILE". Select 'rural' and select the atmosphere with a water vapour value of 1.0 (*wv10*) with the altitude closest to that of the flight above the ground (note, not absolute altitude).

Click "AEROSOL TYPE". Wait for the tool to run. When it completes it will present you with two values for each atmosphere type. The second is the visibility, the former is a measure of how good the agreement is with the data - a lower number is better. Check that "rura" (rural) is the best value, if it's not then change the atmospheric file to a different atmosphere model as appropriate depending on which one is best. Enter the appropriate visibility number in the "Visibility" box

Click "VISIB. ESTIMATE". Check the number agrees with the previous step - if not don't worry but it may need to be changed later.

Click "WATER VAPOR". Click on "Calculate interpolated atmospheric file(s)" (if you don't get this option, go back and re-select the same atmospheric file). Once it's finished, click OK. Leave all the options on the next screen as default and click Done.

Click "Calculate Water Vapor Map". Wait for it to complete.

Open the water vapour map calculated in the previous step in ENVI. Go to Basic Tools > Calculate Statistics, select the WV map, leave all settings as default and check the mean value. If the mean value is closer to 400 than to 1000, go back and change your atmospheric file in ATCOR to use a water vapour value of 0.4 (*wv04*) instead of 1 (similarly if it's higher).

Click "IMAGE PROCESSING". Leave all the options as default and click OK.

Leave all the water vapour options as default and click DONE

Click "RUN Atmospheric Correction" - wait for it to complete. If it tells you that the current visibility settings result in a high number of pixels with negative reflectance then change the visibility settings as it suggests.

You should now have an atmospherically corrected version of your level 1 file (ie. it is now at level 2). This can be converted back to BIL format using ENVI and then substituted for the level 1 BIL file as input to azgcorr to be geocorrected.

Notes / Warnings / Errors

(Found by Alasdair MacArthur) If you select Visability Index in one of the dialogues it writes that to the *.ini file. If you later change that selection it does not over write the *.ini and keeps asking to a visindex file.