Skip to content

Commit

Permalink
letkf bug
Browse files Browse the repository at this point in the history
  • Loading branch information
danholdaway committed Jun 4, 2024
1 parent d73e94f commit 16e358c
Show file tree
Hide file tree
Showing 9 changed files with 81 additions and 53 deletions.
28 changes: 28 additions & 0 deletions algorithm/marine/socaincr2mom6.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
geometry:
mom6_input_nml: mom_input.nml
fields metadata: ./fields_metadata.yaml

date: '{{marine_window_begin}}'

layers variable: [hocn]

increment variables: [tocn, socn, uocn, vocn, ssh]

vertical geometry:
date: '{{marine_window_begin}}'
basename: ./INPUT/
ocn_filename: MOM.res.nc
read_from_file: 1

soca increment:
date: '{{marine_window_begin}}'
basename: ./Data/
ocn_filename: 'ocn.3dvarfgat_pseudo.incr.{{ATM_WINDOW_MIDDLE}}.nc'
read_from_file: 1

output increment:
datadir: ./
date: '{{marine_window_begin}}'
exp: mom6_iau
type: incr
output file: inc.nc
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ components:
ice_filename: 'ice.%mem%.nc'
state variables: [tocn, socn, ssh, uocn, vocn, cicen, hicen, hsnon]
pattern: '%mem%'
nmembers: {{marine_number_ensemble_members}}
nmembers: '{{marine_number_ensemble_members}}'
localization:
localization method: SABER
saber central block:
Expand Down
16 changes: 8 additions & 8 deletions observations/atmosphere-lgetkf/amsua_n19.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
obsdatain:
engine:
type: H5File
obsfile: "{{atm_obsdatain_path}}/{{atm_obsdatain_prefix}}{{observation_from_jcb}}{{atm_obsdatain_suffix}}"
obsfile: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}{{atmosphere_obsdatain_suffix}}"
obsdataout:
engine:
type: H5File
obsfile: "{{atm_obsdataout_path}}/{{atm_obsdataout_prefix}}{{observation_from_jcb}}{{atm_obsdataout_suffix}}"
obsfile: "{{atmosphere_obsdataout_path}}/{{atmosphere_obsdataout_prefix}}{{observation_from_jcb}}{{atmosphere_obsdataout_suffix}}"
io pool:
max pool size: 1
simulated variables: [brightnessTemperature]
Expand All @@ -40,14 +40,14 @@
# Observation Bias Correction (VarBC)
# -----------------------------------
obs bias:
input file: "{{atm_obsbiasin_path}}/{{atm_obsbiasin_prefix}}{{observation_from_jcb}}{{atm_obsbiasin_suffix}}"
output file: "{{atm_obsbiasout_path}}/{{atm_obsbiasout_prefix}}{{observation_from_jcb}}{{atm_obsbiasout_suffix}}"
input file: "{{atmosphere_obsbiasin_path}}/{{atmosphere_obsbiasin_prefix}}{{observation_from_jcb}}{{atmosphere_obsbiasin_suffix}}"
output file: "{{atmosphere_obsbiasout_path}}/{{atmosphere_obsbiasout_prefix}}{{observation_from_jcb}}{{atmosphere_obsbiasout_suffix}}"
variational bc:
predictors:
- name: constant
- name: lapse_rate
order: 2
tlapse: &{{observation_from_jcb}}_tlapse "{{atm_obsbiasin_path}}/{{atm_obstlapsein_prefix}}{{observation_from_jcb}}{{atm_obstlapsein_suffix}}"
tlapse: &{{observation_from_jcb}}_tlapse "{{atmosphere_obsbiasin_path}}/{{atmosphere_obstlapsein_prefix}}{{observation_from_jcb}}{{atmosphere_obstlapsein_suffix}}"
- name: lapse_rate
tlapse: *{{observation_from_jcb}}_tlapse
- name: emissivity
Expand All @@ -64,11 +64,11 @@
step size: 1.0e-4
largest analysis variance: 10000.0
prior:
input file: "{{atm_obsbiasin_path}}/{{atm_obsbiascovin_prefix}}{{observation_from_jcb}}{{atm_obsbiascovin_suffix}}"
input file: "{{atmosphere_obsbiasin_path}}/{{atmosphere_obsbiascovin_prefix}}{{observation_from_jcb}}{{atmosphere_obsbiascovin_suffix}}"
inflation:
ratio: 1.1
ratio for small dataset: 2.0
output file: "{{atm_obsbiasout_path}}/{{atm_obsbiascovout_prefix}}{{observation_from_jcb}}{{atm_obsbiascovout_suffix}}"
output file: "{{atmosphere_obsbiasout_path}}/{{atmosphere_obsbiascovout_prefix}}{{observation_from_jcb}}{{atmosphere_obsbiascovout_suffix}}"

