Correct a variable based on the sensor zenith angleΒΆ
This variable transform was written to correct a variable for the sensor viewing angle, principally for emissivity data read from a static atlas.
Transform: SatZenithAngleCorrection
- filter: Variable Transforms
Transform: SatZenithAngleCorrection
transform variable:
name: MetaData/emissivity
Parameters
The default option for this transform requires the following variable to be available:
sensor zenith angle (
MetaData/sensorZenithAngle
)
The following options are available for this variable transform:
transform variable
is a required parameter and is of typeufo::Variable
. This type requires a name and usually a list of channels.coefficient a
is a parameter and a vector of floats with a default value of {1.0}. This variable is \(a_1\) in the equation in the method section. It must be the same size as the total number of variables intransform variable
.coefficient b
is a parameter and a vector of floats with a default value of {1.0}. This variable is \(a_2\) in the equation in the method section. It must be the same size as the total number of variables intransform variable
.coefficient c
is a parameter and a vector of floats with a default value of {1.0}. This variable is \(a_3\) in the equation in the method section. It must be the same size as the total number of variables intransform variable
.exponent a
is a parameter and an integer with a default value of 1. This variable is \(b_1\) in the equation in the method section. This exponent is applied to all variables intransform variable
. In the example below the same exponent a is used for emissivity_1 and emissivity_2.exponent b
is a parameter and an integer with a default value of 1. This variable is \(b_2\) in the equation in the method section. This exponent is applied to all variables intransform variable
. In the example below the same exponent b is used for emissivity_1 and emissivity_2.exponent c
is a parameter and an integer with a default value of 1. This variable is \(b_3\) in the equation in the method section. This exponent is applied to all variables intransform variable
. In the example below the same exponent c is used for emissivity_1 and emissivity_2.minimum value
is an optional parameter which defines the minimum acceptable value of the output \(var\) in the equation in the method section. If an output value exceeds this limit the missing value indicator is the assigned value.maximum value
is an optional parameter which defines the maximum acceptable value of the output \(var\) in the equation in the method section. If an output value exceeds this limit the missing value indicator is the assigned value.
Example using all the available parameters
- filter: Variable Transforms
Transform: SatZenithAngleCorrection
transform variable:
name: DerivedObsValue/emissivity
channels: 1,2
coefficient a: [-3.60e-03, -2.38e-03]
coefficient b: [ 2.21e-05, 2.15e-05]
coefficient c: [-7.83e-09, -5.00e-09]
exponent a: 0
exponent b: 2
exponent c: 4
minimum value: 0.0
maximum value: 1.0
If you have an observation with an input emissivity of 0.5 and a sensor zenith angle of 30.0, the above yaml would do the following calculation for channel 2:
Method
The input variable is updated using the following formula:
- where:
\(var\) is the input and output variable of interest.
\(a_n\) is the \(n^{th}\) coefficient used to multiple the zenith angle.
\(b_n\) is the \(n^{th}\) exponent of the zenith angle.
\(\theta\) is the sensor viewing angle in degrees.