Skip to content

Commit

Permalink
add testing for marine
Browse files Browse the repository at this point in the history
  • Loading branch information
danholdaway committed May 29, 2024
1 parent c4721c3 commit bfaeed0
Show file tree
Hide file tree
Showing 21 changed files with 769 additions and 0 deletions.
7 changes: 7 additions & 0 deletions model/marine/marine_3dfgat_outer_loop_1.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
- ninner: {{marine_ninner_1}}
gradient norm reduction: {{marine_grad_red_1}}
geometry:
mom6_input_nml: mom_input.nml
fields metadata: {{marine_soca_files_path}}/fields_metadata.yaml
diagnostics:
departures: ombg
7 changes: 7 additions & 0 deletions model/marine/marine_3dvar_outer_loop_1.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
- ninner: {{marine_ninner_1}}
gradient norm reduction: {{marine_grad_red_1}}
geometry:
mom6_input_nml: mom_input.nml
fields metadata: {{marine_soca_files_path}}/fields_metadata.yaml
diagnostics:
departures: ombg
6 changes: 6 additions & 0 deletions model/marine/marine_background.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
read_from_file: 1
basename: {{ marine_background_path}}
ocn_filename: MOM.res.nc
ice_filename: cice.res.nc
date: "{{ marine_background_time }}"
state variables: [cicen, hicen, hsnon, socn, tocn, uocn, vocn, ssh, hocn, mld, layer_depth]
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
covariance model: hybrid
components:
- covariance:
covariance model: SABER
saber central block:
saber block name: EXPLICIT_DIFFUSION
active variables: [tocn, socn, ssh, cicen]
geometry:
mom6_input_nml: mom_input.nml
fields metadata: ./fields_metadata.yaml
group mapping:
- name: ocean
variables:
- tocn
- socn
- ssh
- name: ice
variables:
- cicen
read:
groups:
- name: ocean
horizontal:
filename: hz_ocean.nc
vertical:
filename: vt_ocean.nc
- name: ice
horizontal:
filename: hz_ice.nc

saber outer blocks:
- saber block name: StdDev
read:
model file:
date: '{{marine_window_middle}}'
basename: ./
ocn_filename: 'ocn.bkgerr_stddev.incr.{{marine_window_middle}}.nc'
ice_filename: 'ice.bkgerr_stddev.incr.{{marine_window_middle}}.nc'
read_from_file: 3

linear variable change:
input variables: [cicen, hicen, hsnon, socn, tocn, uocn, vocn, ssh]
output variables: [cicen, hicen, hsnon, socn, tocn, uocn, vocn, ssh]
linear variable changes:
- linear variable change name: BalanceSOCA

weight:
value: 1.00

- covariance:
covariance model: ensemble
members from template:
template:
read_from_file: 1
date: '{{marine_window_middle}}'
basename: ./static_ens/
ocn_filename: 'ocn.pert.steric.%mem%.nc'
ice_filename: 'ice.%mem%.nc'
state variables: [tocn, socn, ssh, uocn, vocn, cicen, hicen, hsnon]
pattern: '%mem%'
nmembers: {{marine_number_ensemble_members}}
localization:
localization method: SABER
saber central block:
saber block name: EXPLICIT_DIFFUSION
active variables: [tocn, socn, ssh]
geometry:
mom6_input_nml: mom_input.nml
fields metadata: ./fields_metadata.yaml
group mapping:
- name: ocean
variables: [tocn, socn, ssh, uocn, vocn]
- name: ice
variables: [cicen, hicen, hsnon]
read:
groups:
- name: ocean
multivariate strategy: duplicated
horizontal:
filename: hz_ocean.nc
vertical:
strategy: duplicated
- name: ice
horizontal:
filename: hz_ice.nc

weight:
read_from_file: 3
basename: ./
ocn_filename: 'ocn.ens_weights.incr.{{marine_window_middle}}.nc'
ice_filename: 'ice.ens_weights.incr.{{marine_window_middle}}.nc'
date: '{{marine_window_middle}}'
42 changes: 42 additions & 0 deletions model/marine/marine_background_error_static_diffusion.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
covariance model: SABER
saber central block:
saber block name: EXPLICIT_DIFFUSION
active variables: [tocn, socn, ssh, cicen]
geometry:
mom6_input_nml: mom_input.nml
fields metadata: ./fields_metadata.yaml
group mapping:
- name: ocean
variables:
- tocn
- socn
- ssh
- name: ice
variables:
- cicen
read:
groups:
- name: ocean
horizontal:
filename: hz_ocean.nc
vertical:
filename: vt_ocean.nc
- name: ice
horizontal:
filename: hz_ice.nc