# Observation Filters (QC)
# ------------------------
Expand Down Expand Up @@ -101,7 +101,7 @@
# GeoVaLs for Driving Observation Operators (testing mode)
# --------------------------------------------------------
geovals:
filename: "{{atm_obsdatain_path}}/{{atm_obsdatain_prefix}}{{observation_from_jcb}}_geoval{{atm_obsdatain_suffix}}"
filename: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}_geoval{{atmosphere_obsdatain_suffix}}"

# Passed benchmark for UFO testing
# --------------------------------
Expand Down
8 changes: 4 additions & 4 deletions observations/atmosphere-lgetkf/ascatw.ascat_metop-b.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
obsdatain:
engine:
type: H5File
obsfile: "{{atm_obsdatain_path}}/{{atm_obsdatain_prefix}}{{observation_from_jcb}}{{atm_obsdatain_suffix}}"
obsfile: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}{{atmosphere_obsdatain_suffix}}"
obsdataout:
engine:
type: H5File
obsfile: "{{atm_obsdataout_path}}/{{atm_obsdataout_prefix}}{{observation_from_jcb}}{{atm_obsdataout_suffix}}"
obsfile: "{{atmosphere_obsdataout_path}}/{{atmosphere_obsdataout_prefix}}{{observation_from_jcb}}{{atmosphere_obsdataout_suffix}}"
io pool:
max pool size: 1
simulated variables: [windEastward, windNorthward]
Expand Down Expand Up @@ -276,7 +276,7 @@
# this inflation to take place both nvqc must be .true. AND ibeta must be >0, see:
# https://github.com/NOAA-EMC/GSI/blob/14ae595af1b03471287d322596d35c0665336e95/src/gsi/setupw.f90#L1229
# GSI settings must have ibeta>0 for satwinds, but not for scatwinds.
#
#
# If the ibeta settings for scatwinds were to change while nvqc remained .true., we would extend YAML to
# an additional filter that inflates final ob-errors across-the-board by 1/0.8 = 1.25. NOTE: the nvqc setting
# is defaulted to .false. in GSI code, but is overridden in global operational configuration. See:
Expand Down Expand Up @@ -316,7 +316,7 @@
# GeoVaLs for Driving Observation Operators (testing mode)
# --------------------------------------------------------
geovals:
filename: "{{atm_obsdatain_path}}/{{atm_obsdatain_prefix}}{{observation_from_jcb}}_geoval{{atm_obsdatain_suffix}}"
filename: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}_geoval{{atmosphere_obsdatain_suffix}}"

# Passed benchmark for UFO testing
# --------------------------------
Expand Down
22 changes: 11 additions & 11 deletions observations/atmosphere-lgetkf/conv_ps.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
obsdatain:
engine:
type: H5File
obsfile: "{{atm_obsdatain_path}}/{{atm_obsdatain_prefix}}{{observation_from_jcb}}{{atm_obsdatain_suffix}}"
obsfile: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}{{atmosphere_obsdatain_suffix}}"
obsdataout:
engine:
type: H5File
obsfile: "{{atm_obsdataout_path}}/{{atm_obsdataout_prefix}}{{observation_from_jcb}}{{atm_obsdataout_suffix}}"
obsfile: "{{atmosphere_obsdataout_path}}/{{atmosphere_obsdataout_prefix}}{{observation_from_jcb}}{{atmosphere_obsdataout_suffix}}"
io pool:
max pool size: 1
simulated variables: [stationPressure]
Expand All @@ -40,7 +40,7 @@
# Observation Prior Filters (QC)
# ------------------------------
obs prior filters:
# Initial Error Assignments for SFC Observations
# Initial Error Assignments for SFC Observations
- filter: Perform Action
filter variables:
- name: stationPressure
Expand Down Expand Up @@ -73,7 +73,7 @@
name: ObsValue/stationPressure
xvals: [85000, 80000, 75000, 70000, 65000, 60000, 55000]
errors: [120, 140, 140, 140, 140, 140, 1.0e+11]
# Initial Error Assignments for SFCSHIP Observations
# Initial Error Assignments for SFCSHIP Observations
- filter: Perform Action
filter variables:
- name: stationPressure
Expand Down Expand Up @@ -124,7 +124,7 @@
type: float
source variable: ObsErrorData/stationPressure

