forked from OSGeo/grass
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathi.atcorr.html
726 lines (592 loc) · 24.6 KB
/
i.atcorr.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
<h2>DESCRIPTION</h2>
<b>i.atcorr</b> performs atmospheric correction on the input raster
map using the 6S algorithm (<em>Second Simulation of Satellite Signal
in the Solar Spectrum</em>). A detailed algorithm description is
available at the
<a href="http://modis-sr.ltdri.org/">Land Surface
Reflectance Science Computing Facility website</a>.
<p><em>Important note: Current region settings are ignored!</em> The region is adjusted
to cover the input raster map before the atmospheric correction is
performed. The previous settings are restored afterwards.
<p>Because using a <b>elevation</b> and/or <b>visibility</b>
raster map makes execution time much longer, it is advised to use
the optimization flag <b>-o</b>.
This flag tells <em>i.atcorr</em> to try and speedup calculations.
However, this option will increase memory requirements.
<p>If flag <b>-r</b> is used, the input raster data are treated as
<em>reflectance</em>. Otherwise, the input raster data are treated
as <em>radiance</em> values and are converted to reflectance at
the <em>i.atcorr</em> runtime. The output data are always reflectance.
<p>Note that the satellite overpass time has to be specified in Greenwich
Mean Time (GMT).
<p>An example 6S parameters:
<div class="code"><pre>
8 - geometrical conditions=Landsat ETM+
2 19 13.00 -47.410 -20.234 - month day hh.ddd longitude latitude ("hh.ddd" is in decimal hours GMT)
1 - atmospheric mode=tropical
1 - aerosols model=continental
15 - visibility [km] (aerosol model concentration)
-0.600 - mean target elevation above sea level [km] (here 600m asl)
-1000 - sensor height (here, sensor on board a satellite)
64 - 4th band of ETM+ Landsat 7
</pre></div>
If the position is not available in longitude-latitude (WGS84), the
<em><a href="m.proj.html">m.proj</a></em> conversion module can be
used to reproject from a different projection.
<h2>6S CODE PARAMETER CHOICES</h2>
<h3>A. Geometrical conditions</h3>
<table border="1">
<tr>
<td><b>Code</b></td>
<td><b>Description</b></td>
<td><b>Details</b></td>
</tr>
<tr>
<td>1</td>
<td><b>meteosat</b> observation</td>
<td>enter month,day,decimal hour (universal time-hh.ddd)
<br>
n. of column,n. of line. (full scale 5000*2500) </td>
</tr>
<tr>
<td>2</td>
<td><b>goes east </b>observation</td>
<td>enter month,day,decimal hour (universal time-hh.ddd)
<br>
n. of column,n. of line. (full scale 17000*12000)c</td>
</tr>
<tr>
<td>3</td>
<td><b>goes west</b> observation</td>
<td>enter month,day,decimal hour (universal time-hh.ddd)
<br>
n. of column,n. of line. (full scale 17000*12000)</td>
</tr>
<tr>
<td>4</td>
<td><b>avhrr</b> (PM noaa)</td>
<td>enter month,day,decimal hour (universal time-hh.ddd)
<br>
n. of column(1-2048),xlonan,hna
<br>
give long.(xlonan) and overpass hour (hna) at
<br>
the ascendant node at equator</td>
</tr>
<tr>
<td>5</td>
<td><b>avhrr</b> (AM noaa)</td>
<td>enter month,day,decimal hour (universal time-hh.ddd)
<br>
n. of column(1-2048),xlonan,hna
<br>
give long.(xlonan) and overpass hour (hna) at
<br>
the ascendant node at equator</td>
</tr>
<tr>
<td>6</td>
<td><b>hrv</b> (spot)</td>
<td>enter month,day,hh.ddd,long.,lat. *</td>
</tr>
<tr>
<td>7</td>
<td><b>tm</b> (landsat)</td>
<td>enter month,day,hh.ddd,long.,lat. *</td>
</tr>
<tr>
<td>8</td>
<td><b>etm+</b> (landsat7)</td>
<td>enter month,day,hh.ddd,long.,lat. *</td>
</tr>
<tr>
<td>9</td>
<td><b>liss</b> (IRS 1C)</td>
<td>enter month,day,hh.ddd,long.,lat. *</td>
</tr>
<tr>
<td>10</td>
<td><b>aster</b></td>
<td>enter month,day,hh.ddd,long.,lat. *</td>
</tr>
<tr>
<td>11</td>
<td><b>avnir</b></td>
<td>enter month,day,hh.ddd,long.,lat. *</td>
</tr>
<tr>
<td>12</td>
<td><b>ikonos</b></td>
<td>enter month,day,hh.ddd,long.,lat. *</td>
</tr>
<tr>
<td>13</td>
<td><b>RapidEye</b></td>
<td>enter month,day,hh.ddd,long.,lat. *</td>
</tr>
<tr>
<td>14</td>
<td><b>VGT1 (SPOT4)</b></td>
<td>enter month,day,hh.ddd,long.,lat. *</td>
</tr>
<tr>
<td>15</td>
<td><b>VGT2 (SPOT5)</b></td>
<td>enter month,day,hh.ddd,long.,lat. *</td>
</tr>
</table>
<blockquote>
* <em>NOTE</em>: for HRV, TM, ETM+, LISS and ASTER experiments,
longitude and latitude are the coordinates of the scene
center. Latitude must be > 0 for northern hemisphere and < 0 for
southern. Longitude must be > 0 for eastern hemisphere and < 0 for
western.
</blockquote>
<h3>B. Atmospheric model</h3>
<table border="1">
<tr>
<td><b>Code</b></td>
<td><b>Meaning</b></td>
</tr>
<tr>
<td>0</td>
<td>no gaseous absorption</td>
</tr>
<tr>
<td>1</td>
<td>tropical</td>
</tr>
<tr>
<td>2</td>
<td>midlatitude summer</td>
</tr>
<tr>
<td>3</td>
<td>midlatitude winter</td>
</tr>
<tr>
<td>4</td>
<td>subarctic summer</td>
</tr>
<tr>
<td>5</td>
<td>subarctic winter</td>
</tr>
<tr>
<td>6</td>
<td>us standard 62</td>
</tr>
<tr>
<td>7</td>
<td>Define your own atmospheric model as a set of the following 5 parameters
per each measurement:<br>
<br>altitude [km]
<br>pressure [mb]
<br>temperature [k]
<br>h2o density [g/m3]
<br>o3 density [g/m3]<br>
<br>For example: there is one radiosonde measurement for each altitude of
0-25km at a step of 1km, one measurment for each altitude of 25-50km at a step
of 5km, and two single measurements for altitudes 70km and 100km. This makes 34
measurments. In that case, there are 34*5 values to input.</td>
</tr>
<tr>
<td>8</td>
<td>Define your own atmospheric model providing values of the water vapor and
ozone content:
<br>
<br>uw [g/cm2]
<br>uo3 [cm-atm]
<br>
<br> The profile is taken from us62.</td>
</tr>
</table>
<h3>C. Aerosols model</h3>
<table border="1">
<tr>
<td><b>Code</b></td>
<td><b>Meaning</b></td>
<td><b>Details</b></td>
</tr>
<tr>
<td>0</td>
<td>no aerosols</td>
<td> </td>
</tr>
<tr>
<td>1</td>
<td>continental model</td>
<td> </td>
</tr>
<tr>
<td>2</td>
<td>maritime model</td>
<td> </td>
</tr>
<tr>
<td>3</td>
<td>urban model</td>
<td> </td>
</tr>
<tr>
<td>4</td>
<td>shettle model for background desert aerosol</td>
<td> </td>
</tr>
<tr>
<td>5</td>
<td>biomass burning</td>
<td> </td>
</tr>
<tr>
<td>6</td>
<td>stratospheric model</td>
<td> </td>
</tr>
<tr>
<td>7</td>
<td>define your own model</td>
<td>Enter the volumic percentage of each component:
<br>
<br>c(1) = volumic % of dust-like
<br>c(2) = volumic % of water-soluble
<br>c(3) = volumic % of oceanic
<br>c(4) = volumic % of soot
<br>
<br>All values between 0 and 1.</td>
</tr>
<tr>
<td>8</td>
<td>define your own model</td>
<td>Size distribution function: Multimodal Log Normal (up to 4 modes).</td>
</tr>
<tr>
<td>9</td>
<td>define your own model</td>
<td>Size distribution function: Modified gamma.</td>
</tr>
<tr>
<td>10</td>
<td>define your own model</td>
<td>Size distribution function: Junge Power-Law.</td>
</tr>
<tr>
<td>11</td>
<td>define your own model</td>
<td>Sun-photometer measurements, 50 values max, entered as:
<br>
<br>r and d V / d (logr)
<br>
<br>where r is the radius [micron], V is the volume, d V / d (logr) [cm3/cm2/micron].
<br>
<br>Followed by:
<br>
<br>nr and ni for each wavelength
<br>
<br>where nr and ni are respectively the real and imaginary part of the
refractive index.</td>
</tr>
</table>
<h3>D. Aerosol concentration model (visibility)</h3>
If you have an estimate of the meteorological parameter visibility
v, enter directly the value of v [km] (the aerosol optical depth (AOD) will be
computed from a standard aerosol profile).
<p>If you have an estimate of aerosol optical depth, enter 0 for the
visibility and in a following line enter the aerosol optical depth at 550nm
(iaer means 'i' for input and 'aer' for aerosol), for example:<br>
<div class="code"><pre>
0 - visibility
0.112 - aerosol optical depth 550 nm
</pre></div>
<p>NOTE: if iaer is 0, enter -1 for visibility.
<h3>E. Target altitude (xps), sensor platform (xpp)</h3>
Target altitude (xps, in negative [km]):
<blockquote>xps >= 0 means the target is at the sea level.
<br>otherwise xps expresses the altitude of the target (e.g., mean elevation)
in [km], given as negative value
</blockquote>
<p>Sensor platform (xpp, in negative [km] or -1000):
<blockquote>
<br>xpp = -1000 means that the sensor is on board a satellite.
<br>xpp = 0 means that the sensor is at the ground level.
<br>-100 < xpp < 0 defines the altitude of the sensor expressed in [km];
this altitude is given <b>relative to the target</b> altitude as negative value.
</blockquote>
<p>For aircraft simulations only (xpp is neither equal to 0 nor equal to -1000):
<blockquote>
puw,po3 (water vapor content,ozone content between the aircraft and the surface)
<br>taerp (the aerosol optical thickness at 550nm between the aircraft and the
surface)
<p>If these data are not available, enter negative values for all of them.
puw,po3 will then be interpolated from the us62 standard profile according
to the values at the ground level. taerp will be computed according to a 2km
exponential profile for aerosol.
</blockquote>
<h3>F. Sensor band</h3>
<p>There are two possibilities: either define your own spectral conditions
(codes -2, -1, 0, or 1) or choose a code indicating the band of one of the
pre-defined satellites.
<p>Define your own spectral conditions:
<table border="1">
<tr>
<td><b>Code</b></td>
<td><b>Meaning</b></td>
</tr>
<tr>
<td>-2</td>
<td>Enter wlinf, wlsup.
<br>The filter function will be equal to 1 over the whole band (as iwave=0)
but step by step output will be printed.</td>
</tr>
<tr>
<td>-1</td>
<td>Enter wl (monochr. cond, gaseous absorption is included).</td>
</tr>
<tr>
<td>0</td>
<td>Enter wlinf, wlsup.
<br>The filter function will be equal to 1over the whole band.</td>
</tr>
<tr>
<td>1</td>
<td>Enter wlinf, wlsup and user's filter function s(lambda) by step of 0.0025
micrometer.</td>
</tr>
</table>
<p>Pre-defined satellite bands:
<table border="1">
<tr><td><b>Code</b></td><td><b>Meaning</b></td></tr>
<tr><td>2</td><td><b>meteosat</b> vis band (0.350-1.110)</td></tr>
<tr><td>3</td><td><b>goes east</b> band vis (0.490-0.900)</td></tr>
<tr><td>4</td><td>goes west band vis (0.490-0.900)</td></tr>
<tr><td>5</td><td><b>avhrr (noaa6)</b> band 1 (0.550-0.750)</td></tr>
<tr><td>6</td><td>avhrr (noaa6) band 2 (0.690-1.120)</td></tr>
<tr><td>7</td><td><b>avhrr (noaa7)</b> band 1 (0.500-0.800)</td></tr>
<tr><td>8</td><td>avhrr (noaa7) band 2 (0.640-1.170)</td></tr>
<tr><td>9</td><td><b>avhrr (noaa8)</b> band 1 (0.540-1.010)</td></tr>
<tr><td>10</td><td>avhrr (noaa8) band 2 (0.680-1.120)</td></tr>
<tr><td>11</td><td><b>avhrr (noaa9)</b> band 1 (0.530-0.810)</td></tr>
<tr><td>12</td><td>avhrr (noaa9) band 1 (0.680-1.170)</td></tr>
<tr><td>13</td><td><b>avhrr (noaa10)</b> band 1 (0.530-0.780)</td></tr>
<tr><td>14</td><td>avhrr (noaa10) band 2 (0.600-1.190)</td></tr>
<tr><td>15</td><td><b>avhrr (noaa11)</b> band 1 (0.540-0.820)</td></tr>
<tr><td>16</td><td>avhrr (noaa11) band 2 (0.600-1.120)</td></tr>
<tr><td>17</td><td><b>hrv1 (spot1)</b> band 1 (0.470-0.650)</td></tr>
<tr><td>18</td><td>hrv1 (spot1) band 2 (0.600-0.720)</td></tr>
<tr><td>19</td><td>hrv1 (spot1) band 3 (0.730-0.930)</td></tr>
<tr><td>20</td><td>hrv1 (spot1) band pan (0.470-0.790)</td></tr>
<tr><td>21</td><td><b>hrv2 (spot1)</b> band 1 (0.470-0.650)</td></tr>
<tr><td>22</td><td>hrv2 (spot1) band 2 (0.590-0.730)</td></tr>
<tr><td>23</td><td>hrv2 (spot1) band 3 (0.740-0.940)</td></tr>
<tr><td>24</td><td>hrv2 (spot1) band pan (0.470-0.790)</td></tr>
<tr><td>25</td><td><b>tm (landsat5)</b> band 1 (0.430-0.560)</td></tr>
<tr><td>26</td><td>tm (landsat5) band 2 (0.500-0.650)</td></tr>
<tr><td>27</td><td>tm (landsat5) band 3 (0.580-0.740)</td></tr>
<tr><td>28</td><td>tm (landsat5) band 4 (0.730-0.950)</td></tr>
<tr><td>29</td><td>tm (landsat5) band 5 (1.5025-1.890)</td></tr>
<tr><td>30</td><td>tm (landsat5) band 7 (1.950-2.410)</td></tr>
<tr><td>31</td><td><b>mss (landsat5)</b> band 1 (0.475-0.640)</td></tr>
<tr><td>32</td><td>mss (landsat5) band 2 (0.580-0.750)</td></tr>
<tr><td>33</td><td>mss (landsat5) band 3 (0.655-0.855)</td></tr>
<tr><td>34</td><td>mss (landsat5) band 4 (0.785-1.100)</td></tr>
<tr><td>35</td><td><b>MAS (ER2)</b> band 1 (0.5025-0.5875)</td></tr>
<tr><td>36</td><td>MAS (ER2) band 2 (0.6075-0.7000)</td></tr>
<tr><td>37</td><td>MAS (ER2) band 3 (0.8300-0.9125)</td></tr>
<tr><td>38</td><td>MAS (ER2) band 4 (0.9000-0.9975)</td></tr>
<tr><td>39</td><td>MAS (ER2) band 5 (1.8200-1.9575)</td></tr>
<tr><td>40</td><td>MAS (ER2) band 6 (2.0950-2.1925)</td></tr>
<tr><td>41</td><td>MAS (ER2) band 7 (3.5800-3.8700)</td></tr>
<tr><td>42</td><td><b>MODIS</b> band 1 (0.6100-0.6850)</td></tr>
<tr><td>43</td><td>MODIS band 2 (0.8200-0.9025)</td></tr>
<tr><td>44</td><td>MODIS band 3 (0.4500-0.4825)</td></tr>
<tr><td>45</td><td>MODIS band 4 (0.5400-0.5700)</td></tr>
<tr><td>46</td><td>MODIS band 5 (1.2150-1.2700)</td></tr>
<tr><td>47</td><td>MODIS band 6 (1.6000-1.6650)</td></tr>
<tr><td>48</td><td>MODIS band 7 (2.0575-2.1825)</td></tr>
<tr><td>49</td><td><b>avhrr (noaa12)</b> band 1 (0.500-1.000)</td></tr>
<tr><td>50</td><td>avhrr (noaa12) band 2 (0.650-1.120)</td></tr>
<tr><td>51</td><td><b>avhrr (noaa14)</b> band 1 (0.500-1.110)</td></tr>
<tr><td>52</td><td>avhrr (noaa14) band 2 (0.680-1.100)</td></tr>
<tr><td>53</td><td><b>POLDER</b> band 1 (0.4125-0.4775)</td></tr>
<tr><td>54</td><td>POLDER band 2 (non polar) (0.4100-0.5225)</td></tr>
<tr><td>55</td><td>POLDER band 3 (non polar) (0.5325-0.5950)</td></tr>
<tr><td>56</td><td>POLDER band 4 P1 (0.6300-0.7025)</td></tr>
<tr><td>57</td><td>POLDER band 5 (non polar) (0.7450-0.7800)</td></tr>
<tr><td>58</td><td>POLDER band 6 (non polar) (0.7000-0.8300)</td></tr>
<tr><td>59</td><td>POLDER band 7 P1 (0.8100-0.9200)</td></tr>
<tr><td>60</td><td>POLDER band 8 (non polar) (0.8650-0.9400)</td></tr>
<tr><td>61</td><td><b>etm+ (landsat7)</b> band 1 (0.435-0.520)</td></tr>
<tr><td>62</td><td>etm+ (landsat7) band 2 (0.506-0.621)</td></tr>
<tr><td>63</td><td>etm+ (landsat7) band 3 (0.622-0.702)</td></tr>
<tr><td>64</td><td>etm+ (landsat7) band 4 (0.751-0.911)</td></tr>
<tr><td>65</td><td>etm+ (landsat7) band 5 (1.512-1.792)</td></tr>
<tr><td>66</td><td>etm+ (landsat7) band 7 (2.020-2.380)</td></tr>
<tr><td>67</td><td>etm+ (landsat7) band 8 (0.504-0.909)</td></tr>
<tr><td>68</td><td><b>liss (IRC 1C)</b> band 2 (0.502-0.620)</td></tr>
<tr><td>69</td><td>liss (IRC 1C) band 3 (0.612-0.700)</td></tr>
<tr><td>70</td><td>liss (IRC 1C) band 4 (0.752-0.880)</td></tr>
<tr><td>71</td><td>liss (IRC 1C) band 5 (1.452-1.760)</td></tr>
<tr><td>72</td><td><b>aster </b> band 1 (0.480-0.645)</td></tr>
<tr><td>73</td><td>aster band 2 (0.588-0.733)</td></tr>
<tr><td>74</td><td>aster band 3N (0.723-0.913)</td></tr>
<tr><td>75</td><td>aster band 4 (1.530-1.750)</td></tr>
<tr><td>76</td><td>aster band 5 (2.103-2.285)</td></tr>
<tr><td>77</td><td>aster band 6 (2.105-2.298)</td></tr>
<tr><td>78</td><td>aster band 7 (2.200-2.393)</td></tr>
<tr><td>79</td><td>aster band 8 (2.248-2.475)</td></tr>
<tr><td>80</td><td>aster band 9 (2.295-2.538)</td></tr>
<tr><td>81</td><td><b>avnir</b> band 1 (0.390-0.550)</td></tr>
<tr><td>82</td><td>avnir band 2 (0.485-0.695)</td></tr>
<tr><td>83</td><td>avnir band 3 (0.545-0.745)</td></tr>
<tr><td>84</td><td>avnir band 4 (0.700-0.925)</td></tr>
<tr><td>85</td><td><b>ikonos</b> Green band (0.350-1.035)</td></tr>
<tr><td>86</td><td>ikonos Red band (0.350-1.035)</td></tr>
<tr><td>87</td><td>ikonos NIR band (0.350-1.035)</td></tr>
<tr><td>88</td><td><b>RapidEye</b> Blue band (0.438-0.513)</td></tr>
<tr><td>89</td><td>RapidEye Green band (0.463-0.594)</td></tr>
<tr><td>90</td><td>RapidEye Red band (0.624-0.690)</td></tr>
<tr><td>91</td><td>RapidEye RedEdge band (0.500-0.737)</td></tr>
<tr><td>92</td><td>RapidEye NIR band (0.520-0.862)</td></tr>
<tr><td>93</td><td><b>VGT1 (SPOT4)</b> band 0 (0.400-0.500)</td></tr>
<tr><td>94</td><td>VGT1 (SPOT4) band 2 (0.580-0.782)</td></tr>
<tr><td>95</td><td>VGT1 (SPOT4) band 3 (0.700-1.030)</td></tr>
<tr><td>96</td><td>VGT1 (SPOT4) MIR band (1.450-1.800)</td></tr>
<tr><td>97</td><td><b>VGT2 (SPOT5)</b> band 0 (0.400-0.550)</td></tr>
<tr><td>98</td><td>VGT2 (SPOT5) band 2 (0.580-0.780)</td></tr>
<tr><td>99</td><td>VGT2 (SPOT5) band 3 (0.700-1.000)</td></tr>
<tr><td>100</td><td>VGT2 (SPOT5) MIR band (1.450-1.800)</td></tr>
</table>
<h2>EXAMPLES</h2>
<h3>Atmospheric correction of a LANDSAT-7 channel</h3>
The example is based on the North Carolina sample dataset (GMT -5 hours).
First we set the computational region to the satellite map, e.g. channel 4:
<div class="code"><pre>
g.region rast=lsat7_2002_40 -p
</pre></div>
It is important to verify the available metadata for the sun position which
has to be defined for the atmospheric correction. An option is to check the
satellite overpass time with sun position as reported in
<a href="ftp://ftp.glcf.umiacs.umd.edu/glcf/Landsat/WRS2/p016/r035/p016r035_7x20020524.ETM-EarthSat-Orthorectified/p016r035_7x20020524.met">metadata</a>. For the North Carolina sample dataset, they have also been
stored for each channel and can be retrieved like this:
<div class="code"><pre>
r.info lsat7_2002_40
</pre></div>
In this case, we have: SUN_AZIMUTH = 120.8810347, SUN_ELEVATION = 64.7730999.
<p>
If the sun position metadata are unavailable, we can also calculate
them from the overpass time as follows
(<em><a href="r.sunmask.html">r.sunmask</a></em>
uses <a href="http://www.nrel.gov/midc/solpos/solpos.html">SOLPOS</a>):
<div class="code"><pre>
r.sunmask -s elev=elevation out=dummy year=2002 month=5 day=24 hour=10 min=42 sec=7 timezone=-5
# .. reports: sun azimuth: 121.342461, sun angle above horz.(refraction corrected): 65.396652
</pre></div>
If the overpass time is unknown, use the <a href="http://www-air.larc.nasa.gov/tools/predict.htm">Satellite Overpass Predictor</a>.
<p>Convert DN (digital number = pixel values) to Radiance at top-of-atmosphere (TOA), using the
formula
<div class="code"><pre>
Lλ = ((LMAXλ - LMINλ)/(QCALMAX-QCALMIN)) * (QCAL-QCALMIN) + LMINλ
</pre></div>
Where:
<ul>
<li> Lλ = Spectral Radiance at the sensor's aperture in Watt/(meter squared * ster * µm), the
apparent radiance as seen by the satellite sensor;</li>
<li> QCAL = the quantized calibrated pixel value in DN;</li>
<li> LMINλ = the spectral radiance that is scaled to QCALMIN in watts/(meter squared * ster * µm);</li>
<li> LMAXλ = the spectral radiance that is scaled to QCALMAX in watts/(meter squared * ster * µm);</li>
<li> QCALMIN = the minimum quantized calibrated pixel value (corresponding to LMINλ) in DN;</li>
<li> QCALMAX = the maximum quantized calibrated pixel value (corresponding to LMAXλ) in DN=255.</li>
</ul>
LMINλ and LMAXλ are the radiances related to the minimal and maximal DN value, and are reported
in the metadata file for each image, or in the table 1. High gain or low gain is also reported
in the metadata file of each Landsat image. The minimal DN value (QCALMIN) is 1 for Landsat ETM+
images (see
<a href="http://landsathandbook.gsfc.nasa.gov/handbook/handbook_htmls/chapter11/chapter11.html">Landsat handbook</a>),
and the maximal DN value (QCALMAX) is 255. QCAL is the DN value for every
separate pixel in the Landsat image.
<p>We extract the coefficients and apply them in order to obtain the radiance map:
<div class="code"><pre>
CHAN=4
r.info lsat7_2002_${CHAN}0 -h | tr '\n' ' ' | sed 's+ ++g' | tr ':' '\n' | grep "LMIN_BAND${CHAN}\|LMAX_BAND${CHAN}"
LMAX_BAND4=241.100,p016r035_7x20020524.met
LMIN_BAND4=-5.100,p016r035_7x20020524.met
QCALMAX_BAND4=255.0,p016r035_7x20020524.met
QCALMIN_BAND4=1.0,p016r035_7x20020524.met
</pre></div>
Conversion to radiance (this calculation is done for band 4, for the other bands, the numbers in italics
need to be replaced with their related values):
<div class="code"><pre>
r.mapcalc "lsat7_2002_40_rad=((241.1 - (-5.1)) / (255.0 - 1.0)) * (lsat7_2002_40 - 1.0) + (-5.1)"
</pre></div>
<div class="code"><pre>
# find mean elevation (target above sea level, used as initialization value in control file)
r.univar elevation
</pre></div>
Create a control file 'icnd.txt' for channel 4 (NIR), based on metadata. For the overpass time,
we need to define decimal hours:<br>
10:42:07 NC local time = 10.70 decimal hours (decimal minutes: 42 * 100 / 60) which is 15.70 GMT:
<div class="code"><pre>
8 - geometrical conditions=Landsat ETM+
5 24 15.70 -78.691 35.749 - month day hh.ddd longitude latitude ("hh.ddd" is in GMT decimal hours)
2 - atmospheric mode=midlatitude summer
1 - aerosols model=continental
50 - visibility [km] (aerosol model concentration)
-0.110 - mean target elevation above sea level [km]
-1000 - sensor on board a satellite
64 - 4th band of ETM+ Landsat 7
</pre></div>
Finally, run the atmospheric correction (-r for reflectance input map; -a for date >July 2000;
-o to use cache acceleration):
<div class="code"><pre>
i.atcorr -r -a -o lsat7_2002_40_rad elev=elevation parameters=icnd_lsat4.txt output=lsat7_2002_40_atcorr
</pre></div>
Note that the altitude value from 'icnd_lsat4.txt' file is read at the beginning
to compute the initial transform. It is necessary to give a value which could
be the mean value of the elevation model. For the atmospheric correction then
the raster elevation values are used from the map.
<p>Note that the process is computationally intensive.<br>
Note also, that <em>i.atcorr</em> reports solar elevation angle above horizon rather than solar zenith angle.
<h2><font color="red">REMAINING DOCUMENTATION ISSUES</font></h2>
1. The influence and importance of the visibility value or map should be
explained, also how to obtain an estimate for either visibility or aerosol
optical depth at 550nm.
<h2>SEE ALSO</h2>
GRASS Wiki page about
<a href="http://grass.osgeo.org/wiki/Atmospheric_correction">Atmospheric correction</a>
<p><em>
<a href="r.info.html">r.info</a>,
<a href="r.mapcalc.html">r.mapcalc</a>,
<a href="r.univar.html">r.univar</a>
</em>
<h2>REFERENCES</h2>
<ul>
<li> Vermote, E.F., Tanre, D., Deuze, J.L., Herman, M., and Morcrette, J.J., 1997,
Second simulation of the satellite signal in the solar spectrum, 6S: An
overview., IEEE Trans. Geosc. and Remote Sens. 35(3):675-686.
<!-- too new:
<li> <a href="http://6s.ltdri.org/6S_code2_thinner_stuff/6S_ltdri_org_manual.htm">6S manual
(new vector version; i.atcorr is based on the older scalar version)</a>
at the <a href="http://6s.ltdri.org">6S homepage</a> of the Land Surface Reflectance
Science Computing Facility
-->
<li> 6S Manual: <a href="http://www.rsgis.ait.ac.th/~honda/textbooks/advrs/6smanv2.0_P1.pdf">PDF1</a>,
<a href="http://www.rsgis.ait.ac.th/~honda/textbooks/advrs/6smanv2.0_P2.pdf">PDF2</a>,
and <a href="http://www.rsgis.ait.ac.th/~honda/textbooks/advrs/6smanv2.0_P3.pdf">PDF3</a>
<li>RapidEye sensors have been provided by <a href="http://www.rapideye.de/">RapidEye AG, Germany</a>
</ul>
<h2>AUTHORS</h2>
<p><em>Original version of the program for GRASS 5:</em>
<br>Christo Zietsman, 13422863(at)sun.ac.za
<p><em>Code clean-up and port to GRASS 6.3, 15.12.2006:</em>
<br>Yann Chemin, ychemin(at)gmail.com
<p><em>Documentation clean-up + IRS LISS sensor addition 5/2009:</em>
<br>Markus Neteler, FEM, Italy
<p><em>ASTER sensor addition 7/2009:</em>
<br>Michael Perdue, Canada
<p><em>AVNIR, IKONOS sensors addition 7/2010:</em>
<br>Daniel Victoria, Anne Ghisla
<p><em>RapidEye sensors addition 11/2010:</em>
<br>Peter Löwe, Anne Ghisla
<p><em>VGT1 and VGT2 sensors addition from <a href="http://6s.ltdri.org/">6SV-1.1 sources</a>, addition 07/2011:</em>
<br>Alfredo Alessandrini, Anne Ghisla
<p><i>Last changed: $Date$</i>