Skip to content

Commit

Permalink
Phase 1 validation: vadwnd (224) yamls (#261)
Browse files Browse the repository at this point in the history
Finished phase 1 tests for vadwnd (224) obs. The phase 1 tests were also
done in such a way that also checks the QC filters similarly to phase 2,
but only GSI-IODA was used.
  • Loading branch information
delippi authored Jan 30, 2025
1 parent 063f369 commit 590e4e1
Showing 1 changed file with 356 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,356 @@
- obs space:
name: vadwnd_winds_224
distribution:
name: "@DISTRIBUTION@"
halo size: 100e3
obsdatain:
engine:
type: H5File
obsfile: "@OBSFILE@"
obsgrouping:
group variables: ["stationIdentification"]
sort variable: "pressure"
sort order: "descending"
obsdataout:
engine:
type: H5File
obsfile: jdiag_vadwnd_winds_224.nc4
allow overwrite: true
io pool:
max pool size: 1
observed variables: [windEastward, windNorthward]
simulated variables: [windEastward, windNorthward]

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

linear obs operator:
name: Identity

obs error:
covariance model: diagonal

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

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

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

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

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

# Initial error assignment
- filter: Perform Action
filter variables:
- name: windEastward
- name: windNorthward
where:
- variable: ObsType/windEastward
is_in: 224
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.8617, 2.7545, 2.606, 2.4519, 2.3213, 2.2446, 2.2396, 2.2997, 2.414, 2.5663, 2.7346, 2.8938, 3.0317, 3.16, 3.2982, 3.578, 4.3349, 5.6961, 7.4388, 8.9893, 10.045, 10.623, 10.883, 10.975, 10.999, 11.002, 11.0, 10.999, 10.999, 11.0, 11.002, 10.999, 10.972]


# Error inflation (windEastward) based on pressure check (setupw.f90)
- filter: Perform Action
filter variables:
- name: windEastward
where:
- variable: ObsType/windEastward
is_in: 224
action:
name: inflate error
inflation variable:
name: ObsFunction/ObsErrorFactorPressureCheck
options:
variable: windEastward
inflation factor: 4.0

# Error inflation (windNorthward) based on pressure check (setupw.f90)
- filter: Perform Action
filter variables:
- name: windNorthward
where:
- variable: ObsType/windNorthward
is_in: 224
action:
name: inflate error
inflation variable:
name: ObsFunction/ObsErrorFactorPressureCheck
options:
variable: windNorthward
inflation factor: 4.0

# Error inflation (windEastward) based on errormod (qcmod.f90)
- filter: Perform Action
filter variables:
- name: windEastward
where:
- variable: ObsType/windEastward
is_in: 224
action:
name: inflate error
inflation variable:
name: ObsFunction/ObsErrorFactorConventional
options:
inflate variables: [windEastward]
test QCflag: QualityMarker
test QCthreshold: 3
distance threshold: 0
pressure: MetaData/pressure

# Error inflation (windNorthward) based on errormod (qcmod.f90)
- filter: Perform Action
filter variables:
- name: windNorthward
where:
- variable: ObsType/windNorthward
is_in: 224
action:
name: inflate error
inflation variable:
name: ObsFunction/ObsErrorFactorConventional
options:
inflate variables: [windNorthward]
test QCflag: QualityMarker
test QCthreshold: 3
distance threshold: 0
pressure: MetaData/pressure

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

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

# Bounds Check
- filter: Bounds Check
apply at iterations: 0,1
filter variables:
- name: windEastward
- name: windNorthward
minvalue: -130
maxvalue: 130
action:
name: reject

# Assign abs(windEastward)
- filter: Variable Assignment
assignments:
- name: AbsObsValue/windEastward
type: float
function:
name: ObsFunction/Arithmetic
options:
variables:
- name: ObsValue/windEastward
absolute value: [true]

# Assign abs(windNorthward)
- filter: Variable Assignment
assignments:
- name: AbsObsValue/windNorthward
type: float
function:
name: ObsFunction/Arithmetic
options:
variables:
- name: ObsValue/windNorthward
absolute value: [true]

# Reject when abs(windNorthward) < 1.0 .and. abs(windEastward) < 1.0
- filter: Bounds Check
filter variables:
- name: windEastward
- name: windNorthward
minvalue: 1
where:
- variable:
name: AbsObsValue/windEastward
minvalue: 0
maxvalue: 1
- variable:
name: AbsObsValue/windNorthward
minvalue: 0
maxvalue: 1
where operator: and
action:
name: reject

# Reject when pressure is less than 226 mb.
- filter: Bounds Check
apply at iterations: 0,1
filter variables:
- name: windEastward
- name: windNorthward
test variables:
- name: MetaData/pressure
minvalue: 22600
action:
name: reject

# Gross Error Check (windEastward)
- filter: Background Check
apply at iterations: 0,1
filter variables:
- name: windEastward
function absolute threshold:
- name: ObsFunction/WindsSPDBCheck
options:
wndtype: [ 224 ]
cgross: [ 6.5 ]
error_min: [ 1.4 ]
error_max: [ 6.1 ]
variable: windEastward
where:
- variable: QualityMarker/windEastward
is_not_in: 3
action:
name: reject
defer to post: true

# Gross Error Check (windNorthward)
- filter: Background Check
apply at iterations: 0,1
filter variables:
- name: windNorthward
function absolute threshold:
- name: ObsFunction/WindsSPDBCheck
options:
wndtype: [ 224 ]
cgross: [ 6.5 ]
error_min: [ 1.4 ]
error_max: [ 6.1 ]
variable: windNorthward
where:
- variable: QualityMarker/windNorthward
is_not_in: 3
action:
name: reject
defer to post: true

# Gross Error Check (windEastward): cgross*0.7 if QualityMarker=3
- filter: Background Check
apply at iterations: 0,1
filter variables:
- name: windEastward
function absolute threshold:
- name: ObsFunction/WindsSPDBCheck
options:
wndtype: [ 224 ]
cgross: [ 4.55 ]
error_min: [ 1.4 ]
error_max: [ 6.1 ]
variable: windEastward
where:
- variable: QualityMarker/windEastward
is_in: 3
action:
name: reject
defer to post: true

# Gross Error Check (windNorthward): cgross*0.7 if QualityMarker=3
- filter: Background Check
apply at iterations: 0,1
filter variables:
- name: windNorthward
function absolute threshold:
- name: ObsFunction/WindsSPDBCheck
options:
wndtype: [ 224 ]
cgross: [ 4.55 ]
error_min: [ 1.4 ]
error_max: [ 6.1 ]
variable: windNorthward
where:
- variable: QualityMarker/windNorthward
is_in: 3
action:
name: reject
defer to post: true

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

0 comments on commit 590e4e1

Please sign in to comment.