MODTRAN is a powerful atmospheric RTM that solves the RT equation taking into account the coupled effects of absorption and multiple scattering. However, the MODTRAN execution of the accurate DISORT algorithm, in combination with correlated-k treatements for gaseous absorptions, turns into computationally expensive simulations, hampering the practical usage of MODTRAN into time-effective applications.
In this tutorial we will explore the various options available in MODTRAN to select the method/accuracy for solving the RT equation and treat the gaseous absorptions. We will also learn to use the spectral convolution function provided in the AGL toolbox in order to simulate sensor acquired top-of-Atmosphere (TOA) radiances.
Note: On this page, we will use the MATLAB® notation (and commands) for the operations with the LUT data (e.g., reading files, plotting). However, similar commands can be found in other programing languages (e.g., Python, C/C++, Fortran).
On this page… |
---|
Convolution by OLCI spectral response function |
Common LUT configuration
In this tutorial we will generate various MODTRAN5 LUTs with different advanced configurations to solve the RT equation and treat the gaseous absorptions. These LUTs will be generated with the same geometric and atmospheric conditions (90 combinations) as shown below:
Start by creating pressing the New LUT configuration button .
On the General Configuration step, start introducing the LUT name in the
Saved LUT file(s) text box (we will start by the reference LUT with C:\ALG\LUTs_folder\reference).
Then select MODTRAN5 in the RTM pop-up menu and the Transfer Functions as operation mode.
Set the user level as advanced to later have access to all MODTRAN5 advanced parameters. Finally, select the
Manual (gridded) sampling option as sampling strategy. Then click on the Next button to proceed
introducing the key input variables. This should bring the following table of LUT input
variables:
We continue by defining the Sensor Spectral Configuration. In this tutorial, we want to simulate OLCI TOA radiance spectra. From the sensor menu on the right of the window, select OLCI sensor and click on the Add sensor(s) button. This should populate the table with the following spectral configuration:
The steps of (1) general LUT configuration, (2) introduction of key input variables and (3) definition of sensor configuration are repeated for each LUT with the only difference being the file name under which the generated LUTs are saved (see Section 2 for details). Click on the Next button to proceed introducing the advanced LUT configuration.
Advanced configuration
The core of this tutorial is to modify the default advanced configuration parameters in order to analyze the impact on OLCI TOA radiance of different (1) solvers of the radiative transfer equation, (2) algorithms to treat gaseous absorptions and (3) methods to provide the atmospheric transfer functions. Each of these points is accessed respectively with the following advanced parameters:
From these advanced parameters, the following 31 combinations are considered in our analysis:
NSTR | MODTRN | DISALB | File name | Comments |
---|---|---|---|---|
32 | KS | F | reference |
Higher accuracy in both the treatment of multiple scattering and gaseous absorptions, in combination with precise decomposition of the atmospheric transfer functions from MODTRAN simulations. |
2 to 16 | KS, KM and M | F | disortNKF |
All combinations with increasing accuracy of simulation of the multiple scattering and gaseous absorptions, in combination with precise decomposition of the atmospheric transfer functions from MODTRAN simulations. |
2 to 16 | KS, KM and M | T | disortNKT |
Same as above but using special DISORT decomposition of the atmospheric transfer functions. |
0 and -1 | KS, KM and M | F | isaacNK |
Isaac's algorithms for the simulation of the multiple scattering with three levels of complexity in the treatement of gaseous absorption, in combination with precise decomposition of the atmospheric transfer functions from MODTRAN simulations. |
Since the various LUT configurations vary on a few advanced configuration parameters, press the button
to load a previous LUT configuration (e.g., the reference LUT configuration). Then just press on the
Next button until the advanced configuration step and modify the NSTR, MODTRN and DISALB as needed.
For each LUT configuration, ALG will write the MODTRAN input files (.tp5) and run MODTRAN to generate the
output files (.tp7 for DISALB='F' and .acd for DISALB='T'). A progress bar will show
the writing of the MODTRAN input files. After its completion, MODTRAN will then run the simulations for these RTM input files.
Once the simulations have finished, we can generate the atmospheric LUTs from the output RTM files
by following the steps shown in the previous tutorials. On the menu bar, press the New LUT generation button
and select a LUT configuration .xml file.
ALG will automatically load the LUT configuration, generating the LUT key input parameters into the LUT header and processing/storing
the RTM output files into the LUT output files (.h5). This process should be repeated independently for 31 LUT configuration files.
Convolution by OLCI spectral response function
The LUTs generated after following the steps in the previous two sections contain the spectral range covered by OLCI/Sentinel-3 instrument at a spectral resolution at least a factor 10 higher than the spectral resolution of each spectral band. However, ALG does not automatically perform the spectral resampling to the instrument resolution by appling the instrument spectral response function (ISRF). Nevertheless, ALG provides a function to perform this spectral convolution.
Since our goal is to analyze the impact of approximations on OLCI TOA radiance, the first step would consists into calculating the TOA radiance spectra from each atmospheric LUT. Note: The following steps are repeated for each LUT file.
Let us start by reading the LUT header and data from the LUT file filename (e.g., C:\ALG\LUTs_folder\reference):
hdr = readLUThdr([filename,'.h5']); Y = h5read([filename,'.h5'],'/LUTdata');
As it can be read in the LUT header files, MODTRAN LUTs contains the following atmospheric transfer functions:
They can be extracted taking into account that each of these functions have the same number of wavelengths. So for MODTRAN LUT:
L0 = Y(1:numel(hdr.wvl),:); Edir = Y(numel(hdr.wvl)+1:2*numel(hdr.wvl),:); Edif = Y(2*numel(hdr.wvl)+1:3*numel(hdr.wvl),:); S = Y(3*numel(hdr.wvl)+1:4*numel(hdr.wvl),:); Tdir = Y(4*numel(hdr.wvl)+1:5*numel(hdr.wvl),:); Tdif = Y(5*numel(hdr.wvl)+1:6*numel(hdr.wvl),:);
Once we have the atmospheric transfer functions, we can propagate the surface reflectance ρ to construct TOA radiance with the following equation (1) for MODTRAN:
$$L = L_0 + {(E_{dir}\cosθ_{il}+E_{dif})·(T_{dir}+T_{dif})·ρ}/{π(1-Sρ)}=L_0 + {E_{tot}·T_{tot}·ρ}/{π(1-Sρ)}$$where θil represents the solar zenith angle, and ρ is the surface reflectance, which will take two different values (ρs for bare soil and and ρv for vegetation.
For each surface reflectance, let us now construct the TOA radiance for all combinations in the LUT (LTOA):
aux1 = L0 + (1/pi)*((Edir*cosd(hdr1.SZA)+Edif).*(Tdir+Tdif)*rho_s)./(1-S*rho_s)); aux2 = L0 + (1/pi)*((Edir*cosd(hdr1.SZA)+Edif).*(Tdir+Tdif)*rho_v)./(1-S*rho_v)); LTOA = [aux1,aux2];
These TOA radiance spectra are at high spectral resolution. In order to calculate OLCI-like spectra, we need to make the convolution by OLCI ISRF. For sake of simplicity, we will assume that OLCI ISRF is a rectangular/trapezoidal function, with different values of the baycenter (C) and spectral resolution (B) for each OLCI band (see here for further information). ALG provides a function to perfom convolution by a parametric ISRF. For the spectral channels C with resolution B and a trapezoidal ISRF, use the following code:
C = [400 4012.5 442.5 490 510 560 620 665 673.75 681.25 708.75 753.75 761.25 764.375 767.5 778.75 865 885 900 940 1020]; B = [15 10 10 10 10 10 10 10 7.5 7.5 10 7.5 2.5 3.75 2.5 15 20 10 10 20 40]; OLCI = convolve_ISRF(hdr.wvl,LTOA,C,B,'trap');
The data stored in the variable OLCI contains the 21 OLCI spectral channels of TOA radiance spectra.
Evaluation of MODTRAN band models and multiple scattering options
In this third section, we will evaluate the errors in OLCI TOA radiance spectra caused by the various implemented approximations (i.e., multiple scattering solution, treatment of gaseous absorptions, derivation of atmospheric transfer functions).
For each of the advanced configurations in Table 1, we start calculating the relative error for each spectral channel, averaged for all the 180 combinations of the input variables and surface reflectance:
$$δ_{adv}(λ) = {100}/{180}∑↙{i}{{|OLCI_{ref}(λ,i) - OLCI_{adv}(λ,i)|}/{OLCI_{ref}(λ,i)}}$$Here, the sub-indexes ref and adv identify respectively the reference LUT and each of the other advanced configuration LUTs. the index i identifies each of the 180 combinations of atmospheric, geometric and surface reflectance conditions. In MATLAB code:
for adv=1:30 delta(:,adv) = 100*mean(abs(OLCIref - OLCI(:,:,adv))./OLCIref,2); end
The following figure shows the $δ_{adv}(λ)$ errors for the slow correlated-k (left), medium correlated-k (middle) and band model (right) MODTRN options. Reddish colors identify the simulations carried out with DISORT n-streams (NSTR=2 to 16) and bluish colors identify those using Isaac's 2-streams (NSTR=0 and -1). In addition, DISORT simulations allow using the DISALB='T' option (indicated with dashed lines and cross marker) as an altenative to the MIT with DISALB='F' option (indicated with solid lines and circle marker).
Regardless of how atmospheric absorptions are treated, we can observe that DISORT 16 and 8 streams (using MIT for deriving the atmospheric transfer functions) obtain lower errors than the Isaac 2-stream method. Since the effects of multiple scattering are more important at shorter wavelengths (<600 nm), Isaac 2-stream method gets higher errors at shorter wavelenghts, being higher than with DISORT 4-streams (with MIT and DISALB methods) and comparable with DISORT 2-streams at 400 nm. DISORT (14 to 16 streams) also obtains lower errors than Isaac method in the O2 (761.375 nm) and H2O (940 nm) absorption bands since the coupling between scattering and absorption is better reproduced with DISORT than with Isaac's 2-streams algorithm. As a rougth order of magnitude, it is observed that DISORT reduces the errors a factor 5 to 10 with the addition of more streams (2 to 16). Another interesting result is given by the Isaac method scaled to DISORT (light blue), which outside of absorption bands get similar errors than DISORT 8-streams but at a fraction of the computation time (details shown below).
When analyzing these results from the point of view of the treatment of atmospheric absorptions, we observe that both correlation-k methods (left and middle plots) obtain similar errors, with only differences in the O2 absorption and 16 DISORT streams. In both cases, correlation-k method obtains lower errors than the statistical band model (right). However, this result is only visible in narrow and deep atmospheric absorptions (see bands at 761.375 nm and 940 nm). For the remaining spectral channels outside of atmospheric absorptions, the method to treat absorptions does not have a large impact on the derived errors except in the DISORT 16-streams case.
We can also compare the accuracy of the two algorithms for the derivation of atmospheric transfer functions and their impact in OLCI TOA radiance. This comparison is only possible on the DISORT simulations (reddish colors) since the DISALB='T' method is only possible with the use of DISORT algorithm. We observe that MIT derives errors lower than the DISALB option. In fact, excepts in the blueish wavelengths, DISALB option obtains larger errors than those derived from the use of Isaac multiple-scattering method.
The higher accuracy obtained with DISORT, slow correlated-k and MIT comes at expenses of also higher computation time. In order to have a complete understanding of this trade-off, the figure below plots the spectral average error, $ε={1}/{21}∑↙{λ}{δ_{adv}(λ)}$, and average computation time for the simulation of one single combination in the LUT.
We can clearly observe that, on the one hand, Isaac's 2-stream method is the fastest but also derives higher errors. On the other hand, DISORT algorithms are the most computationally expensive but also achieving lower errors. However, we observe that the addition of more streams in DISORT largely increases computation time with a rather small gain in accuracy. We can also observe that the use of MIT increase the accuracy when compared to the DISALB='T' option but with a computation time that is roughtly twice higher. The use of correlation-k methods does not largely reduce errors when compared to the band model as previously explained, however it comes with an important increase of computation time. Finally, the Isaac method scaled by DISORT obtains a good balance between accuracy and computation time.
We finally analyze in detail the derived errors as function of the AOT at the two spectral channels: 761.375 nm (most critical channel) and XX (where errors are close to the average). The detailed analysis is done for four selected advanced configurations with good balance between accuracy and computation time:
Conclusions - Lessons learned
Isaacs, R.G., Wang, W.C., Worsham, R.D., & Goldenberg, S., (1987), "Multiple/Scattering LOWTRAN and FASCODE models." Applied Optics. Vol. 26, No. 3, pp. 1272‒ 1281.
Stamnes, K., Tsay, S.-C., Wiscombe, W., & Jayaweera, K., (1988), "Numerically Stable Algorithm for Discrete-Ordinate-Method Radiative Transfer in Multiple Scattering and Emitting Layered Media." Applied Optics. Vol. 27, No. 3, pp. 2502‒ 2509.
Chandrasekhar, S. (1950), "Radiative transfer." Quarterly journal of the royal meteorological society. Vol. 76, No. 330, pp. 498‒ 498.
Stamnes, K. (1982), "Reflection and transmission by a vertically inhomogeneous planetary atmosphere." Planetary and Space Science. Vol. 30, No. 7, pp. 727‒ 732.
Guanter, L., Richter, R., & Kaufmann, H. (2009), "On the application of the MODTRAN4 atmospheric radiative transfer code to optical remote sensing." International Journal of Remote Sensing. Vol. 30, pp. 1407‒ 1424.