You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

Jump to: ecCKDARTDECO-PyKdis

A Correlated K-Distribution (CKD) tool generates CKD gas-optics models in a number of steps, some which may require human intervention. One of the most interesting parts of the CKDMIP project will be to understand how differences in how each step is performed feed through to differences in the accuracy of fluxes and heating rates. The page is an attempt to gather the necessary information about the CKD tools participating in CKDMIP, specifically:

Reference(s): Relevant paper(s) describing the method.

Implementation details: What language is the code in, is it (or could it be) suitable for others to use and if so under what license? 

Selecting band boundaries: Band boundaries are always chosen manually, but what are the restrictions on band width, e.g. to minimize the number of major gases in each band, or the variation in the Planck function?

Line-by-line model: Which LBL model is used?

Reordering spectrum: Is reordering done separately at each pressure level, or is there a unique mapping from wavenumber to g space?

Choosing number of g points: Is this specified manually, or is an automated procedure used to determine the appropriate number of g points for a particular band and gas?

Partitioning g space for one gas: Is g space partitioned using a fixed formula (e.g. Gaussian Quadrature), or a more adaptive method?

Partitioning g space for multiple gases: How are the g points for the individual active gases in a band combined to produce the total number of g points?

Computing absorption of one gas: How are the LBL spectral absorption values averaged to obtain the absorption by one gas in one g point, e.g. logarithmic averaging?  How is the pressure/temperature/concentration dependence of absorption handled in the gas-optics model generated, e.g. parametrically or as a look-up table?

Computing combined absorption of multiple gases: How are the absorptions from multiple gases combined, potentially accounting for non-random spectral overlap?

Computing Planck function for each longwave g point: Is the Planck function first computed for the band and then partitioned amongst the g points, or is account made for exactly where in the band the energy contributing to a particular g point comes from? 

Computing incoming solar radiation for each shortwave g point: How is the incoming solar radiation computed for each g point, and using which solar spectrum?

Other relevant information...

ecCKD

Reference: Hogan (JAS 2010), although there have been several improvements since then such as extension to the shortwave.

Implementation details: ecCKD consists of a number of C++ programs called from shell scripts. Permission has been requested to release it to others under the Apache 2.0 open source license, although some tidying would be needed.

Selecting band boundaries: There are no restrictions on the width of a band, and indeed ecCKD can be used to generate full-spectrum correlated-k (FSCK) models.

Line-by-line model: LBLRTM version 12.8; in fact we use only the LBL calculations available from the CKDMIP FTP site.

Reordering spectrum: The spectra for the "median" CKDMIP present-day profile are reordered. Reordering is performed for "major" gases, which are configurable but for the "climate" application are H2O, O3, CO2, CH4, N2O, and in the shortwave only, a composite gas of O2+N2. For the "NWP" application the major gases are H2O, O3 and a composite gas containing all well-mixed gases at present-day concentrations. Each major gas is reordered separately (where a composite gas is treated as a single gas). A unique ordering is produced for each gas that is constant with pressure, i.e. we don't reorder separately at each pressure level. In the longwave, ordering is in terms of the height of the peak cooling rate for an idealized temperature profile that monotonically decreases with height. In the shortwave, ordering is in terms of the height at which the zenith optical depth to top-of-atmosphere is 0.25.

Choosing number of g points: The number of g points required to represent each major gas is computed in turn. The user specifies a heating-rate error tolerance, and the code calculates the number of g points needed to ensure that the RMS heating rate error (compared to the LBL reference) for each g point is less than this tolerance, taking the concentration of the target gas from the "median" CKDMIP profile. The concentrations of all other gases are held at their "minimum" value. This adaptive method to choose the number of g points ensures that fewer g points are used for gases with weak absorption in a particular band, or in a band with little energy. 

Partitioning g space for one gas: For each gas, an equipartition algorithm is used to shuffle the boundaries in g space to ensure that each g point contributes roughly equally to the RMS error in heating rate and fluxes, again just considering the "median" CKDMIP profile.

Partitioning g space for multiple gases: If we have M major gases then g space in a band consists of an M-dimensional hypercube. Hogan (2010) described a technique to partition this cube such that the total number of g points required is N = N1+N2+...+NM + 1 - M, where Ni is the number of g points required for gas i.  Note that if gas i is declared as major but turns out to have weak absorption in a particular band then it will not lead to unnecessary g points because Ni will be 1 (i.e. a single g point representing the entire band). 

