GENAWVC

Generate an atmospheric water vapor content map


EnvironmentsPYTHON :: EASI :: MODELER
Quick linksDescription :: Parameters :: Parameter descriptions :: Details :: Examples :: Acknowledgements :: References :: Related

Back to top

Description


Generates an atmospheric water vapor content map. The computations use radiance values interpolated from an at-sensor radiance lookup table.
Back to top

Parameters


genawvc(rlutfili, dbsrl, file, dbdem, dbaod, dbsmr, dbwvc, dblwt, dbsse, rtlevel, nomaod, nomsmr, nomelev, wlen1, wlen2, inivwvc, maxiter, adjdim)

Name Type Caption Length Value range
RLUTFILI* str Radiance LUT input file name 1 -    
DBSRL* List[int] Input radiance LUT segment 1 - 1  
FILE* str Input file name 1 -    
DBDEM List[int] Input scene elevation channel 0 - 1  
DBAOD List[int] Input Aerosol Optical Depth map channel 0 - 1  
DBSMR List[int] Input surface meteorological range map channel 0 - 1  
DBWVC* List[int] Output water vapor content channel 1 - 1  
DBLWT List[int] Output leaf water thickness channel 0 - 1  
DBSSE List[int] Output SSE channel 0 - 1  
RTLEVEL List[int] Radiometric transformation level 0 - 1 0 -
NOMAOD List[float] Nominal aerosol optical depth 0 - 1 0.0 -
NOMSMR List[float] Nominal surface meteorological range value 0 - 1 0.0 -
NOMELEV List[float] Nominal scene elevation value 0 - 1 0.0 -
WLEN1 List[float] Start wavelength 0 - 1 400 - 2400
Default: 850
WLEN2 List[float] End wavelength 0 - 1 400 - 2400
Default: 1250
INIVWVC List[float] Initial water vapor content guess 0 - 1 0.11 - 5.09
Default: 2.5
MAXITER List[int] Maximum number of iterations 0 - 1 5 - 100
Default: 25
ADJDIM List[int] Adjacency effect window dimension 0 - 1 0 -
Default: 1

* Required parameter
Back to top

Parameter descriptions

RLUTFILI

Specifies the name file containing the radiance lookup table (RLUT).

DBSRL

Specifies the PCIDSK file segment that contains the radiance lookup table.

FILE

Specifies the name of the PCIDSK file containing the data set for which the atmospheric vertical water vapor content map is to be extracted.

DBDEM

Optionally specifies the input channel containing a DEM map of the scene for which the atmospheric water vapor content is to be extracted.

If this parameter is not specified, a nominal elevation, specified by NOMELEV, will be used over the entire scene. Only one channel may be specified.

DBAOD

Optionally specifies the input channel containing an aerosol optical depth map of the scene for which the atmospheric water vapor content is to be extracted.

If this parameter is not specified, a nominal aerosol optical depth, specified by NOMAOD, will be used over the entire scene. Only one channel may be specified.

This parameter is used as an alternative to DBSMR (InputSMR) for evaluating a surface meteorological range map; specify either DBAOD or DBSMR.

DBSMR

Optionally specifies the input channel containing a surface meteorological range map of the scene for which the atmospheric water vapor content is to be extracted.

If this parameter is not specified, a nominal surface meteorological range, specified by NOMSMR, will be used over the entire scene. Only one channel may be specified.

This parameter is used as an alternative to DBSMR (InputSMR) for evaluating a surface meteorological range map; specify either DBSMR or DBAOD.

DBWVC

Specifies the output channel to receive the extracted atmospheric water vapor content map over the scene.

Exactly one channel must be specified. The output channel must exist prior to running GENAWVC.

DBLWT

Specifies the output channel to receive the extracted leaf water absorption map over the scene.

If this parameter is not specified, the leaf water thickness map is discarded. The specified channel must exist prior to running GENAWVC.

DBSSE

Optionally specifies the output channel to receive the Sum of Squared Errors map over the scene.

