Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
79375de
step 1. add A
metdyn May 27, 2026
278409b
merged M files
metdyn May 27, 2026
e87abbb
+ self.jedi_rendering.add_key('saber_central_block', self.conf…
metdyn May 28, 2026
3918af3
update new
metdyn May 29, 2026
d83347c
update eda fn from variational ymal input
metdyn May 30, 2026
8372556
add suite_name to utilities/render_jedi_interface_files.py
metdyn Jun 1, 2026
46846b8
swell/suites/eda/flow.cylc
metdyn Jun 2, 2026
ff980e5
Merge branch 'develop' into feature/ygyu/temp_A_mix
metdyn Jun 2, 2026
f3b6fb6
Add:
metdyn Jun 3, 2026
0972762
add `ensmeanvariance_spec` to question defaults
metdyn Jun 4, 2026
02eb8bd
I find there are problems with using
metdyn Jun 8, 2026
359b48b
wip: eorr in diffstates
metdyn Jun 8, 2026
98f6ee6
For configuration/jedi/interfaces/geos_atmosphere/model/two_states.py
metdyn Jun 9, 2026
87a3ca3
checked swell create, filter, eda imem, mean_variance, diffstate
metdyn Jun 9, 2026
9e08792
Merge branch 'develop' into feature/ygyu/temp_A_mix
metdyn Jun 9, 2026
d92c5e5
Add ebkg_time_offset to get ensemble geos experiment
metdyn Jun 9, 2026
aeeb8dd
adjust 3dvar config, e.g., npx, number_of_iteration, etc
metdyn Jun 9, 2026
90726ee
move obs and fv3-jedi files into analysis/mem00x and change correspon…
metdyn Jun 10, 2026
1fa54c8
eda: iter=100; norm_reduction=1.e-8
metdyn Jun 10, 2026
465190f
Add background_error_eda_gsiB.py
metdyn Jun 10, 2026
abe060a
add tasks/clean_eda.py to eda/flow.cylc
metdyn Jun 10, 2026
b1a6075
comment out EvaJediLog and EvaObservations from eda/flow.cylc
metdyn Jun 11, 2026
8a0862c
Merge branch 'develop' into feature/ygyu/PR_EDA
metdyn Jun 11, 2026
1c01bc7
fix issues from pycodestyle_run
metdyn Jun 11, 2026
26337c6
fix some ctest errors
metdyn Jun 11, 2026
9f23c08
1. 'local_background_time_iso'
metdyn Jun 12, 2026
04e5f71
.
metdyn Jun 12, 2026
77f1f67
Merge branch 'feature/ygyu/fix_lensda_background_time' into feature/y…
metdyn Jun 12, 2026
ee7f598
.
metdyn Jun 12, 2026
35e846c
Due to forthcoming implementation changes in swell localensembleda,
metdyn Jun 12, 2026
7cf8272
deleted replica codes and commented lines; fix typos
metdyn Jun 17, 2026
18ef3ad
Merge branch 'develop' into feature/ygyu/PR_EDA
metdyn Jun 25, 2026
e885d36
update with additional_param
metdyn Jun 25, 2026
c244f4e
Merge branch 'develop' into feature/ygyu/PR_EDA
metdyn Jul 14, 2026
39580fb
- rename suite/eda to suite/eda_atmos
metdyn Jul 15, 2026
310c355
- add eda_atmos = QuestionList to suite_config.py
metdyn Jul 15, 2026
8a71c32
add back `air_pressure_levels` to analysis variables in eda_atmos
metdyn Jul 16, 2026
ded0a29
many modifications/corrections from reviewers' suggestions
metdyn Jul 16, 2026
8a90027
Merge branch 'feature/ygyu/PR_EDA' of github.com:GEOS-ESM/swell into …
metdyn Jul 16, 2026
06b7a04
small corrections to codes
metdyn Jul 16, 2026
20e0c79
Add obs_pert_amplitude to config
metdyn Jul 17, 2026
7e1b083
bypass the problem in flow.cylc which reads
metdyn Jul 17, 2026
166aabc
fix pycodestyle issues
metdyn Jul 17, 2026
f76658b
Merge branch 'develop' into feature/ygyu/PR_EDA
metdyn Jul 22, 2026
abae041
fix eda error on suite_name in eva_increment
metdyn Jul 22, 2026
c0c927b
add EDA_start, EDA_end as sync point to workflow
metdyn Jul 23, 2026
eee7851
Merge branch 'develop' into feature/ygyu/PR_EDA
metdyn Aug 4, 2026
6bddb75
add eda_atmos_tier1_fast to qd
metdyn Aug 4, 2026
257a804
fix errors found by pycodestyle
metdyn Aug 4, 2026
1d0c259
delete obsdataout
metdyn Aug 5, 2026
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
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,6 @@ executables:
localensembleda: fv3jedi_letkf.x
ensmeanvariance: fv3jedi_ensmeanvariance.x
obsfilters: test_ObsFilters.x
eda3D: fv3jedi_var.x
eda4D: fv3jedi_var.x
diffstates: fv3jedi_diffstates.x
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# (C) Copyright 2021- United States Government as represented by the Administrator of the
# National Aeronautics and Space Administration. All Rights Reserved.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.

# --------------------------------------------------------------------------------------------------

from collections.abc import Mapping
from swell.configuration.jedi.interfaces.geos_atmosphere.model.shared import \
field_io_names

# --------------------------------------------------------------------------------------------------

state_variables = [
'eastward_wind',
'northward_wind',
'air_temperature',
'air_pressure_at_surface',
'air_pressure_levels',
'water_vapor_mixing_ratio_wrt_moist_air',
'cloud_liquid_ice',
'cloud_liquid_water',
'rain_water',
'snow_water',
'mole_fraction_of_ozone_in_air',
'geopotential_height_times_gravity_at_surface',
'initial_mass_fraction_of_large_scale_cloud_condensate',
'initial_mass_fraction_of_convective_cloud_condensate',
'convective_cloud_area_fraction',
'fraction_of_ocean',
'fraction_of_land',
'isotropic_variance_of_filtered_topography',
'surface_velocity_scale',
'surface_buoyancy_scale',
'planetary_boundary_layer_height',
'surface_exchange_coefficient_for_momentum',
'surface_exchange_coefficient_for_heat',
'surface_exchange_coefficient_for_moisture',
'KCBL_before_moist',
'surface_temp_before_moist',
'lower_index_where_Kh_greater_than_2',
'upper_index_where_Kh_greater_than_2',
'fraction_of_lake',
'fraction_of_ice',
'vtype',
'stype',
'vfrac',
'sheleg',
'skin_temperature_at_surface',
'soilt',
'soilm',
'eastward_wind_at_surface',
'northward_wind_at_surface',
# 'sea_surface_temperature',
# 'mole_fraction_of_carbon_dioxide_in_air',
]

# --------------------------------------------------------------------------------------------------


def background_eda(template_dict: Mapping) -> Mapping:
horizontal_resolution = template_dict['horizontal_resolution']
imem = template_dict['ensemble_imember']

background = {
'datetime': template_dict['local_background_time_iso'],
'filetype': 'cube sphere history',
'provider': 'geos',
'compute edge pressure from surface pressure': True,
'max allowable geometry difference': 1e-3,
'datapath': template_dict['cycle_dir'],
'filenames': [
f'./ebkg/mem{imem:03d}/geos.mem{imem:03d}.%yyyy%mm%dd_%hh%MM%ssz.nc4',
f'./fv3-jedi/bkg/geos.crtmsrf.{horizontal_resolution}.nc4'
],
'state variables': state_variables,
'field io names': field_io_names,
}

return background

# --------------------------------------------------------------------------------------------------
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ def background_ensemble(template_dict: Mapping) -> Mapping:
horizontal_resolution = template_dict['horizontal_resolution']

background_ensemble = {
'date': template_dict['window_begin_iso'],
'date': template_dict['local_background_time_iso'],
'members from template': {
'template': {
'datetime': template_dict['local_background_time_iso'],
Expand All @@ -41,4 +41,7 @@ def background_ensemble(template_dict: Mapping) -> Mapping:

return background_ensemble

# Note: 4D-window
Comment thread
metdyn marked this conversation as resolved.
# 'date': template_dict['window_begin_iso'],

# --------------------------------------------------------------------------------------------------
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# (C) Copyright 2021- United States Government as represented by the Administrator of the
# National Aeronautics and Space Administration. All Rights Reserved.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.

# --------------------------------------------------------------------------------------------------

from collections.abc import Mapping

# --------------------------------------------------------------------------------------------------

state_variables_to_inverse = [
'eastward_wind',
'northward_wind',
'air_temperature',
'air_pressure_at_surface',
'air_pressure_levels',
'water_vapor_mixing_ratio_wrt_moist_air',
'cloud_liquid_ice',
'cloud_liquid_water',
'rain_water',
'snow_water',
'mole_fraction_of_ozone_in_air',
'fraction_of_ocean',
'fraction_of_lake',
'fraction_of_ice',
'geopotential_height_times_gravity_at_surface',
'skin_temperature_at_surface',
]

# --------------------------------------------------------------------------------------------------


def background_error_eda_gsiB(template_dict: Mapping) -> Mapping:
vertical_resolution = template_dict['vertical_resolution']
gsibec_nlons = template_dict['gsibec_nlons']
gsibec_nlats = template_dict['gsibec_nlats']
gsibec_configuration = template_dict['gsibec_configuration']
gsibec_npx_proc = template_dict['gsibec_npx_proc']
gsibec_npy_proc = template_dict['gsibec_npy_proc']

background_error = {
'covariance model': 'SABER',
'covariance type': 'gsi hybrid covariance',
'saber central block': {
'saber block name': 'gsi hybrid covariance',
'read': {
'gsi akbk': f'./fv3-jedi/fv3files/akbk{vertical_resolution}.nc4',
'gsi error covariance file':
f'./fv3-jedi/gsibec/gsi-coeffs-gmao-global-l{vertical_resolution}x{gsibec_nlons}y{gsibec_nlats}.nc4', # noqa
'gsi berror namelist file':
f'./fv3-jedi/gsibec/{gsibec_configuration}_l{vertical_resolution}x{gsibec_nlons}y{gsibec_nlats}.nml', # noqa
'processor layout x direction': gsibec_npx_proc,
'processor layout y direction': gsibec_npy_proc,
'debugging mode': False
}
},
'saber outer blocks': [
{'saber block name': 'interpolation',
'inner geometry': {
'function space': 'StructuredColumns',
'custom grid matching gsi': {
'type': 'latlon',
'lats': int(gsibec_nlats),
'lons': int(gsibec_nlons),
},
'custom partitioner matching gsi': {
'bands': gsibec_npy_proc
},
'halo': 1,
},
'forward interpolator': {
'local interpolator type': 'oops unstructured grid interpolator',
},
'inverse interpolator': {
'local interpolator type': 'oops unstructured grid interpolator',
},
'state variables to inverse': state_variables_to_inverse}
],
'linear variable change': {
'linear variable change name': 'Control2Analysis',
'input variables': state_variables_to_inverse,
'output variables': template_dict['analysis_variables']
}
}

return background_error

# --------------------------------------------------------------------------------------------------
Loading
Loading