# Set observation quality-realted variables
# Set observation quality-realted variables
# Create PreQC group variable (pqm in GSI read_prepbufr)
- filter: Variable Assignment
assignments:
Expand Down Expand Up @@ -203,7 +203,7 @@
# - variable:
# name: ObsType/stationPressure
# is_in: 183
## Reject surface pressure below 500 hPa
## Reject surface pressure below 500 hPa
#- filter: Bounds Check
# filter variables:
# - name: stationPressure
Expand Down Expand Up @@ -241,7 +241,7 @@
variable: stationPressure

# Reduce effective observation error based on obs type and subtype
# In this case: reduce effective obs error for buoy
# In this case: reduce effective obs error for buoy
- filter: Perform Action
filter variables:
- name: stationPressure
Expand All @@ -256,7 +256,7 @@
name: inflate error
inflation factor: 0.7

# Calculate obs error inflation factors for large discrepancies between model and observations
# Calculate obs error inflation factors for large discrepancies between model and observations
- filter: Variable Assignment
assignments:
- name: ObsErrorFactorSfcPressure/stationPressure
Expand Down Expand Up @@ -344,7 +344,7 @@
inflation variable:
name: ObsErrorFactorDuplicateCheck/stationPressure

# Reject data based on PreUseFlag (usage in GSI)
# Reject data based on PreUseFlag (usage in GSI)
- filter: Perform Action
filter variables:
- name: stationPressure
Expand All @@ -353,7 +353,7 @@
is_not_in: 0, 1
action:
name: reject
# End of Filters
# End of Filters

# Observation Localizations (LocalEnsembleDA)
# -------------------------------------------
Expand All @@ -366,7 +366,7 @@
# GeoVaLs for Driving Observation Operators (testing mode)
# --------------------------------------------------------
geovals:
filename: "{{atm_obsdatain_path}}/{{atm_obsdatain_prefix}}{{observation_from_jcb}}_geoval{{atm_obsdatain_suffix}}"
filename: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}_geoval{{atmosphere_obsdatain_suffix}}"

# Passed benchmark for UFO testing
# --------------------------------
Expand Down
10 changes: 5 additions & 5 deletions observations/atmosphere-lgetkf/gnssro.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@
obsdatain:
engine:
type: H5File
obsfile: "{{atm_obsdatain_path}}/{{atm_obsdatain_prefix}}{{observation_from_jcb}}{{atm_obsdatain_suffix}}"
obsfile: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}{{atmosphere_obsdatain_suffix}}"
# obsgrouping:
# group variables: [ "sequenceNumber" ]
# sort variable: "impactHeightRO"
# sort order: "ascending"
obsdataout:
engine:
type: H5File
obsfile: "{{atm_obsdataout_path}}/{{atm_obsdataout_prefix}}{{observation_from_jcb}}{{atm_obsdataout_suffix}}"
obsfile: "{{atmosphere_obsdataout_path}}/{{atmosphere_obsdataout_prefix}}{{observation_from_jcb}}{{atmosphere_obsdataout_suffix}}"
simulated variables: [bendingAngle]

# Observation Operator
Expand All @@ -35,7 +35,7 @@
# ------------------------
obs filters:
# Apply gross check using pccf
# Step 0-A: Create Diagnostic Flags
# Step 0-A: Create Diagnostic Flags
# Diagnostic flag for pccf
- filter: Create Diagnostic Flags
filter variables:
Expand Down Expand Up @@ -126,7 +126,7 @@
minvalue: 8000.1
action:
name: reject
#4. assign obs error
#4. assign obs error
- filter: ROobserror
filter variables:
- name: bendingAngle
Expand Down Expand Up @@ -160,7 +160,7 @@
# GeoVaLs for Driving Observation Operators (testing mode)
# --------------------------------------------------------
geovals:
filename: "{{atm_obsdatain_path}}/{{atm_obsdatain_prefix}}{{observation_from_jcb}}_geoval{{atm_obsdatain_suffix}}"
filename: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}_geoval{{atmosphere_obsdatain_suffix}}"