If this parameter is not specified, the error map is discarded. The specified channel must exist prior to running GENAWVC.

RTLEVEL

Specifies the radiometric transformations already associated with the data set that are to be applied to the stored pixel values before they are used in the water vapor extraction computations. By default, GENAWVC applies the full sequence of transformations.

If the data set metadata contains no radiometric transformation parameter values, this parameter has no effect.

NOMAOD

Specifies a nominal aerosol optical depth to be used over the entire scene.

For example:

NOMAOD = 1.1725

specifies an aerosol optical depth of 1.1724 over the entire scene, equivalent to an approximately 5 km meteorological range.

This parameter is used as an alternative to NOMSMR (Nominal SMR) for evaluating a nominal surface meteorological range value. Specify either NOMAOD or NOMSMR.

If either DBAOD (input AOD) or DBSMR (Input SMR) is specified, this parameter is ignored.

Note: If the input RLUT was created by leaving the surface meteorological range settings unspecified in the programs GENTP5 and GENRLUT, this parameter should also be left unspecified.

NOMSMR

Specifies a nominal surface meteorological range value (in km) to be used over the entire scene.

If the input RLUT was created by leaving the surface meteorological range settings unspecified in the programs GENTP5 and GENRLUT, this parameter should also be left unspecified.

If DBSMR (InputSMR) is specified, this parameter is ignored.

NOMELEV

Specifies a nominal elevation value (in meters, with respect to the WGS84 vertical datum) to be used for the entire scene.

Either NOMELEV or DBDEM (InputDEM) must be specified; if DBDEM is specified, this parameter is ignored.

WLEN1

Specifies the start of the wavelength range, in nanometers, to be used for the extraction of the atmospheric water vapor content map.

A wavelength range start e must be such that:

400nm < e < 2400nm

The default wavelength start value is 850nm.

WLEN2

Specifies the end of the wavelength range, in nanometers, to be used for the extraction of the atmospheric water vapor content map.

A wavelength range end e must be such that:

400nm < e < 2400nm

The default wavelength end value is 1250nm.

INIVWVC

Specifies an initial atmospheric water vapor content guess, in g/cm^2, to be used as a starting value in the spectra fitting algorithm.

A water vapor content guess e must be such that:

0.11 <=   e <= 5.09

The default initial water vapor content guess value is 2.5 g/cm^2.

MAXITER

Specifies the maximum number of iterations to be performed by the non-linear spectra fitting algorithm.

A maximum number of iterations e must be such that:

5 <= e <= 100

The default maximum number of iterations is 25.

ADJDIM

Specifies the dimension of the neighborhood window to include in the computation of adjacency radiance effects due to heterogeneous terrain reflectance.

Only a value of 0, 1, or an odd number greater than or equal to 3 may be specified.
Back to top

Details

GENAWVC is used to extract atmospheric water vapor and leaf water absorption maps from an image data set and a matching RLUT. It builds on the results of GENTP5 GENRLUT, and RESRLUT, and outputs data that can later be used in ATRLUT and GENCLUT.

GENAWVC employs an inversion algorithm for retrieval of atmospheric water vapor content and leaf water thickness. The inversion algorithm operates on the spectrum of each spatial element and generates an atmospheric water vapor map over the entire scene. A non-linear least-squares fitting approach, coupled with a radiance lookup table generated by GENTP5 and GENRLUT, is used to minimize the error between the target spectrum within the start/end wavelength range specified and a modeled radiance spectrum. For reliable results, the range must cover the water absorption spectrum features.

GENAWVC will perform automatic resampling of the input at-sensor radiance lookup table (RLUT) if the wavelength dimension sampling does not match the data set band center wavelengths. Alternatively, the user may use RESRLUT to resample the RLUT to match the response profile of the data set before running GENAWVC; this will result in a considerable reduction of the GENAWVC execution time.

GENAWVC relies heavily on the Atmospheric Water Vapor Content dimension of the input RLUT. Certain restrictions should be noted:

