Skip to content

Commit

Permalink
Merge branch 'develop' into feature/update_soil
Browse files Browse the repository at this point in the history
  • Loading branch information
RussTreadon-NOAA authored Dec 17, 2024
2 parents 0e34a65 + 8ee71d2 commit 6fab6e5
Show file tree
Hide file tree
Showing 37 changed files with 935 additions and 30 deletions.
2 changes: 1 addition & 1 deletion algorithm/marine/soca_diagb.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ number of halo points: 4
number of neighbors: 16

simple smoothing:
horizontal iterations: 10
horizontal iterations: 100
vertical iterations: 1

# TODO(G): Too slow for the below scale
Expand Down
2 changes: 1 addition & 1 deletion algorithm/marine/soca_parameters_diffusion_hz.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ background error:
calibration:
normalization:
method: randomization
iterations: 10000
iterations: 1000

groups:
- horizontal:
Expand Down
4 changes: 2 additions & 2 deletions algorithm/marine/soca_setcorscales.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ corr variables: [sea_surface_height_above_geoid]
scales:
vert layers: 5 # in units of layer
sea_surface_height_above_geoid:
rossby mult: 1.00
min grid mult: 2.0
rossby mult: 2.00
min grid mult: 6.0

rh output:
datadir: ./
Expand Down
11 changes: 10 additions & 1 deletion algorithm/marine/socaincr2mom6.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,16 @@ date: '{{ marine_window_begin }}'

layers variable: [sea_water_cell_thickness]

increment variables: [sea_water_potential_temperature, sea_water_salinity, eastward_sea_water_velocity, northward_sea_water_velocity, sea_surface_height_above_geoid]
increment variables:
- sea_water_potential_temperature
- sea_water_salinity
#- eastward_sea_water_velocity
#- northward_sea_water_velocity
- sea_surface_height_above_geoid # Not used in MOM6 iau

set increment variables to zero:
- eastward_sea_water_velocity
- northward_sea_water_velocity

