Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions observation_chronicle/snow/t00z/snocvr_snomad.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Instrument metadata
# -------------------
commissioned: 2025-09-01T00:00:00

observer_type: conventional # Type of chronicle to use

window_option: max

# observation type initial configuration
# --------------------------------
stations_to_reject: [fakelist]

# Chronicle of changes for this observation type
# ----------------------------------------
14 changes: 14 additions & 0 deletions observation_chronicle/snow/t00z/snomad.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Instrument metadata
# -------------------
commissioned: 2025-09-01T00:00:00

observer_type: conventional # Type of chronicle to use

window_option: max

# observation type initial configuration
# --------------------------------
stations_to_reject: [fakelist]

# Chronicle of changes for this observation type
# ----------------------------------------
14 changes: 14 additions & 0 deletions observation_chronicle/snow/t06z/snocvr_snomad.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Instrument metadata
# -------------------
commissioned: 2025-09-01T00:00:00

observer_type: conventional # Type of chronicle to use

window_option: max

# observation type initial configuration
# --------------------------------
stations_to_reject: [fakelist]

# Chronicle of changes for this observation type
# ----------------------------------------
14 changes: 14 additions & 0 deletions observation_chronicle/snow/t06z/snomad.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Instrument metadata
# -------------------
commissioned: 2025-09-01T00:00:00

observer_type: conventional # Type of chronicle to use

window_option: max

# observation type initial configuration
# --------------------------------
stations_to_reject: [fakelist]

# Chronicle of changes for this observation type
# ----------------------------------------
216 changes: 216 additions & 0 deletions observations/snow/snocvr_snomad.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@
-

# Observation Space (I/O)
# -----------------------
obs space:
name: snocvr_snomad
obsdatain:
engine:
type: H5File
obsfile: "{{snow_prepobs_path}}/{{snow_obsdatain_prefix}}{{observation_from_jcb}}.tm00.nc"
missing file action: warn
obsgrouping:
group variables: [stationIdentification]
obsdataout:
engine:
type: H5File
obsfile: "{{snow_obsdataout_path}}/{{snow_obsdataout_prefix}}{{observation_from_jcb}}{{snow_obsdataout_suffix}}"
simulated variables: [totalSnowDepth]
#

# Observation Operator
# --------------------
obs operator:
name: Identity
#

# Observation Filters (QC)
# ------------------------
obs pre filters:
- filter: Create Diagnostic Flags
flags:
- name: missing_snowdepth
initial value: false
- name: missing_elevation
initial value: false
- name: temporal_thinning
initial value: false
- name: invalid_snowdepth
initial value: false
- name: invalid_elevation
initial value: false
- name: land_check
initial value: false
- name: landice_check
initial value: false
- name: seaice_check
initial value: false
- name: elevation_bkgdiff
initial value: false
- name: rejectlist
initial value: false
- name: background_check
initial value: false
- filter: Perform Action
filter variables:
- name: totalSnowDepth
action:
name: assign error
error parameter: 40.0
- filter: Domain Check
where:
- variable:
name: ObsValue/totalSnowDepth
value: is_valid
actions:
- name: set
flag: missing_snowdepth
ignore: rejected observations
- name: reject
- filter: Domain Check
where:
- variable:
name: MetaData/stationElevation
value: is_valid
actions:
- name: set
flag: missing_elevation
ignore: rejected observations
- name: reject
- filter: Temporal Thinning
min_spacing: '{{ window_length }}'
seed_time: '{{ snow_background_time_iso }}'
category_variable:
name: MetaData/stationIdentification
actions:
- name: set
flag: temporal_thinning
ignore: rejected observations
- name: reject
obs prior filters:
- filter: Bounds Check
filter variables:
- name: totalSnowDepth
minvalue: 0.0
maxvalue: 20000.0
actions:
- name: set
flag: invalid_snowdepth
ignore: rejected observations
- name: reject
- filter: Domain Check # land only
where:
- variable:
name: GeoVaLs/fraction_of_land
minvalue: 0.5
actions:
- name: set
flag: land_check
ignore: rejected observations
- name: reject
- filter: Domain Check
where:
- variable:
name: MetaData/stationElevation
minvalue: -200.0
maxvalue: 9900.0
actions:
- name: set
flag: invalid_elevation
ignore: rejected observations
- name: reject
- filter: Domain Check # land only, no sea ice
where:
- variable:
name: GeoVaLs/fraction_of_ice
maxvalue: 0.0
actions:
- name: set
flag: seaice_check
ignore: rejected observations
- name: reject
- filter: RejectList # no land-ice
where:
- variable:
name: GeoVaLs/vtype
minvalue: 14.5
maxvalue: 15.5
actions:
- name: set
flag: landice_check
ignore: rejected observations
- name: reject
- filter: Difference Check # elevation check
reference: MetaData/stationElevation
value: GeoVaLs/filtered_orography
threshold: 800.
actions:
- name: set
flag: elevation_bkgdiff
ignore: rejected observations
- name: reject
# Add inflate error characterized by a function of elevation difference
- filter: Variable Assignment
assignments:
- name: DerivedMetaData/elevation_diff
type: float
function:
name: ObsFunction/Arithmetic
options:
variables: [MetaData/stationElevation, GeoVaLs/filtered_orography]
coefficients: [1., -1.]
total exponent: 2
total coefficient: 0.0000015625 #1/(800*800)
- filter: Variable Assignment
assignments:
- name: DerivedMetaData/elevation_diff_exp
type: float
function:
name: ObsFunction/Exponential
options:
variables: [DerivedMetaData/elevation_diff]
coeffA: 1.
coeffB: -1.
coeffC: 0.
coeffD: 1.
- filter: Variable Assignment
assignments:
- name: DerivedMetaData/elevation_diff_exp_inv
type: float
function:
name: ObsFunction/Arithmetic
options:
variables: [DerivedMetaData/elevation_diff_exp]
total exponent: -1.
- filter: Perform Action
filter variables:
- name: totalSnowDepth
where:
- variable:
name: ObsValue/totalSnowDepth
minvalue: 0.
action:
name: inflate error
inflation variable: DerivedMetaData/elevation_diff_exp_inv # 2.0
- filter: BlackList
where:
- variable:
name: MetaData/stationIdentification
is_in: {{ get_conventional_rejected_stations(observation_from_jcb) }}
actions:
- name: set
flag: rejectlist
ignore: rejected observations
- name: reject
obs post filters:
- filter: Background Check # gross error check
filter variables:
- name: totalSnowDepth
absolute threshold: 250
bias correction parameter: 1.0
actions:
- name: set
flag: background_check
ignore: rejected observations
- name: reject

Loading