On completion, GENAWVC outputs the retrieved atmospheric water vapor content map, the equivalent leaf water thickness map, and the sum of squared errors (SSE) map to the user-specified output channels. If enabled, the generated report lists all image pixels for which the non-linear least-squares fitting technique failed and the reason for that failure. For all pixel locations for which the standard non-linear fitting method failed, an alternative slower but more robust method will be used instead (namely, the Downhill Simplex Method).

Back to top

Examples

This example is an extension of the one given in the EXAMPLE section of GENTP5, GENRLUT, and RESRLUT, which showed how to generate and resample an RLUT for transforming the cuprad.pix radiance data set into a reflectance data set. Here, we demonstrate the use of that RLUT with GENAWVC in extracting the atmospheric water vapor content map prior to running ATRLUT.

First, regenerate the at-sensor radiance lookup table with more samples along the wavelength dimension:

from pci.gentp5 import gentp5

tape5	=	"tape5"		# write output to a file named "tape5" in
# the current working directory
atmod	=	"MLS"		# midlatitude summer atmospheric model
vwcins	=	[0.25,4,16]	# 16 samples in [0.25g/cm^2, 4g/cm^2]
msalg	=	"ISAACS"	# use ISAACS scattering model
nstr	=	[]		# ignored for the ISAACS scattering model
aermod	=	"DES"		# desert aerosol model
aodins	=	[]		# default visibility range for desert
smrins	=	[]		# default visibility range for desert
prex	=	"BSBS"		# background stratospheric profile and extinction
wlenins	=	[355, 2515, 2161]	# 2161 samples in [355nm, 2515nm]
reflins	=	[0.05, 0.60, 2]		# the two samples are 0.05 and 0.60
razins	=	[-80.8, 99.2, 3]	# the three samples are -80.9deg, 9.2deg, and 99.2deg
vzains	=	[165, 180, 4]		# the four samples in [165deg, 180deg]
szains	=	[14.4, 14.4, 1]		# the one sample is 14.4deg
elevins	=	[1524, 1524, 1]		# the one sample is 1524m
saltins	=	[21036, 21036, 1]	# the one sample is 21036m
date	=	[19,6,1997]		# set the date of acquisition to June 19, 1997

gentp5( tape5, atmod, vwcins, msalg, nstr, aermod, aodins, smrins, prex, wlenins, reflins,
razins, vzains, szains, elevins, saltins, date )

The tape5 file you created in Example 1 is used to store information necessary to perform an atmospheric correction in a format that can be read by the MODTRAN4 program.

To run MODTRAN4 using the information stored in the tape5 file, you must first copy the MODTRAN4 executable (4V3R1.exe) into the directory where you saved the tape5 file. Then, run MODTRAN4 by double-clicking on the executable or by running it through a command window.

Run GENRLUT to create the RLUT from the "tape7" file generated by MODTRAN4.

from pci.genrlut import genrlut

rlutfilo	=	"rlut.pix"	# write output to PCIDSK file rlut.pix
                            # in the current working directory
dbos	=	[]			# create a new output segment on rlut.pix
tape7	=	"tape7"		# use the tape7 file generated by MODTRAN4
vwvcins	=	[]
aodins	=	[]
smrins	=	[]
reflins	=	[]
razins	=	[]
vzains	=	[]
szains	=	[]
elevins	=	[]
saltins	=	[]

genrlut ( rlutfilo, dbos, tape7, vwvcins, aodins, smrins, reflins, razins, vzains, szains,
elevins, saltins )

All GENRLUT parameters other than TAPE7, RLUTFILO and DBOS are shared with GENTP5. Those parameters should be evaluated to the same values both programs when they are run in sequence in order to create an RLUT.

Resample the RLUT to match the response profile of cuprad.pix.

from pci.resrlut import resrlut

rlutfili	=	"rlut.pix"
dbsrl		=	[2]
rlutfilo	=	"rlut.pix"
dbos		=	[]
fili		=	"cuprad.pix"

resrlut( rlutfili, dbsrl, rlutfilo, dbos, fili )

The resampled RLUT is now stored in segment 3 of rlut.pix.