Computing absorption of one gas: The CKDMIP "Idealized" dataset is used to construct a look-up table for each gas (major and minor): for a given input temperature, pressure and concentration, the look-up table provides the absorption coefficient of that gas at all N g points.  The absorption coefficient in a g point is computed by averaging the spectral absorption coefficients contributing to that g point such that the transmittance of the layer to diffuse radiation is preserved (although other averaging methods are available).  For all gases except H2O, the absorption coefficient is assumed to be proportional to concentration (i.e. the look-up table provides the molar absorption coefficient from temperature and pressure, which is then multiplied by the mole fraction of the gas to obtain the absorption coefficient). The look-up table for H2O allows a nonlinear dependence of absorption on concentration. Composite gases represent the sum of those gases whose concentrations can be assumed fixed or a function of pressure alone; in this case the look-up table is a function of temperature and pressure with no dependence on concentration.

Computing combined absorption of multiple gases: Gas optics models produced by ecCKD assume that the total optical depth of a layer in one g point is the sum of the contributions from individual gases, each computed from a look-up table. However, the performance using absorptions directly from the previous step is poor. Therefore, an optimization step is performed: a cost function is defined that consists of the sum of squared errors in fluxes and heating rates, using the 50-profile LBL CKDMIP Evaluation-1 dataset as truth, and sampling a range of greenhouse gas concentration scenarios. The coefficients of the look-up table are adjusted to minimize the cost function. This does, however, mean that an ecCKD-generated gas-optics model is not independent of the Evaluation-1 dataset, so will need to be evaluated with the independent Evaluation-2 dataset.

Computing Planck function for each longwave g point: The Planck function is computed for each g point as a look-up table against temperature with 1 K resolution. Since each g point maps on to the same points of the original spectrum regardless of pressure, this look-up table is created simply by integrating over the spectral Planck function from those spectral points.

Computing incoming solar radiation for each shortwave g point: The incoming solar radiation for a g point is found by integrating over the points of the Coddington et al. (BAMS 2016) reference spectrum used by CKDMIP which contribute to that g point.

ARTDECO-PyKdis

Reference: There is no publication on PyKdis, but the tool is largely based on the method described by Lacis & Oinas (1991) and Edwards & Francis (2000).

Implementation details: The code is written in Python3. Coefficients as computed with the PyKdis tools are distributed with ARTDECO. PyKdis itself is not intended to be shared for now but may be distributed as part of ARTDECO at some point.

Selecting band boundaries: PyKdis can be used to generate correlated-k coefficients for narrow bands ranging over the entire solar and thermal spectral domains. It can also be used to produce coefficients related to instrument spectral response function (e.g. 3MI, METimage, SEVIRI). No specific implementation is available in order to be able to produce full-spectrum correlated-k coefficients, in particular because we use it mostly for solar range under scattering atmosphere (Rayleigh, aerosol, cloud). In the solar range, the solar spectrum is used to weight the spectral absorption coefficients.

Line-by-line model: Either (1) the LBL tool Py4cats, written in Python under the GNU license and integrated into PyKdis, or (2) tabulated LBL spectral absorption. The spectral absorptions must be provided for each gas separately and tabulated for relevant pressures and temperatures. We developed this branch especially in order to be able to use LBL spectral absorptions from LBLRTM and ARAHMIS (the LBL code developed at LOA).

Reordering spectrum: The mapping from wavenumber to g space is done for each temperature and pressure separately considering a given number (depending on the k range) of log10(k) sub-interval. Reordering is performed for each gas separately. As of now, possibility to use a "composite" gas is not implemented.

Choosing number of g points: The number of g points for a given gas depends on its transmission over the band for airmass = 2 computed for a test atmosphere (usually US62).

  • 0 < T ≤ 0.05, ng=10
  • 0.05 < T ≤ 0.5, ng=20
  • 0.5 < T ≤ 0.8, ng=15
  • 0.8 < T ≤ 0.9, ng=10
  • 0.9 < T ≤ 0.99, ng=5
  • 0.99 < T ≤ 0.999, ng=3
  • 0.999 < T ≤ 1.0, ng=1

Partitioning g space for one gas: For each gas, the partition of g space is obtained by first setting a Gaussian quadrature grid over the log10(k) range for a reference pressure and temperature (most likely corresponding to an altitude where the absorption will be the most important in the atmosphere). This grid is then mapped to the g space and the corresponding g partition is then used for all other pressures and temperatures.

Partitioning g space for multiple gases: Random line position assumption and brute force approach with N g-points being the product of the Ni g-points of individual gases.

Computing absorption of one gas: The g partition being known, we compute the average log10(k) value in each g interval weighting it using the probability density function of log10(k). The coefficients obtained are tabulated in pressure and temperature to produce a look-up table. Molar absorption coefficients are stored. The CKDMIP "Idealized" dataset could then be used to produce such a LUT.

Computing combined absorption of multiple gases: Random line position assumption and brute force approach with N g-points being the product of the Ni g-points of individual gases.

Computing Planck function for each longwave g point: The Planck function is not accounted for in computing the coefficients (i.e. not accounted for in computing g).

Computing incoming solar radiation for each shortwave g point: The incoming solar spectral flux is accounted for in computing g as a weighting function of the spectral absorption coefficients.

  • No labels