saber outer blocks:
- saber block name: StdDev
read:
model file:
date: '{{marine_stddev_time}}'
basename: ./
ocn_filename: 'ocn.bkgerr_stddev.incr.{{marine_stddev_time}}.nc'
ice_filename: 'ice.bkgerr_stddev.incr.{{marine_stddev_time}}.nc'
read_from_file: 3

linear variable change:
input variables: [cicen, hicen, hsnon, socn, tocn, uocn, vocn, ssh]
output variables: [cicen, hicen, hsnon, socn, tocn, uocn, vocn, ssh]
linear variable changes:
- linear variable change name: BalanceSOCA
9 changes: 9 additions & 0 deletions model/marine/marine_final_increment.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
output:
state component:
datadir: {{marine_final_increment_dir}}
date: '{{marine_window_begin}}'
exp: {{marine_final_increment_exp}}
type: incr
geometry:
mom6_input_nml: mom_input.nml
fields metadata: {{marine_soca_files_path}}/fields_metadata.yaml
Empty file.
2 changes: 2 additions & 0 deletions model/marine/marine_geometry_background.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
mom6_input_nml: mom_input.nml
fields metadata: {{marine_soca_files_path}}/fields_metadata.yaml
10 changes: 10 additions & 0 deletions model/marine/marine_model_pseudo.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: PseudoModel
tstep: {{marine_forecast_timestep}}
states:
{% for marine_pseudo_model_state in marine_pseudo_model_states %}
- date: '{{ marine_pseudo_model_state.date }}'
basename: '{{ marine_pseudo_model_state.basename }}'
ocn_filename: '{{ marine_pseudo_model_state.ocn_filename }}'
ice_filename: '{{ marine_pseudo_model_state.ice_filename }}'
read_from_file: {{ marine_pseudo_model_state.read_from_file }}
{% endfor %}
4 changes: 4 additions & 0 deletions model/marine/marine_output.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
datadir: {{marine_output_dir}}
exp: {{marine_output_exp}}
type: an
frequency: {{marine_output_freq}}
52 changes: 52 additions & 0 deletions observations/marine/adt_rads_all.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
- obs space:
name: {{observation_from_jcb}}
obsdatain:
engine:
type: H5File
obsfile: "{{marine_obsdatain_path}}/{{marine_obsdatain_prefix}}{{observation_from_jcb}}{{marine_obsdatain_suffix}}"
obsdataout:
engine:
type: H5File
obsfile: "{{marine_obsdataout_path}}/{{marine_obsdataout_prefix}}{{observation_from_jcb}}{{marine_obsdataout_suffix}}"
simulated variables: [absoluteDynamicTopography]
io pool:
max pool size: 1
get values:
time interpolation: linear
obs operator:
name: ADT
obs error:
covariance model: diagonal
obs filters:
- filter: Domain Check
where:
- variable: {name: GeoVaLs/sea_area_fraction}
minvalue: 0.9
- filter: Domain Check
where:
- variable: { name: GeoVaLs/sea_surface_temperature}
minvalue: 5.0
- filter: Background Check
absolute threshold: 1.0
- filter: Domain Check
where:
- variable: {name: GeoVaLs/sea_floor_depth_below_sea_surface}
minvalue: 500
- filter: Perform Action
action:
name: assign error
error function:
name: ObsFunction/LinearCombination
options:
variables: [GeoVaLs/mesoscale_representation_error,
ObsError/absoluteDynamicTopography]
coefs: [0.1,
1.0]
- filter: Domain Check
where:
- variable: { name: GeoVaLs/sea_ice_area_fraction}
maxvalue: 0.00001
- filter: Domain Check
where:
- variable: {name: GeoVaLs/distance_from_coast}
minvalue: 100e3
45 changes: 45 additions & 0 deletions observations/marine/icec_amsr2_north.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
- obs space:
name: {{observation_from_jcb}}
obsdatain:
engine:
type: H5File
obsfile: "{{marine_obsdatain_path}}/{{marine_obsdatain_prefix}}{{observation_from_jcb}}{{marine_obsdatain_suffix}}"
obsdataout:
engine:
type: H5File
obsfile: "{{marine_obsdataout_path}}/{{marine_obsdataout_prefix}}{{observation_from_jcb}}{{marine_obsdataout_suffix}}"
simulated variables: [seaIceFraction]
io pool:
max pool size: 1
get values:
time interpolation: linear
obs operator:
name: Identity
observation alias file: obsop_name_map.yaml
obs error:
covariance model: diagonal
obs filters:
- filter: Domain Check
where:
- variable: {name: GeoVaLs/sea_area_fraction}
minvalue: 0.9
- filter: Bounds Check
minvalue: 0.0
maxvalue: 1.0
#- filter: Background Check
# threshold: 5.0
- filter: Domain Check
where:
- variable: { name: GeoVaLs/sea_surface_temperature}
maxvalue: 2.0
- filter: Domain Check
where:
- variable: { name: GeoVaLs/sea_surface_temperature}
maxvalue: 0.0
action:
name: inflate error
inflation factor: 2.0
- filter: Domain Check
where:
- variable: {name: GeoVaLs/distance_from_coast}
minvalue: 100e3
45 changes: 45 additions & 0 deletions observations/marine/icec_amsr2_south.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
- obs space:
name: {{observation_from_jcb}}
obsdatain:
engine:
type: H5File
obsfile: "{{marine_obsdatain_path}}/{{marine_obsdatain_prefix}}{{observation_from_jcb}}{{marine_obsdatain_suffix}}"
obsdataout:
engine:
type: H5File
obsfile: "{{marine_obsdataout_path}}/{{marine_obsdataout_prefix}}{{observation_from_jcb}}{{marine_obsdataout_suffix}}"
simulated variables: [seaIceFraction]
io pool:
max pool size: 1
get values:
time interpolation: linear
obs operator:
name: Identity
observation alias file: obsop_name_map.yaml
obs error:
covariance model: diagonal
obs filters:
- filter: Domain Check
where:
- variable: {name: GeoVaLs/sea_area_fraction}
minvalue: 0.9
- filter: Bounds Check
minvalue: 0.0
maxvalue: 1.0
#- filter: Background Check
# threshold: 5.0
- filter: Domain Check
where:
- variable: { name: GeoVaLs/sea_surface_temperature}
maxvalue: 2.0
- filter: Domain Check
where:
- variable: { name: GeoVaLs/sea_surface_temperature}
maxvalue: 0.0
action:
name: inflate error
inflation factor: 2.0
- filter: Domain Check
where:
- variable: {name: GeoVaLs/distance_from_coast}
minvalue: 100e3
56 changes: 56 additions & 0 deletions observations/marine/sst_abi_g16_l3c.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
- obs space:
name: {{observation_from_jcb}}
obsdatain:
engine:
type: H5File
obsfile: "{{marine_obsdatain_path}}/{{marine_obsdatain_prefix}}{{observation_from_jcb}}{{marine_obsdatain_suffix}}"
obsdataout:
engine:
type: H5File
obsfile: "{{marine_obsdataout_path}}/{{marine_obsdataout_prefix}}{{observation_from_jcb}}{{marine_obsdataout_suffix}}"
simulated variables: [seaSurfaceTemperature]
io pool:
max pool size: 1
get values:
time interpolation: linear
obs operator:
name: Identity
observation alias file: obsop_name_map.yaml
obs error:
covariance model: diagonal
obs filters:
- filter: Domain Check
where:
- variable: {name: GeoVaLs/sea_area_fraction}
minvalue: 0.9
- filter: Bounds Check
minvalue: 1.0
maxvalue: 41.0
- filter: Background Check
absolute threshold: 5.0
- filter: Domain Check
where:
- variable: {name: ObsError/seaSurfaceTemperature}
minvalue: 1.0e-8
- filter: Domain Check
where:
- variable: { name: GeoVaLs/sea_ice_area_fraction}
maxvalue: 1.0e-5
- filter: Domain Check
where:
- variable: {name: GeoVaLs/sea_surface_temperature}
minvalue: -1.0
#- filter: Domain Check
# where:
# - variable: {name: GeoVaLs/distance_from_coast}
# minvalue: 100e3
- filter: Perform Action
action:
name: assign error
error function:
name: ObsFunction/LinearCombination
options:
variables:
- ObsError/seaSurfaceTemperature
coefs:
- 0.05
Loading

0 comments on commit bfaeed0

Please sign in to comment.