Add three extra 32R channel for the water vapor content map, the equivalent water thickness map, and the error map.

from pci.pcimod import pcimod

file	=	"cuprad.pix"
pciop	=	"ADD"
pcival	=	[0,0,0,3]

pcimod( file, pciop, pcival )

Because "cuprad.pix" has 224 16S channels, the newly created 32R channels will be numbered 225, 226, and 227.

Use GENAWVC to extract the water vapor content map from "cuprad.pix"

from pci.genawvc import genawvc

rlutfili	=	"rlut.pix"	# PCIDSK file created by GENRLUT
dbsrl		=	[3]		# the resampled RLUT is stored in segment 3 of rlut.pix
file		=	"cuprad.pix"	# extract the water vapor map for "cuprad.pix"
dbdem		=	[]		# use default nominal elevation as specified by NOMELEV
dbaod		=	[]		# surface meteorological range was not specified for
                        # the GENTP5 and GENRLUT runs
dbsmr		=	[]		# surface meteorological range was not specified for
                        # the GENTP5 and GENRLUT runs
dbwvc		=	[225]	# use channel 226 to store the extracted vertical
                        # water vapor content map
dblwt		=	[226]	# use channel 227 to store the leaf water thickness map
dbsse		=	[227]	# use channel 228 to store the error map
rtlevel		=	[]		# apply the full radiometric transformation sequence
                        # stored in cuprad.pix before transforming
nomaod		=	[]		# surface meteorological range was not specified for
                        # the GENTP5 and GENRLUT runs
nomsmr		=	[]		# surface meteorological range was not specified for
                        # the GENTP5 and GENRLUT runs
nomelev		=	[1524]	# elevation sample used in generating the RLUT
wlen1		=	[]	# use default wavelength range start at 800nm
wlen2		=	[]	# use default wavelength range end at 1250nm
inivwc		=	[1]	# use initial water vapor guess of 1g/cm^2
maxiter		=	[]	# use default maximum number of iterations
adjdim		=	[1]	# ignore adjacency effects

genawvc( rlutfili, dbsrl, file, dbdem, dbaod, dbsmr, dbwvc, dblwt, dbsse, rtlevel, nomaod,
nomsmr, nomelev, wlen1, wlen2, inivwc, maxiter, adjdim )

On completion, channels 225, 226, and 227 will contain, respectively, the atmospheric water vapor content, the equivalent leaf water thickness, and the error maps. The water vapor map may then be used in ATRLUT for improving the precision of the atmospheric transformation.

Back to top

Acknowledgements

PCI Geomatics received financial support from the Canadian Space Agency/L'Agence Spatiale Canadienne through the Earth Observation Application Development Program (EOADP) for the development of this software, under contract 9F028-0-4914/09.

Back to top

References

K. Staenz, Williams, D.J., 1997. Retrieval of Surface Reflectance from Hyperspectral data Using a Lookup Table Approach, Canadian Journal of Remote Sensing, Vol. 23, pp. 354-368.

Robert O. Green, and Co., An Inversion Algorithm for Retrieval of Atmospheric and Leaf Water Absorption From AVIRIS Radiance With Compensation for Atmospheric Scattering, Jet Propulsion Laboratory, California Institute of Technology.

Palmer, K.F, D. Williams, 1974, "Optical Properties of Water in the Near Infrared", Journal of Optical Society of America Vol. 64, pp. 1107-1110

Staenz, K., T. Szeredi, J. Schwarz, 1998., "ISDAS - A System for Processing/Analyzing Hyperspectral Data", Canadian Journal of Remote Sensing, Vol. 24, No. 2, pp. 99-113

Wessels, G.J.; Buchheit M., Espesset A.; "The Development of a High Performance, High Volume Distributed Hyperspectral Processor and Display System," IEEE International Geoscience and Remote Sensing Symposium and the 24th Canadian Symposium on Remote Sensing, Toronto, Canada, June 24-28 2002

© PCI Geomatics Enterprises, Inc.®, 2024. All rights reserved.