Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JEDI-based ensemble recentering and analysis calculation and native grid increments #72

Open
wants to merge 45 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
da9bb70
Initial commit
DavidNew-NOAA Jan 14, 2025
c69d5e5
Save progress
DavidNew-NOAA Jan 15, 2025
57f550c
Save progress
DavidNew-NOAA Jan 17, 2025
72b40e7
Save progress
DavidNew-NOAA Jan 17, 2025
6aa8ad0
Merge branch 'develop' into feature/calcanl
DavidNew-NOAA Jan 17, 2025
b85a1a7
Merge branch 'develop' into feature/calcanl
DavidNew-NOAA Jan 21, 2025
ed5f552
Update staging and ecen yaml
DavidNew-NOAA Jan 22, 2025
57dfaa6
Add cubed_sphere_grid_ prefix back on in data dirs
DavidNew-NOAA Jan 22, 2025
3bc4995
Missed a file
DavidNew-NOAA Jan 22, 2025
c5c897f
Debug
DavidNew-NOAA Jan 23, 2025
0de4391
Merge branch 'develop' into feature/calcanl
DavidNew-NOAA Jan 23, 2025
6618b37
Save progress
DavidNew-NOAA Jan 27, 2025
e81306a
Merge branch 'develop' into feature/calcanl
DavidNew-NOAA Jan 27, 2025
8e3803e
Update
DavidNew-NOAA Jan 28, 2025
e916fab
Merge branch 'develop' into feature/calcanl
DavidNew-NOAA Jan 28, 2025
b504699
Save progress before redoing some stuff
DavidNew-NOAA Jan 30, 2025
23671f2
Revert some stuff
DavidNew-NOAA Jan 30, 2025
4f27f54
Add convert state algo for analcalc
DavidNew-NOAA Jan 30, 2025
7ee62c9
Add algorithm templates for snow and aero analcalc convertstate
DavidNew-NOAA Jan 30, 2025
71ef27d
Revert unnecessary science change (increment resolution)
DavidNew-NOAA Jan 31, 2025
e83a177
Revert "Revert unnecessary science change (increment resolution)"
DavidNew-NOAA Feb 3, 2025
1bffd7a
Merge branch 'develop' into feature/calcanl
DavidNew-NOAA Feb 4, 2025
407be2b
Some renaming
DavidNew-NOAA Feb 9, 2025
2274a9d
Revert a few things
DavidNew-NOAA Feb 10, 2025
08a8efc
Address reviewer comments
DavidNew-NOAA Feb 12, 2025
921cb9e
Merge branch 'develop' into feature/calcanl
DavidNew-NOAA Feb 12, 2025
2d889b0
Use fv3jedi_add_increments rather than convertstate
DavidNew-NOAA Feb 12, 2025
a65b023
Restore prefix to history files in rundirs
DavidNew-NOAA Feb 14, 2025
b03bb16
Missed some changes in last commit
DavidNew-NOAA Feb 14, 2025
ed44938
More missed stuff
DavidNew-NOAA Feb 14, 2025
c82303a
Create snow and aero variational history prefixes
DavidNew-NOAA Feb 14, 2025
2ab1c92
More revisions
DavidNew-NOAA Feb 14, 2025
3799d54
update client integration test
DavidNew-NOAA Feb 14, 2025
82e3fcd
Debug
DavidNew-NOAA Feb 14, 2025
9d737b9
Add test of ensemble mode
danholdaway Feb 21, 2025
cdb6e00
Update
DavidNew-NOAA Feb 21, 2025
956165b
Merge branch 'feature/create_ensemble_mode' into feature/calcanl
DavidNew-NOAA Feb 21, 2025
42961f3
Revert "Merge branch 'feature/create_ensemble_mode' into feature/calc…
DavidNew-NOAA Feb 24, 2025
2f31dec
Update
DavidNew-NOAA Feb 24, 2025
77cbbe3
Merge branch 'develop' into feature/calcanl
DavidNew-NOAA Feb 24, 2025
38d5768
Update
DavidNew-NOAA Feb 24, 2025
9a55c66
Switich to conventional JEDI addincrement application
DavidNew-NOAA Feb 24, 2025
bd6f0c7
Add missing template
DavidNew-NOAA Feb 25, 2025
63ce5d1
Merge branch 'develop' into feature/calcanl
DavidNew-NOAA Feb 26, 2025
c3979c5
wrong fields metadata
DavidNew-NOAA Feb 26, 2025
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
43 changes: 43 additions & 0 deletions algorithm/aero/aero_addincrement.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
state geometry:
fms initialization:
namelist filename: ./fv3jedi/fmsmpp.nml
field table filename: ./fv3jedi/field_table
akbk: ./fv3jedi/akbk.nc4
layout:
- {{ aero_layout_x }}
- {{ aero_layout_y }}
npx: {{ aero_npx_ges }}
npy: {{ aero_npy_ges }}
npz: {{ aero_npz_ges }}
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml
increment geometry:
fms initialization:
namelist filename: ./fv3jedi/fmsmpp.nml
field table filename: ./fv3jedi/field_table
akbk: ./fv3jedi/akbk.nc4
layout:
- {{ aero_layout_x }}
- {{ aero_layout_y }}
npx: {{ aero_npx_ges }}
npy: {{ aero_npy_ges }}
npz: {{ aero_npz_ges }}
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml
state:
datetime: {{ atmosphere_background_time_iso }}
state variables: {{ analysis_variables }}
filetype: cube sphere history
provider: ufs
datapath: ./
filename: {{ aero_variational_history_prefix }}cubed_sphere_grid_atmf006.nc
increment:
added variables: {{ analysis_variables }}
filetype: fms restart
datapath: ./
filename is datetime templated: true
filename_trcr: '%yyyy%mm%dd.%hh%MM%ss.fv_tracer.res.nc'
prefix: aeroinc
output:
filetype: auxgrid
gridtype: gaussian
datapath: ./
filename: aeroanl.
41 changes: 41 additions & 0 deletions algorithm/atmosphere/atm_addincrement.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
state geometry:
fms initialization:
namelist filename: ./fv3jedi/fmsmpp.nml
field table filename: ./fv3jedi/field_table
akbk: ./fv3jedi/akbk.nc4
layout:
- {{ atmosphere_layout_x }}
- {{ atmosphere_layout_y }}
npx: {{ atmosphere_npx_ges }}
npy: {{ atmosphere_npy_ges }}
npz: {{ atmosphere_npz_ges }}
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml
increment geometry:
fms initialization:
namelist filename: ./fv3jedi/fmsmpp.nml
field table filename: ./fv3jedi/field_table
akbk: ./fv3jedi/akbk.nc4
layout:
- {{ atmosphere_layout_x }}
- {{ atmosphere_layout_y }}
npx: {{ atmosphere_npx_ges }}
npy: {{ atmosphere_npy_ges }}
npz: {{ atmosphere_npz_ges }}
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml
state:
datetime: {{ atmosphere_background_time_iso }}
state variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz]
filetype: cube sphere history
provider: ufs
filename: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf006.nc
datapath: ./
increment:
added variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz]
filetype: fms restart
is restart: false
filename_nonrestart: {{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atminc.nc
datapath: ./
output:
filetype: auxgrid
gridtype: gaussian
filename: atmanl.
73 changes: 73 additions & 0 deletions algorithm/atmosphere/fv3jedi_correction_increment.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
increment variables: [liq_wat,delz,delp,ice_wat,o3mr,sphum,t,ua,va]
deterministic background geometry:
fms initialization:
namelist filename: ./fv3jedi/fmsmpp.nml
field table filename: ./fv3jedi/field_table
akbk: ./fv3jedi/akbk.nc4
layout:
- {{ atmosphere_layout_x }}
- {{ atmosphere_layout_y }}
npx: {{ atmosphere_npx_ges }}
npy: {{ atmosphere_npy_ges }}
npz: {{ atmosphere_npz_ges }}
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml
variational increment geometry:
fms initialization:
namelist filename: ./fv3jedi/fmsmpp.nml
field table filename: ./fv3jedi/field_table
akbk: ./fv3jedi/akbk.nc4
layout:
- {{ atmosphere_layout_x }}
- {{ atmosphere_layout_y }}
npx: {{ atmosphere_npx_ges }}
npy: {{ atmosphere_npy_ges }}
npz: {{ atmosphere_npz_ges }}
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml
ensemble mean analysis geometry:
fms initialization:
namelist filename: ./fv3jedi/fmsmpp.nml
field table filename: ./fv3jedi/field_table
akbk: ./fv3jedi/akbk.nc4
layout:
- {{ atmosphere_layout_x }}
- {{ atmosphere_layout_y }}
npx: {{ atmosphere_npx_anl }}
npy: {{ atmosphere_npy_anl }}
npz: {{ atmosphere_npz_anl }}
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml
correction increment geometry:
fms initialization:
namelist filename: ./fv3jedi/fmsmpp.nml
field table filename: ./fv3jedi/field_table
akbk: ./fv3jedi/akbk.nc4
layout:
- {{ atmosphere_layout_x }}
- {{ atmosphere_layout_y }}
npx: {{ atmosphere_npx_anl }}
npy: {{ atmosphere_npy_anl }}
npz: {{ atmosphere_npz_anl }}
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml
forecast hours:
{% for ihour in range( atmosphere_iau_hours | length ) %}
- datetime: {{ atmosphere_iau_times_iso[ihour] }}
deterministic background:
filetype: cube sphere history
provider: ufs
datapath: ./
filename: {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc
variational increment:
filetype: fms restart
is restart: false
datapath: ./
filename_nonrestart: {{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc
ensemble mean analysis:
filetype: cube sphere history
provider: ufs
datapath: ./
filename: enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atma{{ '%03d' % atmosphere_iau_hours[ihour] }}.ensmean.nc
correction increment:
filetype: cube sphere history
provider: ufs
datapath: ./
filename: enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc
{% endfor %}
47 changes: 47 additions & 0 deletions algorithm/atmosphere/fv3jedi_ensemble_recenter.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
members:
{% for imember in range(atmosphere_number_ensemble_members) %}
{% for ihour in range( atmosphere_iau_hours | length ) %}
- state geometry:
fms initialization:
namelist filename: ./fv3jedi/fmsmpp.nml
field table filename: ./fv3jedi/field_table
akbk: ./fv3jedi/akbk.nc4
layout:
- {{ atmosphere_layout_x }}
- {{ atmosphere_layout_y }}
npx: {{ atmosphere_npx_anl }}
npy: {{ atmosphere_npy_anl }}
npz: {{ atmosphere_npz_anl }}
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml
increment geometry:
fms initialization:
namelist filename: ./fv3jedi/fmsmpp.nml
field table filename: ./fv3jedi/field_table
akbk: ./fv3jedi/akbk.nc4
layout:
- {{ atmosphere_layout_x }}
- {{ atmosphere_layout_y }}
npx: {{ atmosphere_npx_anl }}
npy: {{ atmosphere_npy_anl }}
npz: {{ atmosphere_npz_anl }}
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml
state:
datetime: {{ atmosphere_iau_times_iso[ihour] }}
state variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz]
filetype: cube sphere history
provider: ufs
datapath: ./
filename: enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_catmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc
increment:
added variables: [ua,va,t,sphum,ice_wat,liq_wat,o3mr,delp,delz]
filetype: cube sphere history
provider: ufs
datapath: ./mem{{ '%0{}d'.format(3)|format(imember+1) }}
filename: enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc
output:
filetype: fms restart
is restart: false
datapath: ./mem{{ '%0{}d'.format(3)|format(imember+1) }}
filename_nonrestart: enkf{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_ratmi{{ '%03d' % atmosphere_iau_hours[ihour] }}.nc
{% endfor %}
{% endfor %}
12 changes: 7 additions & 5 deletions algorithm/atmosphere/fv3jedi_fv3inc_lgetkf.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ fv3 increment geometry:
npx: {{ atmosphere_npx_ges }}
npy: {{ atmosphere_npy_ges }}
npz: {{ atmosphere_npz_ges }}
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml
members from template:
template:
background input:
Expand All @@ -53,12 +53,14 @@ members from template:
state variables: *bkgvars
jedi increment input:
filetype: cube sphere history
filename: ./anl/mem%mem%/atminc.%yyyy%mm%dd.%hh%MM%ssz.nc4
provider: ufs
datapath: ./anl/mem%mem%
filename: cubed_sphere_grid_atminc.jedi.nc
fv3 increment output:
filetype: auxgrid
gridtype: gaussian
filename: ./anl/mem%mem%/atminc.
filetype: cube sphere history
provider: ufs
datapath: ./anl/mem%mem%
filename: {{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atminc.nc
pattern: '%mem%'
nmembers: {{ atmosphere_number_ensemble_members }}
zero padding: 3
Expand Down
26 changes: 15 additions & 11 deletions algorithm/atmosphere/fv3jedi_fv3inc_variational.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ jedi increment geometry:
layout:
- {{ atmosphere_layout_x }}
- {{ atmosphere_layout_y }}
npx: {{ atmosphere_npx_anl }}
npy: {{ atmosphere_npy_anl }}
npz: {{ atmosphere_npz_anl }}
npx: {{ atmosphere_npx_ges }}
npy: {{ atmosphere_npy_ges }}
npz: {{ atmosphere_npz_ges }}
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml
fv3 increment geometry:
fms initialization:
Expand All @@ -36,9 +36,9 @@ fv3 increment geometry:
layout:
- {{ atmosphere_layout_x }}
- {{ atmosphere_layout_y }}
npx: {{ atmosphere_npx_anl }}
npy: {{ atmosphere_npy_anl }}
npz: {{ atmosphere_npz_anl }}
npx: {{ atmosphere_npx_ges }}
npy: {{ atmosphere_npy_ges }}
npz: {{ atmosphere_npz_ges }}
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_fv3inc.yaml
members:
- background input:
Expand All @@ -48,16 +48,20 @@ members:
ufs soil nlev: 4
ufs fields split by level: [smc,stc]
datetime: "{{ atmosphere_background_time_iso }}"
filenames: [ {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf006.nc, {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc ]
filenames:
- {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_atmf006.nc
- {{ atmosphere_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc
state variables: *bkgvars
jedi increment input:
filetype: cube sphere history
filename: ./anl/atminc.%yyyy%mm%dd.%hh%MM%ssz.nc4
provider: ufs
datapath: ./anl
filename: cubed_sphere_grid_atminc.jedi.nc
fv3 increment output:
filetype: auxgrid
gridtype: gaussian
filename: ./anl/atminc.
filetype: fms restart
is restart: false
datapath: ./anl
filename_nonrestart: {{ atmosphere_variational_analysis_prefix }}cubed_sphere_grid_atminc.nc

# Optionally test the application
{% if do_testing | default(false) %}
Expand Down
43 changes: 43 additions & 0 deletions algorithm/snow/snow_addincrement.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
state geometry:
fms initialization:
namelist filename: ./fv3jedi/fmsmpp.nml
field table filename: ./fv3jedi/field_table
akbk: ./fv3jedi/akbk.nc4
layout:
- {{ snow_layout_x }}
- {{ snow_layout_y }}
npx: {{ snow_npx_ges }}
npy: {{ snow_npy_ges }}
npz: {{ snow_npz_ges }}
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_history.yaml
increment geometry:
fms initialization:
namelist filename: ./fv3jedi/fmsmpp.nml
field table filename: ./fv3jedi/field_table
akbk: ./fv3jedi/akbk.nc4
layout:
- {{ snow_layout_x }}
- {{ snow_layout_y }}
npx: {{ snow_npx_ges }}
npy: {{ snow_npy_ges }}
npz: {{ snow_npz_ges }}
field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml
state:
datetime: {{ atmosphere_background_time_iso }}
state variables: {{ analysis_variables }}
filetype: cube sphere history
provider: ufs
datapath: ./
filename: {{ snow_variational_history_prefix }}cubed_sphere_grid_sfcf006.nc
increment:
added variables: {{ analysis_variables }}
filetype: fms restart
datapath: ./
filename is datetime templated: true
filename_sfcd: '%yyyy%mm%dd.%hh%MM%ss.sfc_data.nc'
prefix: snowinc
output:
filetype: auxgrid
gridtype: gaussian
datapath: ./
filename: snowanl.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
output:
state component:
filetype: cube sphere history
filename: ./anl/atminc.%yyyy%mm%dd.%hh%MM%ssz.nc4
filename: ./anl/cubed_sphere_grid_atminc.jedi.nc
provider: ufs
fields to write: [ugrd,vgrd,tmp,pressfc,spfh,icmr,clwmr,o3mr]
geometry:
Expand All @@ -12,7 +12,7 @@ geometry:
layout:
- {{atmosphere_layout_x}}
- {{atmosphere_layout_y}}
npx: {{atmosphere_npx_anl}}
npy: {{atmosphere_npy_anl}}
npz: {{atmosphere_npz_anl}}
npx: {{atmosphere_npx_ges}}
npy: {{atmosphere_npy_ges}}
npz: {{atmosphere_npz_ges}}
field metadata override: "{{atmosphere_fv3jedi_files_path}}/fv3jedi_fieldmetadata_history.yaml"
18 changes: 18 additions & 0 deletions model/atmosphere/atmosphere_final_increment_fms_nonrestart.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
output:
state component:
filetype: fms restart
is restart: false
filename_nonrestart: ./anl/cubed_sphere_grid_atminc.jedi.nc
fields to write: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr]
geometry:
fms initialization:
namelist filename: "{{atmosphere_fv3jedi_files_path}}/fmsmpp.nml"
field table filename: "{{atmosphere_fv3jedi_files_path}}/field_table"
akbk: "{{atmosphere_fv3jedi_files_path}}/akbk.nc4"
layout:
- {{atmosphere_layout_x}}
- {{atmosphere_layout_y}}
npx: {{atmosphere_npx_ges}}
npy: {{atmosphere_npy_ges}}
npz: {{atmosphere_npz_ges}}
field metadata override: "{{atmosphere_fv3jedi_files_path}}/fv3jedi_fieldmetadata_fv3inc.yaml"
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
filetype: cube sphere history
provider: ufs
filename: ./anl/mem%{member}%/atminc.%yyyy%mm%dd.%hh%MM%ssz.nc4
filename: ./anl/mem%{member}%/cubed_sphere_grid_atminc.jedi.nc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
filetype: fms restart
is restart: false
datapath: ./anl/mem%{member}%
filename_nonrestart: cubed_sphere_grid_atminc.jedi.nc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
filetype: cube sphere history
provider: ufs
ufs soil nlev: 4
ufs fields split by level: [smc,stc]
filename: ./anl/{{ atmosphere_ensemble_analysis_prefix }}cubed_sphere_grid_atmanl.ensmean.nc
3 changes: 3 additions & 0 deletions test/client_integration/gdas-atmosphere-templates.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@ atmosphere_background_ensemble_path: "DATA/ens/mem%mem%"
atmosphere_variational_history_prefix: "bkg_"
atmosphere_ensemble_history_prefix: "ens_"

atmosphere_variational_analysis_prefix: "anl_"
atmosphere_ensemble_analysis_prefix: "anl_"

atmosphere_background_time_iso: '2024-02-02T00:00:00Z'

# Background error
Expand Down