CloudDetectMinResidualIR

This obsFunction is designed to perform cloud detection using the Minimum Residual Method for Infrared sensors using selected channels from 15 microns CO2 absorption band.

The output of this function is:

0 = channel is not affected by clouds (clear channel)

1 = channel is affected by clouds (cloudy channel)

2 = channel is not affected by clouds but too sensitive to surface condition

Required input parameters:

channels

List of channel to which the cloud detection is performed

use_flag

Use flag (-1: not used; 0: monitoring; 1: used) for each channel in channel list

use_flag_clddet

Useflag (-1: not used; 1: used) indicating if the channel is used for cloud detection

obserr_dtempf

Observation error scale factors applied to surface temperature jacobians over 5 surface types: [sea, land, ice, snow and mixed]

Optional input parameters:

test_obserr

Name of the data group to which the observation error is applied (default is ObsErrorData)

test_hofx

Name of the HofX group used to replace the default group (default is HofX)

test_qcflag

Name of the data group to which the QC flag is applied (default is QCflagsData)

Required fields from obs/geoval

geovals

water_area_fraction@GeoVaLs , ice_area_fraction@GeoVaLs, land_area_fraction@GeoVaLs , surface_snow_area_fraction@GeoVaLs average_surface_temperature_within_field_of_view@GeoVaLs , air_pressure@GeoVaLs air_temperature@GeoVaLs , tropopause_pressure@GeoVaLs

obsDiag

brightness_temperature_jacobian_surface_temperature@ObsDiag , brightness_temperature_jacobian_air_temperature@ObsDiag, transmittances_of_atmosphere_layer@ObsDiag, pressure_level_at_peak_of_weightingfunction@ObsDiag

from observation space:

brightness_temperature@ObsValue, brightness_temperature@ObsError. In addition, brightness_temperature observation error, QC flags, and simulated values at the observatioin locations will come from JEDI default values or or from the input defined by test_obserr, test_qcflag and test_hofx

Example configurations:

Here is an example to use this obsFunction inside the Bounds Check filter. The brightness_temperature is rejected if the QC flags from this ObsFunction output value is bigger than maxvalue=1.0e-12.

- filter: Bounds Check
  filter variables:
  - name: brightness_temperature
    channels: *all_channels
  test variables:
  - name: CloudDetectMinResidualIR@ObsFunction
    channels: *all_channels
    options:
      channels: *all_channels
      use_flag: [ -1, -1,  1, -1, -1,  1, -1, -1,  1,  1,
                   1, -1,  1,  1, -1, -1, -1,  1, -1, -1,
                   1, -1, -1, -1, -1, -1, -1, -1,  1, -1,
                   1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ]
      use_flag_clddet: [ -1, -1,  1, -1, -1,  1, -1, -1,  1,  1,
                          1, -1,  1,  1, -1, -1, -1,  1, -1, -1,
                          1, -1, -1, -1, -1, -1, -1, -1,  1, -1,
                          1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ]
      obserr_dtempf: [0.50, 2.00, 4.00, 2.00, 4.00]
  maxvalue: 1.0e-12
  action:
    name: reject