ObsFunctionExponential¶
This obsFunction computes the exponential function of a variable, e.g. var1 - given coefficients A, B, C, D, the output is A * exp ( B * var1 ) + C, or the output is D when var1 is missing.
Required input parameters:¶
- variables
 The variable to be in the argument of the exponential function. May be a multi-channel variable, in which case both the name of the variable and the channels must be given. Only one variable should be specified, otherwise the filter will stop with an error.
Optional input parameters:¶
- coeffA
 Multiplier of exponential function. Default if not specified:
1.0- coeffB
 Multiplier of input variable within the exponential function. Default:
1.0- coeffC
 Constant term additional to the exponential. Default:
0.0- coeffD
 Value output at locations where the input variable is missing. Default:
missing
Example configuration:¶
Here is an example that assigns to DerivedObsValue/cool_skin_correction, the output (0.2 * exp ( -0.2 * ObsValue/windSpeed ) + 0.1) in locations where ObsValue/windSpeed is not missing, and 0.15 in locations where ObsValue/windSpeed is missing.
- filter: Variable Assignment  # calculate cool-skin correction
  assignments:
  - name: DerivedObsValue/cool_skin_correction
    type: float
    function:
      name: ObsFunction/Exponential
      options:
        variables: [ObsValue/windSpeed]
        coeffA: 0.2
        coeffB: -0.2
        coeffC: 0.1
        coeffD: 0.15 # not actual values
An example with a multi-channel variable:
obs function:
  name: ObsFunction/Exponential
  options:
    variables:
    - name: MetaData/fake_x_data
      channels: 1-3
    coeffA: -1.0
    coeffB: -0.1
    coeffC: 1.0
This will return the 3-channel output: -1.0 * exp ( -0.1 * MetaData/fake_x_data_<channel> ) + 1.0. Missing values of MetaData/fake_x_data_<channel> result in missing values output at those locations, since no coeffD is specified.
Note that to prevent floating-point overflow, the argument of the exponential is limited to +40.0 - when (B * var1) > 40.0, a value of coeffD is returned at that location and a warning is output. Care should be taken when choosing coeffB. Please ensure the input variable’s missing values are the proper JEDI missing values, rather than some other large negative number - that could also trigger the exponential argument limit if B < 0.