# ObsFunctions in UFO¶

Observation Functions are more advanced filtering routines that are encapsulated together in a unit. They usually combine several complicated logic operations, and decomposing these filters into separate parts would have an obfuscating effect.

- AssignValueEqualChannels
Assign values to a variable, depending on a value of another (channel-by-channel)

- BennartzScatIndex
Compute Bennartz scattering index from microwave channels

- BgdDepartureAnomaly
Compute the background departure anomaly between two channels

- ChannelUseflagCheckRad
Channel usage flag check for radiances

- CloudCostFunction
Bayesian cost function for detecting cloud-affected radiances

- CloudDetectMinResidualAVHRR
Cloud detection using Minimum Residual Method for AVHRR

- CloudDetectMinResidualIR
Cloud detection using Minimum Residual Method for IR Sensors

- CloudFirstGuessMinimumResidual
Cloud top pressure and effective cloud amount from satellite BTs.

- CLWMatchIndexMW
Cloud liquid water match index for microwave radiances

- CLWRetMW
Retrieve cloud liquid water using MW channels (non-SSMIS version)

- CLWRetMW_SSMIS
Cloud liquid water for SSMIS

- CLWRetSymmetricMW
Estimates the actual Cloud Liquid Water (CLW) content from both model background and observed content

- Conditional
Create an array of ints, floats, strings or date times using a series of where clauses.

- DateTimeOffset
Add an offset variable, with units of seconds, minutes or hours, to the

`MetaData/dateTime`

variable.- DrawObsErrorFromFile
Derive observation error values by interpolating an array loaded from a file, representing the variance or covariance matrix (of which only the diagonal elements are taken into account), indexed by coordinates whose names correspond to ObsSpace variables. This file can potentially contain a collection (“stack”) of such matrices.

- DrawValueFromFile
Derive values by interpolating an array loaded from a file, indexed by coordinates whose names correspond to ObsSpace variables

- FillAveragedProfileData
Copy values from an observed atmospheric profile to the same profile averaged onto model levels.

- HydrometeorCheckAMSUA
AMSU-A cloud and precipitation checks

- HydrometeorCheckATMS
ATMS cloud and precipitation checks

- InterChannelConsistencyCheck
Inter-channel consistency check for radiances

- MetOfficeRelativeHumidityCorrection
Produce correction to Met Office relative humidity H(x).

- NearSSTRetCheckIR
NCEP-GDAP near-sea-surface temperature IR retrieval

- ObsErrorBoundIR
Observation error bound for gross check

- ObsErrorBoundMW
Obseration error bounds for microwave radiances

- ObsErrorFactorConventional
Compute observation error inflation factor for conventional observations based on vertical spacing

- ObsErrorFactorLatRad
Observation error bound reduction within tropics

- ObsErrorFactorQuotient
Reject observations based on comparing final observation error to initial error estimate

- ObsErrorFactorSfcPressure
Inflate observation error for surface pressure (as in GSI)

- ObsErrorFactorSituDependMW
Compute error inflation factors for AMSU-A and ATMS

- ObsErrorFactorSurfJacobianRad
Inflate error using surface temperature and emissivity Jacobians

- ObsErrorFactorTopoRad
GSI error inflation as a function of terrain height, channel, and transmittance

- ObsErrorFactorTransmitTopRad
Satellite radiance observation error inflation factor

- ObsErrorFactorWavenumIR
Observation error inflation for satellite infrared sensors

- ObsErrorModelHumidity
Variant of ObsErrorModelStepwiseLinear for humidity observation error assignment

- ObsErrorModelRamp
Parameterize observation error as a piecewise linear function

- ObsErrorModelStepwiseLinear
GSI variant of ObsErrorModelRamp

- ObsFunctionExponential
Compute exponential function of a variable

- ObsFunctionLinearCombination
Compute linear combination of given variables weighted by given coefficients.

- ObsFunctionSelectStatistic
Output all 0’s, except for 1 in locations corresponding (or closest) to the minimum, maximum, median or mean of the input variable within each record.

- ObsFunctionStringManipulation
Perform an operation on a string to change its format i.e slice.

- ObsFunctionVelocity
Compute wind speed from u- and v- components

- OceanPressureToDepth
Convert an ocean pressure variable (Pa) to depth below surface (m)

- ProfileAverageObsPressure
Fill values of pressure in profiles that have been averaged onto model levels.

- ProfileLevelCount
Count the number of locations in each profile that satisfy a particular condition.

- RONBAMErrInflate
Observation error inflation factor for GnssroBndNBAM

- SatwindIndivErrors
Compute individual u- or v- component observation errors for Satwinds

- SatWindsLNVDCheck
log-normal vector difference (LNVD) between observed and model winds

- SatWindsSPDBCheck
Wind gross error check

- SCATRetMW
Retrieve Grody et al. scattering index from bias-adjusted channels over water surfaces

- SetSurfaceType
Determine and output surface type for use with observation operator

- SetSeaIceEmiss
Calculate MW emissivity for surfaces classified as Ice by AAPP.

- TropopauseEstimate
First-guess extimate of tropopause pressure from climatology

- WindDirAngleDiff
Compute wind direction angle different between observation and model