vertical geometry:
date: '{{ marine_window_begin }}'
Expand Down
50 changes: 50 additions & 0 deletions algorithm/obstats/aero/viirs_n20_template.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
- obs space:
name: aod
obsdatain:
engine:
type: H5File
obsfile: {{ aero_obsdatain_path }}/diag_{{ obspace }}_{{ stat_current_cycle_YMDH }}.nc4
simulated variables: {{ aero_obsdatatin_simulated_variables }}
observed variables: {{ aero_obsdatain_observed_variables }}
variables: {{ aero_variables }}
groups to process: {{ aero_file_groups }}
qc groups: {{ aero_file_qc_groups }}
statistics to compute: ['mean', 'count', 'RMS']
output file: "{{ obspace }}_{{ stat_current_cycle_YMDH }}_output_aod.nc"
domains to process:
- domain:
name: "nowhere"
first mask variable: latitude
first mask range: [-180,-100]
- domain:
name: "SH"
first mask variable: latitude
first mask range: [-90,0]
- domain:
name: "NH"
first mask variable: latitude
first mask range: [0,90]
- domain:
name: "CONUS"
first mask variable: latitude
first mask range: [25,49]
second mask variable: longitude
second mask range: [-125,-66]
- domain:
name: "Europe"
first mask variable: latitude
first mask range: [35,70]
second mask variable: longitude
second mask range: [-11,38]
- domain:
name: "Africa"
first mask variable: latitude
first mask range: [-35,37]
second mask variable: longitude
second mask range: [-17,52]
- domain:
name: "Asia"
first mask variable: latitude
first mask range: [0,70]
second mask variable: longitude
second mask range: [38, 180]
50 changes: 50 additions & 0 deletions algorithm/obstats/aero/viirs_npp_template.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
- obs space:
name: aod
obsdatain:
engine:
type: H5File
obsfile: {{ aero_obsdatain_path }}/diag_{{ obspace }}_{{ stat_current_cycle_YMDH }}.nc4
simulated variables: {{ aero_obsdatatin_simulated_variables }}
observed variables: {{ aero_obsdatain_observed_variables }}
variables: {{ aero_variables }}
groups to process: {{ aero_file_groups }}
qc groups: {{ aero_file_qc_groups }}
statistics to compute: ['mean', 'count', 'RMS']
output file: "{{ obspace }}_{{ stat_current_cycle_YMDH }}_output_aod.nc"
domains to process:
- domain:
name: "nowhere"
first mask variable: latitude
first mask range: [-180,-100]
- domain:
name: "SH"
first mask variable: latitude
first mask range: [-90,0]
- domain:
name: "NH"
first mask variable: latitude
first mask range: [0,90]
- domain:
name: "CONUS"
first mask variable: latitude
first mask range: [25,49]
second mask variable: longitude
second mask range: [-125,-66]
- domain:
name: "Europe"
first mask variable: latitude
first mask range: [35,70]
second mask variable: longitude
second mask range: [-11,38]
- domain:
name: "Africa"
first mask variable: latitude
first mask range: [-35,37]
second mask variable: longitude
second mask range: [-17,52]
- domain:
name: "Asia"
first mask variable: latitude
first mask range: [0,70]
second mask variable: longitude
second mask range: [38, 180]
26 changes: 26 additions & 0 deletions algorithm/snow/fv3jedi_snow_ensmean.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
geometry:
{% filter indent(width=2) %}
{% set geometry_background_file = geometry_background_file|default(model_component ~ 'geometry_background', true) ~ '.yaml.j2' %}
{% include geometry_background_file %}
{% endfilter %}
mean output:
filetype: fms restart
datapath: ./bkg/ensmean
filename_core: fv_core.res.nc
filename_trcr: fv_tracer.res.nc
filename_sfcd: sfc_data.nc
filename_sfcw: fv_srf_wnd.res.nc
filename_cplr: coupler.res
ensemble:
members from template:
template:
datetime: '{{ snow_background_time_iso }}'
filetype: fms restart
state variables: [snodl,vtype,slmsk,orog_filt,stc,sheleg]
datapath: ./bkg/mem%mem%/
filename_sfcd: '{{ snow_background_time_fv3 }}.sfc_data.nc'
filename_cplr: '{{ snow_background_time_fv3 }}.coupler.res'
filename_orog: '{{ snow_orog_prefix }}_oro_data.nc'
pattern: '%mem%'
nmembers: {{ snow_number_ensemble_members }}
zero padding: 3
16 changes: 16 additions & 0 deletions algorithm/snow/snow_obs_staging.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
mkdir:
- '{{snow_obsdatain_path}}'
copy:
{% for observation_from_jcb in observations %}
{% if use_observer(observation_from_jcb) %}
{% if not observation_from_jcb == 'ims_snow' %}
# skip if ims_snow since it is special
{% if observation_from_jcb == 'snocvr_snow' %}
# snocvr_snow is a .nc file, TODO rename this eventually?
- ['{{snow_obsdataroot_path}}/{{snow_obsdatain_prefix}}{{observation_from_jcb}}.nc4', '{{snow_obsdatain_path}}']
{% else %}
- ['{{snow_obsdataroot_path}}/{{snow_obsdatain_prefix}}{{observation_from_jcb}}{{snow_obsdatain_suffix}}', '{{snow_obsdatain_path}}']
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
6 changes: 3 additions & 3 deletions model/aero/aero_final_increment_cubed_sphere.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ geometry:
layout:
- {{aero_layout_x}}
- {{aero_layout_y}}
npx: {{aero_npx_anl}}
npy: {{aero_npy_anl}}
npz: {{aero_npz_anl}}
npx: {{aero_npx_ges}}
npy: {{aero_npy_ges}}
npz: {{aero_npz_ges}}
field metadata override: "{{aero_fv3jedi_files_path}}/fv3jedi_fieldmetadata_restart.yaml"
output:
state component:
Expand Down
16 changes: 15 additions & 1 deletion model/marine/marine_background.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,18 @@ basename: {{ marine_background_path}}
ocn_filename: MOM.res.nc
ice_filename: cice.res.nc
date: "{{ marine_background_time }}"
state variables: [sea_ice_area_fraction, sea_ice_thickness, sea_ice_snow_thickness, sea_water_salinity, sea_water_potential_temperature, eastward_sea_water_velocity, northward_sea_water_velocity, sea_surface_height_above_geoid, sea_water_cell_thickness, ocean_mixed_layer_thickness, sea_water_depth]
state variables:
- sea_ice_area_fraction
- sea_ice_thickness
- sea_ice_snow_thickness
- snow_ice_surface_temperature
- air_temperature
- bulk_ice_salinity
- sea_water_salinity
- sea_water_potential_temperature
#- eastward_sea_water_velocity
#- northward_sea_water_velocity
- sea_surface_height_above_geoid
- sea_water_cell_thickness
- ocean_mixed_layer_thickness
- sea_water_depth
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,22 @@ components:
saber block name: diffusion
read:
groups:
- variables: [tocn, socn, ssh]
- variables:
- sea_water_potential_temperature
- sea_water_salinity
- sea_surface_height_above_geoid
- sea_ice_area_fraction
horizontal:
filepath: ./staticb/hz_ocean
vertical:
levels: {{marine_vt_levels}}
filepath: ./staticb/vt_ocean
- variables: [cicen]
horizontal:
filepath: ./staticb/hz_ice
# TODO(G): OK to not use what's below but it will need
# to be fixed when we add ice thickness and
# snow depth
# - variables: [sea_ice_area_fraction]
# horizontal:
# filepath: ./staticb/hz_ice

