diff --git a/algorithm/marine/soca_ensb.yaml.j2 b/algorithm/marine/soca_ensb.yaml.j2 index 794dfadc..9351877c 100644 --- a/algorithm/marine/soca_ensb.yaml.j2 +++ b/algorithm/marine/soca_ensb.yaml.j2 @@ -38,7 +38,7 @@ soca increments: # Could also be states, but they are read as increments pattern: '%mem%' template: date: '{{ marine_window_begin_iso }}' - basename: '{{ enspert_relpath }}/ens/' + basename: '{{ marine_enspert_relpath }}/ens/' ocn_filename: 'ocean.%mem%.nc' ice_filename: 'ice.%mem%.nc' read_from_file: 3 @@ -114,7 +114,7 @@ trajectory: read_from_file: 1 output increment: - datadir: '{{ enspert_relpath }}/' + datadir: '{{ marine_enspert_relpath }}/' date: '{{ marine_window_begin_iso }}' exp: trash type: incr diff --git a/model/marine/marine_background_ensemble.yaml.j2 b/model/marine/marine_background_ensemble.yaml.j2 new file mode 100644 index 00000000..911cf80a --- /dev/null +++ b/model/marine/marine_background_ensemble.yaml.j2 @@ -0,0 +1,10 @@ +members from template: + template: + date: '{{ marine_window_middle_iso }}' + ocn_filename: "ocean.%mem%.nc" + ice_filename: "ice.%mem%.nc" + read_from_file: 1 + basename: {{ marine_enspert_relpath }}/ens/ + state variables: [sea_water_salinity, sea_water_potential_temperature, sea_surface_height_above_geoid, sea_water_cell_thickness, eastward_sea_water_velocity, northward_sea_water_velocity, sea_ice_area_fraction] + pattern: '%mem%' + nmembers: {{ marine_number_ensemble_members }} diff --git a/model/marine/marine_output_increment.yaml.j2 b/model/marine/marine_output_increment.yaml.j2 new file mode 100644 index 00000000..4cae3192 --- /dev/null +++ b/model/marine/marine_output_increment.yaml.j2 @@ -0,0 +1,4 @@ +datadir: letkf_output/ +date: '{{ marine_window_begin_iso }}' +exp: letkf.inc +type: ens diff --git a/model/marine/marine_output_mean_prior.yaml.j2 b/model/marine/marine_output_mean_prior.yaml.j2 new file mode 100644 index 00000000..20fedd4c --- /dev/null +++ b/model/marine/marine_output_mean_prior.yaml.j2 @@ -0,0 +1,4 @@ +datadir: letkf_output/ +date: '{{ marine_window_begin_iso }}' +exp: letkf.mean_prior +type: fc diff --git a/model/marine/marine_output_variance_posterior.yaml.j2 b/model/marine/marine_output_variance_posterior.yaml.j2 new file mode 100644 index 00000000..734344d9 --- /dev/null +++ b/model/marine/marine_output_variance_posterior.yaml.j2 @@ -0,0 +1,4 @@ +datadir: letkf_output/ +date: '{{ marine_window_begin_iso }}' +exp: letkf.var_post +type: an diff --git a/model/marine/marine_output_variance_prior.yaml.j2 b/model/marine/marine_output_variance_prior.yaml.j2 new file mode 100644 index 00000000..de97f917 --- /dev/null +++ b/model/marine/marine_output_variance_prior.yaml.j2 @@ -0,0 +1,4 @@ +datadir: letkf_output/ +date: '{{ marine_window_begin_iso }}' +exp: letkf.var_prior +type: fc diff --git a/model/marine/marine_posterior_output.yaml.j2 b/model/marine/marine_posterior_output.yaml.j2 new file mode 100644 index 00000000..fc823ea8 --- /dev/null +++ b/model/marine/marine_posterior_output.yaml.j2 @@ -0,0 +1,4 @@ +datadir: letkf_output/ +date: '{{ marine_window_begin_iso }}' +exp: letkf +type: ens diff --git a/observations/marine/adt_rads_all.yaml.j2 b/observations/marine/adt_rads_all.yaml.j2 index 3ab01da9..a82f710d 100644 --- a/observations/marine/adt_rads_all.yaml.j2 +++ b/observations/marine/adt_rads_all.yaml.j2 @@ -12,6 +12,11 @@ simulated variables: [absoluteDynamicTopography] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} get values: time interpolation: linear obs operator: @@ -62,7 +67,7 @@ name: MetaData/longitude minvalue: 32 maxvalue: 56 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/icec_amsr2_north.yaml.j2 b/observations/marine/icec_amsr2_north.yaml.j2 index c8d42894..d96cff06 100644 --- a/observations/marine/icec_amsr2_north.yaml.j2 +++ b/observations/marine/icec_amsr2_north.yaml.j2 @@ -12,6 +12,11 @@ simulated variables: [seaIceFraction] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} get values: time interpolation: linear obs operator: @@ -41,15 +46,15 @@ action: name: inflate error inflation factor: 2.0 -{% if letkf_app | default(false) %} - - filter: Gaussian Thinning - horizontal_mesh: 25 #km - use_reduced_horizontal_grid: true - select_median: true - action: - name: reduce obs space -{% endif %} -{% if letkf_app | default(false) %} +#{% if marine_letkf_app | default(false) %} +# - filter: Gaussian Thinning +# horizontal_mesh: 25 #km +# use_reduced_horizontal_grid: true +# select_median: true +# action: +# name: reduce obs space +#{% endif %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/icec_amsr2_south.yaml.j2 b/observations/marine/icec_amsr2_south.yaml.j2 index c8d42894..d96cff06 100644 --- a/observations/marine/icec_amsr2_south.yaml.j2 +++ b/observations/marine/icec_amsr2_south.yaml.j2 @@ -12,6 +12,11 @@ simulated variables: [seaIceFraction] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} get values: time interpolation: linear obs operator: @@ -41,15 +46,15 @@ action: name: inflate error inflation factor: 2.0 -{% if letkf_app | default(false) %} - - filter: Gaussian Thinning - horizontal_mesh: 25 #km - use_reduced_horizontal_grid: true - select_median: true - action: - name: reduce obs space -{% endif %} -{% if letkf_app | default(false) %} +#{% if marine_letkf_app | default(false) %} +# - filter: Gaussian Thinning +# horizontal_mesh: 25 #km +# use_reduced_horizontal_grid: true +# select_median: true +# action: +# name: reduce obs space +#{% endif %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/icec_generic_passive.yaml.j2 b/observations/marine/icec_generic_passive.yaml.j2 index 0cb55181..8526710a 100644 --- a/observations/marine/icec_generic_passive.yaml.j2 +++ b/observations/marine/icec_generic_passive.yaml.j2 @@ -12,6 +12,11 @@ simulated variables: [seaIceFraction] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} get values: time interpolation: linear obs operator: @@ -57,7 +62,7 @@ where: - variable: {name: GeoVaLs/sea_surface_temperature} maxvalue: -4.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/icec_ssmis_f17_l2.yaml.j2 b/observations/marine/icec_ssmis_f17_l2.yaml.j2 index 700fdfb6..ac83a5e8 100644 --- a/observations/marine/icec_ssmis_f17_l2.yaml.j2 +++ b/observations/marine/icec_ssmis_f17_l2.yaml.j2 @@ -12,6 +12,11 @@ simulated variables: [seaIceFraction] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} get values: time interpolation: linear obs operator: @@ -57,7 +62,7 @@ # where: # - variable: {name: GeoVaLs/sea_surface_temperature} # maxvalue: -4.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/insitu_profile_bathy.yaml.j2 b/observations/marine/insitu_profile_bathy.yaml.j2 index ad936b25..fe8bea75 100644 --- a/observations/marine/insitu_profile_bathy.yaml.j2 +++ b/observations/marine/insitu_profile_bathy.yaml.j2 @@ -13,6 +13,11 @@ observed variables: [waterTemperature] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} obs operator: name: InsituTemperature obs error: @@ -28,7 +33,7 @@ - ObsError/waterTemperature coefs: - 1000.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/insitu_profile_glider.yaml.j2 b/observations/marine/insitu_profile_glider.yaml.j2 index 12479989..513af6cc 100644 --- a/observations/marine/insitu_profile_glider.yaml.j2 +++ b/observations/marine/insitu_profile_glider.yaml.j2 @@ -13,6 +13,11 @@ observed variables: [waterTemperature] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} obs operator: name: Composite components: @@ -32,7 +37,7 @@ - ObsError/waterTemperature coefs: - 1000.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/insitu_profile_marinemammal.yaml.j2 b/observations/marine/insitu_profile_marinemammal.yaml.j2 index 12479989..513af6cc 100644 --- a/observations/marine/insitu_profile_marinemammal.yaml.j2 +++ b/observations/marine/insitu_profile_marinemammal.yaml.j2 @@ -13,6 +13,11 @@ observed variables: [waterTemperature] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} obs operator: name: Composite components: @@ -32,7 +37,7 @@ - ObsError/waterTemperature coefs: - 1000.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/insitu_profile_tesac.yaml.j2 b/observations/marine/insitu_profile_tesac.yaml.j2 index a004fefe..9eb69b6b 100644 --- a/observations/marine/insitu_profile_tesac.yaml.j2 +++ b/observations/marine/insitu_profile_tesac.yaml.j2 @@ -13,6 +13,11 @@ observed variables: [waterTemperature] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} obs operator: name: Composite components: @@ -30,7 +35,7 @@ - ObsError/waterTemperature coefs: - 1000.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/insitu_profile_tesac_salinity.yaml.j2 b/observations/marine/insitu_profile_tesac_salinity.yaml.j2 index a92e2bf4..6a0fe755 100644 --- a/observations/marine/insitu_profile_tesac_salinity.yaml.j2 +++ b/observations/marine/insitu_profile_tesac_salinity.yaml.j2 @@ -13,6 +13,11 @@ observed variables: [salinity] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} obs operator: name: VertInterp observation alias file: ./obsop_name_map.yaml @@ -32,7 +37,7 @@ - ObsError/salinity coefs: - 1000.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/insitu_profile_tropical.yaml.j2 b/observations/marine/insitu_profile_tropical.yaml.j2 index 05318743..83c5788b 100644 --- a/observations/marine/insitu_profile_tropical.yaml.j2 +++ b/observations/marine/insitu_profile_tropical.yaml.j2 @@ -13,6 +13,11 @@ observed variables: [waterTemperature] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} obs operator: name: Composite components: @@ -38,7 +43,7 @@ where: - variable: {name: GeoVaLs/sea_surface_temperature} maxvalue: -4.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/insitu_profile_xbtctd.yaml.j2 b/observations/marine/insitu_profile_xbtctd.yaml.j2 index 12479989..513af6cc 100644 --- a/observations/marine/insitu_profile_xbtctd.yaml.j2 +++ b/observations/marine/insitu_profile_xbtctd.yaml.j2 @@ -13,6 +13,11 @@ observed variables: [waterTemperature] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} obs operator: name: Composite components: @@ -32,7 +37,7 @@ - ObsError/waterTemperature coefs: - 1000.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/insitu_salt_profile_argo.yaml.j2 b/observations/marine/insitu_salt_profile_argo.yaml.j2 index 91a76c65..c11b6248 100644 --- a/observations/marine/insitu_salt_profile_argo.yaml.j2 +++ b/observations/marine/insitu_salt_profile_argo.yaml.j2 @@ -18,6 +18,11 @@ observed variables: [salinity] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} obs operator: name: VertInterp observation alias file: ./obsop_name_map.yaml @@ -186,7 +191,7 @@ - ObsError/salinity coefs: - 100.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/insitu_surface_altkob.yaml.j2 b/observations/marine/insitu_surface_altkob.yaml.j2 index 2192f995..aadad95f 100644 --- a/observations/marine/insitu_surface_altkob.yaml.j2 +++ b/observations/marine/insitu_surface_altkob.yaml.j2 @@ -13,6 +13,11 @@ observed variables: [seaSurfaceTemperature] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} obs operator: name: Identity observation alias file: obsop_name_map.yaml @@ -29,7 +34,7 @@ - ObsError/seaSurfaceTemperature coefs: - 1000.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/insitu_surface_dbuoyb_drifter.yaml.j2 b/observations/marine/insitu_surface_dbuoyb_drifter.yaml.j2 index c79cd5b6..b99ea1d0 100644 --- a/observations/marine/insitu_surface_dbuoyb_drifter.yaml.j2 +++ b/observations/marine/insitu_surface_dbuoyb_drifter.yaml.j2 @@ -13,6 +13,11 @@ observed variables: [seaSurfaceTemperature] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} get values: time interpolation: linear obs operator: @@ -45,7 +50,7 @@ - variable: {name: GeoVaLs/sea_surface_temperature} minvalue: -1.2 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/insitu_surface_trkob.yaml.j2 b/observations/marine/insitu_surface_trkob.yaml.j2 index 6dea2041..c4b8e8b5 100644 --- a/observations/marine/insitu_surface_trkob.yaml.j2 +++ b/observations/marine/insitu_surface_trkob.yaml.j2 @@ -13,6 +13,11 @@ observed variables: [seaSurfaceTemperature] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} obs operator: name: Identity observation alias file: ./obsop_name_map.yaml @@ -29,7 +34,7 @@ - ObsError/seaSurfaceTemperature coefs: - 1000.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/insitu_surface_trkob_salinity.yaml.j2 b/observations/marine/insitu_surface_trkob_salinity.yaml.j2 index 80ca4e85..97f4c58f 100644 --- a/observations/marine/insitu_surface_trkob_salinity.yaml.j2 +++ b/observations/marine/insitu_surface_trkob_salinity.yaml.j2 @@ -11,6 +11,11 @@ obsfile: "{{marine_obsdataout_path}}/{{marine_obsdataout_prefix}}{{observation_from_jcb}}{{marine_obsdataout_suffix}}" simulated variables: [seaSurfaceSalinity] observed variables: [seaSurfaceSalinity] +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} get values: time interpolation: linear obs operator: @@ -29,7 +34,7 @@ - ObsError/seaSurfaceSalinity coefs: - 1000.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/insitu_temp_profile_argo.yaml.j2 b/observations/marine/insitu_temp_profile_argo.yaml.j2 index b193a594..b2c0572e 100644 --- a/observations/marine/insitu_temp_profile_argo.yaml.j2 +++ b/observations/marine/insitu_temp_profile_argo.yaml.j2 @@ -18,6 +18,11 @@ observed variables: [waterTemperature] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} obs operator: name: InsituTemperature obs error: @@ -182,7 +187,7 @@ - ObsError/waterTemperature coefs: - 100.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/insitu_temp_surface_drifter.yaml.j2 b/observations/marine/insitu_temp_surface_drifter.yaml.j2 index 2b2830fe..648ee2ed 100644 --- a/observations/marine/insitu_temp_surface_drifter.yaml.j2 +++ b/observations/marine/insitu_temp_surface_drifter.yaml.j2 @@ -13,6 +13,11 @@ observed variables: [seaSurfaceTemperature] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} get values: time interpolation: linear obs operator: @@ -49,7 +54,7 @@ - filter: Background Check absolute threshold: 5.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/sss_smap_l2.yaml.j2 b/observations/marine/sss_smap_l2.yaml.j2 index aeaa3451..a075b554 100644 --- a/observations/marine/sss_smap_l2.yaml.j2 +++ b/observations/marine/sss_smap_l2.yaml.j2 @@ -12,6 +12,11 @@ simulated variables: [seaSurfaceSalinity] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} get values: time interpolation: linear obs operator: @@ -44,7 +49,7 @@ where: - variable: {name: GeoVaLs/distance_from_coast} minvalue: 100e3 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/sss_smos_l2.yaml.j2 b/observations/marine/sss_smos_l2.yaml.j2 index aeaa3451..a075b554 100644 --- a/observations/marine/sss_smos_l2.yaml.j2 +++ b/observations/marine/sss_smos_l2.yaml.j2 @@ -12,6 +12,11 @@ simulated variables: [seaSurfaceSalinity] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} get values: time interpolation: linear obs operator: @@ -44,7 +49,7 @@ where: - variable: {name: GeoVaLs/distance_from_coast} minvalue: 100e3 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/sst_generic.yaml.j2 b/observations/marine/sst_generic.yaml.j2 index b9fd51d5..d887bf22 100644 --- a/observations/marine/sst_generic.yaml.j2 +++ b/observations/marine/sst_generic.yaml.j2 @@ -12,6 +12,11 @@ simulated variables: [seaSurfaceTemperature] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} get values: time interpolation: linear obs operator: @@ -62,7 +67,7 @@ - filter: Background Check absolute threshold: 5.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3 diff --git a/observations/marine/sst_generic_geo.yaml.j2 b/observations/marine/sst_generic_geo.yaml.j2 index 75b148e0..ffe625a4 100644 --- a/observations/marine/sst_generic_geo.yaml.j2 +++ b/observations/marine/sst_generic_geo.yaml.j2 @@ -12,6 +12,11 @@ simulated variables: [seaSurfaceTemperature] io pool: max pool size: 1 +{% if marine_letkf_app | default(false) %} + distribution: + name: Halo + halo size: {{ marine_letkf_dist_halo_size }} +{% endif %} get values: time interpolation: linear obs operator: @@ -68,7 +73,7 @@ - filter: Background Check absolute threshold: 5.0 -{% if letkf_app | default(false) %} +{% if marine_letkf_app | default(false) %} obs localizations: - localization method: Rossby base value: 100.0e3