# Passed benchmark for UFO testing
# --------------------------------
Expand Down
24 changes: 12 additions & 12 deletions observations/atmosphere-lgetkf/satwnd.abi_goes-16.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
obsdatain:
engine:
type: H5File
obsfile: "{{atm_obsdatain_path}}/{{atm_obsdatain_prefix}}{{observation_from_jcb}}{{atm_obsdatain_suffix}}"
obsfile: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}{{atmosphere_obsdatain_suffix}}"
obsdataout:
engine:
type: H5File
obsfile: "{{atm_obsdataout_path}}/{{atm_obsdataout_prefix}}{{observation_from_jcb}}{{atm_obsdataout_suffix}}"
obsfile: "{{atmosphere_obsdataout_path}}/{{atmosphere_obsdataout_prefix}}{{observation_from_jcb}}{{atmosphere_obsdataout_suffix}}"
io pool:
max pool size: 1
simulated variables: [windEastward, windNorthward]
Expand All @@ -40,7 +40,7 @@
Transform: SurfaceWindScalingPressure
SkipWhenNoObs: false

# Calculate error inflation factor for duplicate observations
# Calculate error inflation factor for duplicate observations
#- filter: Variable Assignment
# assignments:
# - name: ObsErrorFactorDuplicateCheck/windEastward
Expand Down Expand Up @@ -191,7 +191,7 @@
name: reject

# GSI read routine QC (part-1)
# Exclude Type 251 (VIS) --- obs tossed without passing to setup routine
# Exclude Type 251 (VIS) --- obs tossed without passing to setup routine
- filter: Perform Action
filter variables:
- name: windEastward
Expand Down Expand Up @@ -227,7 +227,7 @@
action:
name: reject

# Exclude data over non-water surface type where latitude > 20N for Type 240 (IRSW) and Type 245 (IRLW) --- obs tossed and not passed to setup routine
# Exclude data over non-water surface type where latitude > 20N for Type 240 (IRSW) and Type 245 (IRLW) --- obs tossed and not passed to setup routine
# Notes: This check was missing, so added (eliu)
# Replace land_type_index_NPOSS with water_area_fraction (eliu)
- filter: Bounds Check
Expand Down Expand Up @@ -374,7 +374,7 @@

# GSI setupw routine QC
# Reject any ob Type [240–260] when pressure greater than 950 mb.
# CLEARED: minvalue/maxvalue are >=/<=, not >/<, so editing range by 1 Pa
# CLEARED: minvalue/maxvalue are >=/<=, not >/<, so editing range by 1 Pa
- filter: Bounds Check
filter variables:
- name: windEastward
Expand Down Expand Up @@ -420,8 +420,8 @@

# Multiple satellite platforms, reject when pressure is more than 50 mb above tropopause.
# CLEARED: minvalue is rejecting <, not <= as per a Perform Action, so threshold is unchanged
# Notes (eliu): This tropopause check reject too many obs; probably due to tropopause pressure estimation
# Turn this check off for now.
# Notes (eliu): This tropopause check reject too many obs; probably due to tropopause pressure estimation
# Turn this check off for now.
# Need to check if troposphere pressure was implemented correctly in fv3-jed
- filter: Difference Check
filter variables:
Expand All @@ -433,7 +433,7 @@
action:
name: reject

# GOES (247) reject any observation with a /=0 surface type (non-water
# GOES (247) reject any observation with a /=0 surface type (non-water
# surface) within 110 hPa of the surface pressure (as part of the LNVD # check).
# NOT EXPLICITLY CLEARED: No obs in this range in file, so 0 Bounds Check rejects (which is correct) but essentially untested
# Notes (eliu): Replace land_type_index_NPOESS with land_area_fraction.
Expand Down Expand Up @@ -570,7 +570,7 @@
# configuration, see: https://github.com/NOAA-EMC/global-workflow/blob/d5ae3328fa4041b177357b1133f6b92e81c859d7/scripts/exglobal_atmos_analysis.sh#L750
# This setting activates Line 1229 of setupw.f90 to scale ratio_errors by 0.8, which is applied in
# the denominator of the final ob-error, so 1/0.8 = 1.25 factor of ob-error inflation.
#
#
# If this nvqc functionality were to be switched off (i.e. if variational qc were to be turned off),
# you would want to remove this last inflation filter.
#- filter: Perform Action
Expand All @@ -591,7 +591,7 @@
# action:
# name: inflate error
# inflation factor: 1.25
# End of Filters
# End of Filters

# Observation Localizations (LocalEnsembleDA)
# -------------------------------------------
Expand All @@ -604,7 +604,7 @@
# GeoVaLs for Driving Observation Operators (testing mode)
# --------------------------------------------------------
geovals:
filename: "{{atm_obsdatain_path}}/{{atm_obsdatain_prefix}}{{observation_from_jcb}}_geoval{{atm_obsdatain_suffix}}"
filename: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}_geoval{{atmosphere_obsdatain_suffix}}"

# Passed benchmark for UFO testing
# --------------------------------
Expand Down
Loading

0 comments on commit 16e358c

Please sign in to comment.