Skip to content

Commit

Permalink
Phase 1 validation: rassda (126) yamls (#269)
Browse files Browse the repository at this point in the history
The rassda observations have passed phase 1 validation.
  • Loading branch information
delippi authored Feb 10, 2025
1 parent f49df17 commit be26892
Showing 1 changed file with 258 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,258 @@
- obs space:
name: rassda_airTemperature_126
distribution:
name: "@DISTRIBUTION@"
halo size: 100e3
obsdatain:
engine:
type: H5File
obsfile: "@OBSFILE@"
#obsfile: "obsout/rass_tsen_obs_2024052700_dc.nc4"
obsgrouping:
group variables: ["stationIdentification"]
sort variable: "pressure"
sort order: "descending"
obsdataout:
engine:
type: H5File
obsfile: jdiag_rassda_airTemperature_126.nc4
allow overwrite: true
io pool:
max pool size: 1
observed variables: [airTemperature]
simulated variables: [airTemperature]

obs operator:
name: VertInterp
vertical coordinate: air_pressure
observation vertical coordinate: pressure
observation vertical coordinate group: MetaData
interpolation method: log-linear
#gsi geovals:
# filename: "obsout/rass_tsen_geoval_2024052700.nc4"
# levels_are_top_down: False
variables:
- name: airTemperature

linear obs operator:
name: VertInterp

obs error:
covariance model: diagonal

obs localizations:
- localization method: Horizontal Gaspari-Cohn
lengthscale: 300e3 # orig

obs filters:
# ------------------
# airTemperature (126)
# ------------------
# Reject all obs with QualityMarker > 3
- filter: Perform Action
apply at iterations: 0,1
filter variables:
- name: airTemperature
where:
- variable: QualityMarker/airTemperature
is_in: 4-15
action:
name: reject

# Time window filter
- filter: Domain Check
apply at iterations: 0,1
where:
- variable:
name: MetaData/timeOffset # units: s
minvalue: -360
maxvalue: 360

# Duplicate Check
- filter: Temporal Thinning
apply at iterations: 0,1
filter variables:
- name: airTemperature
min_spacing: PT90M
tolerance: PT0H
seed_time: "2024-05-27T00:00:00Z"
category_variable:
name: MetaData/longitude_latitude_pressure

# Online regional domain check
- filter: Bounds Check
filter variables:
- name: airTemperature
test variables:
- name: GeoVaLs/observable_domain_mask
minvalue: 0.0
maxvalue: 0.5

# Initial error assignment
- filter: Perform Action
filter variables:
- name: airTemperature
where:
- variable: ObsType/airTemperature
is_in: 126
action:
name: assign error
error function:
name: ObsFunction/ObsErrorModelStepwiseLinear
options:
xvar:
name: MetaData/pressure
xvals: [110000, 105000, 100000, 95000, 90000, 85000, 80000, 75000, 70000, 65000, 60000, 55000, 50000, 45000, 40000, 35000, 30000, 25000, 20000, 15000, 10000, 7500, 5000, 4000, 3000, 2000, 1000, 500, 400, 300, 200, 100, 0]
errors: [2.4296, 2.4261, 2.3798, 2.3022, 2.2627, 2.2817, 2.2826, 2.1826, 2.0092, 1.8385, 1.7169, 1.6511, 1.6306, 1.6472, 1.7005, 1.7905, 1.9016, 1.9907, 2.0094, 1.9571, 1.8864, 1.86, 1.9104, 2.0392, 2.2324, 2.4605, 2.6741, 2.8318, 2.9263, 2.9735, 2.9931, 2.9985, 2.9924]

# Error inflation based on pressure check (setupt.f90)
- filter: Perform Action
filter variables:
- name: airTemperature
where:
- variable: ObsType/airTemperature
is_in: 126
action:
name: inflate error
inflation variable:
name: ObsFunction/ObsErrorFactorPressureCheck
options:
variable: airTemperature
inflation factor: 8.0

# Error inflation based on errormod (qcmod.f90)
- filter: Perform Action
filter variables:
- name: airTemperature
where:
- variable: ObsType/airTemperature
is_in: 126
action:
name: inflate error
inflation variable:
name: ObsFunction/ObsErrorFactorConventional
options:
inflate variables: [airTemperature]
pressure: MetaData/pressure

# Error inflation when QualityMarker == 3 (read_prepbufr.f90)
- filter: Perform Action
filter variables:
- name: airTemperature
action:
name: inflate error
inflation factor: 1.2
where:
- variable: QualityMarker/airTemperature
is_in: 3

# Error inflation when observation pressure < 100 hPa (read_prepbufr.f90)
- filter: Perform Action
filter variables:
- name: airTemperature
action:
name: inflate error
inflation factor: 1.2
where:
- variable: MetaData/pressure
maxvalue: 10000.0

# Bounds Check
- filter: Bounds Check
apply at iterations: 0,1
filter variables:
- name: airTemperature
minvalue: 100
maxvalue: 400

# Create temporary ObsErrorData
- filter: Variable Assignment
apply at iterations: 0,1
assignments:
- name: TempObsErrorData/airTemperature
type: float
function:
name: ObsFunction/Arithmetic
options:
variables:
- name: ObsErrorData/airTemperature
defer to post: true

# Set ObsError set "error parameter" if < "max value"
- filter: Perform Action
apply at iterations: 0,1
filter variables:
- name: airTemperature
action:
name: assign error
error parameter: 1.3
where:
- variable:
name: ObsErrorData/airTemperature
maxvalue: 1.3
- variable:
name: ObsErrorData/airTemperature
value: is_valid
defer to post: true

# Set ObsError set "error parameter" if > "min value"
- filter: Perform Action
apply at iterations: 0,1
filter variables:
- name: airTemperature
action:
name: assign error
error parameter: 5.6
where:
- variable:
name: ObsErrorData/airTemperature
minvalue: 5.6
- variable:
name: ObsErrorData/airTemperature
value: is_valid
defer to post: true

# Gross Error Check
- filter: Background Check
apply at iterations: 0,1
filter variables:
- name: airTemperature
threshold: 5.0
action:
name: reject
where:
- variable: ObsType/airTemperature
- variable: QualityMarker/airTemperature
is_not_in: 3
defer to post: true

# Gross Error Check: cgross*0.7 if QualityMarker=3
- filter: Background Check
apply at iterations: 0,1
filter variables:
- name: airTemperature
threshold: 3.5
action:
name: reject
where:
- variable: ObsType/airTemperature
- variable: QualityMarker/airTemperature
is_in: 3
defer to post: true

# Re-assign err ObsErrorData <--- TempObsErrorData after gross error check.
- filter: Perform Action
apply at iterations: 0,1
filter variables:
- name: airTemperature
action:
name: assign error
error function: TempObsErrorData/airTemperature
where:
- variable:
name: TempObsErrorData/airTemperature
value: is_valid
defer to post: true

#- filter: GOMsaver
# filename: ./data/geovals/rassda_geovals_rrfs.nc4

0 comments on commit be26892

Please sign in to comment.