saber outer blocks:
- saber block name: StdDev
Expand All @@ -25,10 +32,25 @@ components:
ocn_filename: 'ocn.bkgerr_stddev.nc'
ice_filename: 'ice.bkgerr_stddev.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]
input variables:
- sea_ice_area_fraction
- sea_ice_thickness
- sea_ice_snow_thickness
- sea_water_salinity
- sea_water_potential_temperature
#- eastward_sea_water_velocity
#- northward_sea_water_velocity
- sea_surface_height_above_geoid
output variables:
- sea_ice_area_fraction
- sea_ice_thickness
- sea_ice_snow_thickness
- sea_water_salinity
- sea_water_potential_temperature
#- eastward_sea_water_velocity
#- northward_sea_water_velocity
- sea_surface_height_above_geoid
linear variable changes:
- linear variable change name: BalanceSOCA
weight:
Expand All @@ -43,7 +65,15 @@ components:
basename: ../ensdata/
ocn_filename: 'ocn.pert.steric.%mem%.nc'
ice_filename: 'ens/ice.%mem%.nc'
state variables: [tocn, socn, ssh, uocn, vocn, cicen, hicen, hsnon]
state variables:
- sea_ice_area_fraction
- sea_ice_thickness
- sea_ice_snow_thickness
- sea_water_salinity
- sea_water_potential_temperature
#- eastward_sea_water_velocity
#- northward_sea_water_velocity
- sea_surface_height_above_geoid
pattern: '%mem%'
nmembers: '{{marine_number_ensemble_members}}'
localization:
Expand All @@ -52,15 +82,16 @@ components:
saber block name: diffusion
read:
groups:
- variables: [tocn, socn, ssh]
multivariate strategy: duplicated
- variables:
- sea_water_potential_temperature
- sea_water_salinity
- sea_surface_height_above_geoid
- sea_ice_area_fraction
horizontal:
filepath: ./staticb/hz_ocean
vertical:
strategy: duplicated
- variables: [cicen]
horizontal:
filepath: ./staticb/hz_ice
levels: {{marine_vt_levels}}
filepath: ./staticb/vt_ocean
weight:
read_from_file: 3
basename: ./
Expand Down
26 changes: 22 additions & 4 deletions model/marine/marine_background_error_static_diffusion.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -30,24 +30,42 @@ saber outer blocks:
ice_filename: 'ice.bkgerr_stddev.nc'
read_from_file: 3

#- saber block name: MLBalance
# geometry:
# mom6_input_nml: mom_input.nml
# fields metadata: ./fields_metadata.yaml
# ML Balances:
# arctic:
# ffnn:
# inputSize: 7
# outputSize: 1
# hiddenSize: 2
# load model: /work/noaa/da/gvernier/ai/runs/arctic.pt
# antarctic:
# ffnn:
# inputSize: 7
# outputSize: 1
# hiddenSize: 2
# load model: /work/noaa/da/gvernier/ai/runs/antarctic.pt

linear variable change:
input variables:
- sea_ice_area_fraction
- sea_ice_thickness
- sea_ice_snow_thickness
- sea_water_salinity
- sea_water_potential_temperature
- eastward_sea_water_velocity
- northward_sea_water_velocity
#- eastward_sea_water_velocity
#- northward_sea_water_velocity
- sea_surface_height_above_geoid
output variables:
- sea_ice_area_fraction
- sea_ice_thickness
- sea_ice_snow_thickness
- sea_water_salinity
- sea_water_potential_temperature
- eastward_sea_water_velocity
- northward_sea_water_velocity
#- eastward_sea_water_velocity
#- northward_sea_water_velocity
- sea_surface_height_above_geoid
linear variable changes:
- linear variable change name: BalanceSOCA
25 changes: 25 additions & 0 deletions model/snow/snow_3dvar_outer_loop_1.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
- ninner: 50
gradient norm reduction: 1e-10
test: on
geometry:
fms initialization:
namelist filename: {{ snow_fv3jedi_files_path }}/fmsmpp.nml
field table filename: {{ snow_fv3jedi_files_path }}/field_table
akbk: {{ snow_fv3jedi_files_path }}/akbk.nc4
layout:
- {{ snow_layout_x }}
- {{ snow_layout_y }}
npx: {{ snow_npx_anl }}
npy: {{ snow_npy_anl }}
npz: {{ snow_npz_anl }}
field metadata override: {{ snow_fv3jedi_files_path }}/fv3jedi_fieldmetadata_restart.yaml
time invariant fields:
state fields:
datetime: '{{ snow_background_time_iso }}'
filetype: fms restart
skip coupler file: true
state variables: [orog_filt]
datapath: {{ snow_orog_files_path }}/
filename_orog: {{ snow_orog_prefix }}_oro_data.nc
diagnostics:
departures: bkgmob
Loading

0 comments on commit 6fab6e5

Please sign in to comment.