26Jan/104

## MODTRAN

This post is going to discuss two pitfalls that i encountered while using MODTRAN via the PLEXUS GUI.  First is the conversion between Wavenumber to Wavelength, the second is using PLEXUS to perform night time lunar models.

Background:
The atmosphere, through its six layers, contains various particles and gases which attenuate impinging solar radiation.  The particles which contribute the most to this attenuation are water (H2O) in the troposphere (0-11Km), carbon dioxide (CO2) also in the troposphere, and ozone (O3) in the stratosphere (11-50Km).  While there is relatively little solar absorption through the visible bands (380nm - 750nm), there are strong absorption bands in the UVC and LWIR attributed to ozone, while H2O and CO2 absorb intermittently throughout the rest of the solar spectrum.  A Transmittance vs. Wavelength graph for two generic scenarios can be seen below.  Note: For larger absorption bands, the contributing particles are shown; the full Raytheon infrared wall chart can be found below under references. MODTRAN (MODerate spectral resolution atmospheric TRANSmittance algorithm and computer model) is an atmospheric spectral radiance modeling code developed by the Air Force Research Lab, Space Vehicles Directorate.  This code has been combined with several others (MODTRAN4 V2R1, SAMM 1.1, SAMM 1.82, FASCODE3 with HITRAN2K, SHARC Atmosphere Generator (SAG) V1 & V2, and Celestial Background Scene Descriptor (CBSD) V5) into a single software suite called PLEXUS (Phillips Laboratory EXpert-assisted User Software) which provides the user with an easier to use GUI for these atmospheric codes.  The most  recent version as of the publishing of this post is Release 3 Version 3A.  More information on PLEXUS as well as its constituent codes can be found on the AFRL software information page.

Data Conversion:
MODTRAN is written in FORTRAN and requires the user to specify various attributes of an experimental scenario (Location, Date, Time, Albedo, etc.) which MODTRAN will then produce both the transmittance in percentage vs. wavenumber as well as the spectral radiance in Watt/centimeter2·steradian·centimeter-1 vs. wavenumber for that scenario.  Unfortunately, while MODTRAN performs all of its modeling in wavenumber space (cm-1), my work requires the data to be in wavelength space (nm) so a conversion for the output data is needed.  PLEXUS gives the user to option convert the units of the plots, but there is no option to save the data being displayed.  The user does however have access to the output data directly in its original units via the MODTRAN output files (radiance: *.spc, transmittance: *.trn).  You can use an external mathematical editor to modify the data, i chose to write a MatLab function. For the conversion, one could easily make the mistake of performing a quick x-axis conversion of λ=107/ν to obtain the correct units and assume this will change the y-axis accordingly.  Unfortunately, this will not work, as it would produce a data-point density gradient with a higher density of points at shorter wavelengths which causes less spectral information to be represented in the shorter wavelength points while conversely more spectral information is represented in the longer wavelength points.  To properly perform the conversion, one has to convert both the x-axis from wavenumber to wavelength (1), as well as the y-axis from W/cm2·sr·cm-1 to W/m2·sr·nm (2).  The conversion derivations for both axis are shown below.

$\begin{matrix}\nu&\left[cm^{-1}\right]&=&\frac{1}{\nu}&\left[cm\right]\\&&=&10^7\cdot\frac{1}{\nu}&\left[nm\right]\\\lambda&\left[nm\right]&=&\frac{10^7}{\left|\nu\right|}&\left[nm\right]\end{matrix}\qquad(1)$

$\begin{matrix}L_e\left(\nu\right)&\left[\frac{W}{cm^2\,sr\,cm^{-1}}\right]&=&\left|\nu\right|^2\cdot L_e\left(\nu\right)&\left[\frac{W\left(cm^{-1}\right)^2}{cm^2\,sr\,cm{-1}}\right]\\&& =&\left|\nu\right|^2\cdot L_e\left(\nu\right)\cdot10^4&\left[\frac{W\,cm^{-1}}{m^2\,sr}\right]\\&&=&\left|\nu\right|^2\cdot L_e\left(\nu\right)\cdot10^4\cdot10^{-7}&\left[\frac{W}{m^2\,sr\,nm}\right]\\L_e\left(\lambda\right)&\left[\frac{W}{m^2\,sr\,nm}\right]&=&\left|\nu\right|^2\cdot L_e\left(\nu\right)\cdot10^{-3}&\left[\frac{W}{m^2\,sr\,nm}\right]\end{matrix}\qquad(2)$

The post conversion dataset is still going to have a data-point density gradient, but all the points are now weighted equally.  To get a equally spaced set of data, you can take the mean of all the points within the range of your desired step.  More information on optical units as well as the difference between radiance and irradiance can be found in the Jurgen R. Meyer-Arendt paper "Radiometry and Photometry: Units and Conversion Factors" below under references.

Lunar Modeling:

Leinert et al - Figure1: Overview on the brightness of the sky outside the lower terrestrial atmosphere and at high ecliptic and galactic latitudes

1. Mr Geboff,
I am interested in the Transmittance vs wavelength chart in this article. Could i include this chart in a training session for solar prfessionals while discussing the available solar resource? Are there other charts that you think might be of use?
Thanks,
David

2. This was really helpful. Would you be willing to share your Matlab files for processing the Plexus output. Also, I have a general MODTRAN question: are the Radiance values that are output for a particular scenario the values at the sensor or at the top of the atmosphere, i.e. does one need to multiply the radiance by the transmittance to get the radiance at the surface of the earth, say for a path to infinity? Many thanks.

3. The data is provided so it can be used. Please just reference me when it is used.

4. Thanks for the informative and useful article. I am trying to get a copy of PLEXUS for government use; do you know if it is still available and from where?