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

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

obsDiag

ObsDiag/brightness_temperature_jacobian_surface_temperature , ObsDiag/brightness_temperature_jacobian_air_temperature, ObsDiag/transmittances_of_atmosphere_layer, ObsDiag/pressure_level_at_peak_of_weightingfunction

from observation space:

ObsValue/brightnessTemperature, ObsError/brightnessTemperature. In addition, brightnessTemperature 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 brightnessTemperature is rejected if the QC flags from this ObsFunction output value is bigger than maxvalue=1.0e-12.

- filter: Bounds Check
  filter variables:
  - name: brightnessTemperature
    channels: *all_channels
  test variables:
  - name: ObsFunction/CloudDetectMinResidualIR
    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