diff --git a/parm/jcb-gdas b/parm/jcb-gdas index c9f2d7983..accd7a5bf 160000 --- a/parm/jcb-gdas +++ b/parm/jcb-gdas @@ -1 +1 @@ -Subproject commit c9f2d79833de83f342055140cac679e6e7ec9ff7 +Subproject commit accd7a5bf96524430d8d03a4b2d707eca4c48c13 diff --git a/parm/snow/letkfoi/apply_incr_nml.j2 b/parm/snow/apply_incr_nml.j2 similarity index 100% rename from parm/snow/letkfoi/apply_incr_nml.j2 rename to parm/snow/apply_incr_nml.j2 diff --git a/parm/snow/letkfoi/ens_apply_incr_nml.j2 b/parm/snow/ens_apply_incr_nml.j2 similarity index 74% rename from parm/snow/letkfoi/ens_apply_incr_nml.j2 rename to parm/snow/ens_apply_incr_nml.j2 index edd4b116f..4a85b8416 100644 --- a/parm/snow/letkfoi/ens_apply_incr_nml.j2 +++ b/parm/snow/ens_apply_incr_nml.j2 @@ -3,8 +3,8 @@ hour_str = "{{ current_cycle | strftime('%H') }}", res = {{ CASE_ENS[1:] }}, frac_grid = .true., - rst_path = "{{ DATAROOT }}/anl/mem{{ MYMEM }}", - inc_path = "{{ DATAROOT }}/inc/ensmean", + rst_path = "{{ DATA }}/anl/mem{{ MYMEM }}", + inc_path = "{{ DATA }}/anl", orog_path = "{{ HOMEgfs }}/fix/orog/{{ CASE_ENS }}", otype = "{{ CASE_ENS }}.mx{{ OCNRES }}_oro_data" / diff --git a/parm/snow/jcb-base.yaml.j2 b/parm/snow/jcb-base.yaml.j2 index 672b1bf8f..69e097d74 100644 --- a/parm/snow/jcb-base.yaml.j2 +++ b/parm/snow/jcb-base.yaml.j2 @@ -3,15 +3,13 @@ algorithm_path: "{{PARMgfs}}/gdas/jcb-algorithms" app_path_algorithm: "{{PARMgfs}}/gdas/jcb-gdas/algorithm/snow" app_path_model: "{{PARMgfs}}/gdas/jcb-gdas/model/snow" -app_path_observations: "{{PARMgfs}}/gdas/jcb-gdas/observations/atmosphere" -app_path_observation_chronicle: "{{PARMgfs}}/gdas/jcb-gdas/observation_chronicle/atmosphere" +app_path_observations: "{{PARMgfs}}/gdas/jcb-gdas/observations/snow" +app_path_observation_chronicle: "{{PARMgfs}}/gdas/jcb-gdas/observation_chronicle/snow" # Places where we deviate from the generic file name of a yaml # ------------------------------------------------------------ -#final_increment_file: final_increment_gaussian -final_increment_file: final_increment_cubed_sphere -output_ensemble_increments_file: output_ensemble_increments_gaussian +final_increment_file: snow_final_increment_fms model_file: model_pseudo initial_condition_file: background # Initial conditions for 4D apps is background @@ -23,60 +21,52 @@ window_length: "{{ SNOW_WINDOW_LENGTH }}" bound_to_include: begin # Default background time is for 3D applications -{% if DOIAU %} -{% set bkg_time_iso = SNOW_WINDOW_BEGIN | to_isotime %} -{% set bkg_time_fv3 = SNOW_WINDOW_BEGIN | to_fv3time %} -{% else %} {% set bkg_time_iso = current_cycle | to_isotime %} {% set bkg_time_fv3 = current_cycle | to_fv3time %} -{% endif %} snow_background_time_iso: "{{ bkg_time_iso }}" +snow_background_time_fv3: "{{ bkg_time_fv3 }}" snow_increment_time_iso: "{{ bkg_time_iso }}" snow_increment_time_fv3: "{{ bkg_time_fv3 }}" # Analysis standard things # ------------------------ -analysis_variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] +analysis_variables: [totalSnowDepth] minimizer: DRPCG final_diagnostics_departures: anlmob final_prints_frequency: PT3H cost_type: 3D-Var -number_of_outer_loops: 2 +number_of_outer_loops: 1 # Model things # ------------ # Geometry -layout_x: {{ layout_x | default(1, true) }} -layout_y: {{ layout_y | default(1, true) }} -npx_ges: {{ npx_ges | default(49, true) }} -npy_ges: {{ npy_ges | default(49, true) }} -npz_ges: {{ npz_ges | default(127, true) }} -npx_anl: {{ npx_anl | default(49, true) }} -npy_anl: {{ npy_anl | default(49, true) }} -npz_anl: {{ npz_anl | default(127, true) }} - -fv3jedi_files_path: ./fv3jedi # Ideally this would be {{DATA}}/fv3jedi but FMS +snow_layout_x: {{ layout_x | default(1, true) }} +snow_layout_y: {{ layout_y | default(1, true) }} +snow_npx_ges: {{ npx_ges | default(49, true) }} +snow_npy_ges: {{ npy_ges | default(49, true) }} +snow_npz_ges: {{ npz_ges | default(127, true) }} +snow_npx_anl: {{ npx_ges | default(49, true) }} +snow_npy_anl: {{ npy_ges | default(49, true) }} +snow_npz_anl: {{ npz_ges | default(127, true) }} + +snow_fv3jedi_files_path: ./fv3jedi # Ideally this would be {{DATA}}/fv3jedi but FMS +snow_orog_files_path: "{{ FIXgfs }}/orog/{{ CASE }}" +snow_orog_prefix: "{{ CASE }}.mx{{ OCNRES }}" # Background -background_path: ./bkg +snow_background_path: {{snow_bkg_path}} background_ensemble_path: ./ens/mem%mem% # Background error -bump_data_directory: "{{ DATA }}/berror" -gsibec_path: "{{ DATA }}/berror" +snow_bump_data_directory: "{{ DATA }}/berror" number_ensemble_members: {{ NMEM_ENS | default(1, true) }} -layout_gsib_x: {{ layout_gsib_x | default(1, true) }} -layout_gsib_y: {{ layout_gsib_y | default(1, true) }} -background_error_file: "{{BERROR_YAML}}" +snow_background_error_file: "{{BERROR_YAML}}" # Forecasting -forecast_length: "{{ ATM_WINDOW_LENGTH }}" -forecast_timestep: "{{ BKG_TSTEP }}" - -# Write final increment on Guassian grid in variational -final_increment_prefix: "./anl/atminc." +snow_forecast_length: "{{ SNOW_WINDOW_LENGTH }}" +snow_forecast_timestep: "{{ BKG_TSTEP }}" # Observation things @@ -86,29 +76,32 @@ observations: all_observations crtm_coefficient_path: "{{ DATA }}/crtm/" # Naming conventions for observational files -atm_obsdatain_path: "{{atm_obsdatain_path}}" -atm_obsdatain_prefix: "{{OPREFIX}}" -atm_obsdatain_suffix: ".tm00.nc" +snow_obsdataroot_path: "{{COMIN_OBS}}" +snow_obsdatain_path: "{{snow_obsdatain_path}}" +snow_obsdatain_prefix: "{{OPREFIX}}" +snow_obsdatain_suffix: ".tm00.bufr_d" -atm_obsdataout_path: "{{atm_obsdataout_path}}" -atm_obsdataout_prefix: diag_ -atm_obsdataout_suffix: "_{{ current_cycle | to_YMDH }}.nc" +snow_obsdataout_path: "{{snow_obsdataout_path}}" +snow_obsdataout_prefix: diag_ +snow_obsdataout_suffix: "_{{ current_cycle | to_YMDH }}.nc" # Naming conventions for bias correction files -atm_obsbiasin_path: "{{DATA}}/obs/" -atm_obsbiasin_prefix: "{{GPREFIX}}" -atm_obsbiasin_suffix: ".satbias.nc" -atm_obstlapsein_prefix: "{{GPREFIX}}" -atm_obstlapsein_suffix: ".tlapse.txt" -atm_obsbiascovin_prefix: "{{GPREFIX}}" -atm_obsbiascovin_suffix: ".satbias_cov.nc" - -atm_obsbiasout_path: "{{DATA}}/bc/" -atm_obsbiasout_prefix: "{{APREFIX}}" -atm_obsbiasout_suffix: ".satbias.nc" -atm_obsbiascovout_prefix: "{{APREFIX}}" -atm_obsbiascovout_suffix: ".satbias_cov.nc" - +snow_obsbiasin_path: "{{DATA}}/obs/" +snow_obsbiasin_prefix: "{{GPREFIX}}" +snow_obsbiasin_suffix: ".satbias.nc" +snow_obstlapsein_prefix: "{{GPREFIX}}" +snow_obstlapsein_suffix: ".tlapse.txt" +snow_obsbiascovin_prefix: "{{GPREFIX}}" +snow_obsbiascovin_suffix: ".satbias_cov.nc" + +snow_obsbiasout_path: "{{DATA}}/bc/" +snow_obsbiasout_prefix: "{{APREFIX}}" +snow_obsbiasout_suffix: ".satbias.nc" +snow_obsbiascovout_prefix: "{{APREFIX}}" +snow_obsbiascovout_suffix: ".satbias_cov.nc" + +# Ensemble mean things +snow_number_ensemble_members: {{NMEM_ENS}} # Local Ensemble DA (LETKF) # ------------------------- @@ -133,5 +126,5 @@ driver_save_posterior_mean_increment: false driver_save_posterior_ensemble_increments: true # Diagnostics -ensemble_increment_prefix: "./anl/mem%{member}%/atminc." -#posterior_output_gaussian: "./mem%{member}%/atmanl." +ensemble_increment_prefix: "./anl/mem%{member}%/snowinc." +#posterior_output_gaussian: "./mem%{member}%/snowanl." diff --git a/parm/snow/jcb-prototype_2dvar.yaml.j2 b/parm/snow/jcb-prototype_2dvar.yaml.j2 new file mode 100644 index 000000000..5fb43600c --- /dev/null +++ b/parm/snow/jcb-prototype_2dvar.yaml.j2 @@ -0,0 +1,12 @@ +# Algorithm +# --------- +algorithm: 3dvar + +# Observation things +# ------------------ +observations: +# - adpsfc_snow + - ims_snow +# - ghcn_snow + - sfcsno + - snocvr_snow diff --git a/parm/snow/letkfoi/letkfoi.yaml.j2 b/parm/snow/letkfoi/letkfoi.yaml.j2 deleted file mode 100644 index e96425581..000000000 --- a/parm/snow/letkfoi/letkfoi.yaml.j2 +++ /dev/null @@ -1,66 +0,0 @@ -geometry: - fms initialization: - namelist filename: ./fv3jedi/fmsmpp.nml - field table filename: ./fv3jedi/field_table - akbk: ./fv3jedi/akbk.nc4 - layout: - - {{ layout_x }} - - {{ layout_y }} - npx: {{ npx_ges }} - npy: {{ npy_ges }} - npz: {{ npz_ges }} - field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml - time invariant fields: - state fields: - datetime: '{{ SNOW_WINDOW_BEGIN | to_isotime }}' - filetype: fms restart - skip coupler file: true - state variables: [orog_filt] - datapath: {{ FIXgfs }}/orog/{{ CASE }}/ - filename_orog: {{ CASE }}.mx{{ OCNRES }}_oro_data.nc - -time window: - begin: '{{ SNOW_WINDOW_BEGIN | to_isotime }}' - length: {{ SNOW_WINDOW_LENGTH }} - bound to include: begin - -background: - datetime: '{{ current_cycle | to_isotime }}' - members from template: - template: - datetime: '{{ current_cycle | to_isotime }}' - filetype: fms restart - state variables: [snodl,vtype,slmsk] - datapath: ./bkg/mem%mem%/RESTART - filename_sfcd: '{{ current_cycle | to_fv3time }}.sfc_data.nc' - filename_cplr: '{{ current_cycle | to_fv3time }}.coupler.res' - pattern: '%mem%' - nmembers: 2 - zero padding: 3 - -observations: -{% filter indent(width=2) %} -{% set snow_obs_list = 'OBS_LIST' | getenv('snow/obs/lists/obs_list.yaml.j2') %} -{% include snow_obs_list %} -{% endfilter %} - -driver: - save posterior mean: false - save posterior ensemble: false - save posterior mean increment: true - -local ensemble DA: - solver: LETKF - inflation: - rtps: 0.0 - rtpp: 0.0 - mult: 1.0 - -output increment: - datapath: ./anl - prefix: snowinc - filetype: fms restart - filename_sfcd: '{{ current_cycle | to_fv3time }}.sfc_data.nc' - filename_cplr: '{{ current_cycle | to_fv3time }}.coupler.res' - state variables: [snodl,vtype,slmsk] - diff --git a/parm/snow/obs/config/adpsfc_snow.yaml.j2 b/parm/snow/obs/config/adpsfc_snow.yaml.j2 deleted file mode 100644 index 1ddcb7e21..000000000 --- a/parm/snow/obs/config/adpsfc_snow.yaml.j2 +++ /dev/null @@ -1,109 +0,0 @@ -- obs space: - name: adpsfc_snow - distribution: - name: Halo - halo size: 250e3 - obsdatain: - engine: - type: H5File - obsfile: './obs/{{ OPREFIX }}adpsfc_snow.nc4' - obsdataout: - engine: - type: H5File - obsfile: './diags/diag_adpsfc_snow.nc4' - simulated variables: [totalSnowDepth] - obs operator: - name: Composite - components: - - name: Identity - - name: BackgroundErrorIdentity - obs error: - covariance model: diagonal - obs localizations: - - localization method: Horizontal SOAR - lengthscale: 250e3 - soar horizontal decay: 0.000021 - max nobs: 50 - - localization method: Vertical Brasnett - vertical lengthscale: 700 - obs pre filters: - - filter: Perform Action - filter variables: - - name: totalSnowDepth - action: - name: assign error - error parameter: 40.0 - - filter: Variable Assignment - assignments: - - name: GrossErrorProbability/totalSnowDepth - type: float - value: 0.02 - - name: BkgError/totalSnowDepth_background_error - type: float - value: 30.0 - obs prior filters: - - filter: Bounds Check - filter variables: - - name: totalSnowDepth - minvalue: 0.0 - maxvalue: 2000.0 - action: - name: reject - - filter: Domain Check - where: - - variable: - name: MetaData/stationElevation - minvalue: -999.0 - - filter: Domain Check # land only - where: - - variable: - name: GeoVaLs/slmsk - minvalue: 0.5 - maxvalue: 1.5 - - filter: RejectList # no land-ice - where: - - variable: - name: GeoVaLs/vtype - minvalue: 14.5 - maxvalue: 15.5 - - filter: BlackList - where: - - variable: - name: MetaData/stationIdentification - is_in: [71120,71397,71621,71727,71816] - size where true: 5 - obs post filters: - - filter: Background Check # gross error check - filter variables: - - name: totalSnowDepth - threshold: 6.25 - action: - name: reject - - filter: Temporal Thinning - min_spacing: '{{ SNOW_WINDOW_LENGTH }}' - seed_time: '{{ current_cycle | to_isotime }}' - category_variable: - name: MetaData/stationIdentification - - filter: Met Office Buddy Check - filter variables: - - name: totalSnowDepth - rejection_threshold: 0.5 - traced_boxes: # trace all observations - min_latitude: -90 - max_latitude: 90 - min_longitude: -180 - max_longitude: 180 - search_radius: 150 # km - station_id_variable: - name: MetaData/stationIdentification - num_zonal_bands: 24 - sort_by_pressure: false - max_total_num_buddies: 15 - max_num_buddies_from_single_band: 10 - max_num_buddies_with_same_station_id: 5 - use_legacy_buddy_collector: false - horizontal_correlation_scale: { "-90": 150, "90": 150 } - temporal_correlation_scale: PT6H - damping_factor_1: 1.0 - damping_factor_2: 1.0 - background_error_group: BkgError diff --git a/parm/snow/obs/config/ghcn_snow.yaml.j2 b/parm/snow/obs/config/ghcn_snow.yaml.j2 deleted file mode 100644 index b2a037cf1..000000000 --- a/parm/snow/obs/config/ghcn_snow.yaml.j2 +++ /dev/null @@ -1,53 +0,0 @@ -- obs space: - name: ghcn_snow - distribution: - name: Halo - simulated variables: [totalSnowDepth] - obsdatain: - engine: - type: H5File - obsfile: './obs/{{ OPREFIX }}ghcn_snow_{{ current_cycle | to_YMDH }}.nc4' - obsdataout: - engine: - type: H5File - obsfile: './diags/diag_ghcn_snow_{{ current_cycle | to_YMDH }}.nc4' - - obs operator: - name: Identity - obs error: - covariance model: diagonal - obs localizations: - - localization method: Horizontal SOAR - lengthscale: 250e3 - soar horizontal decay: 0.000021 - max nobs: 50 - - localization method: Vertical Brasnett - vertical lengthscale: 700 - obs filters: - - filter: Bounds Check - filter variables: - - name: totalSnowDepth - minvalue: 0.0 - - filter: Domain Check - where: - - variable: - name: MetaData/height - minvalue: -999.0 - - filter: Domain Check # land only - where: - - variable: - name: GeoVaLs/slmsk - minvalue: 0.5 - maxvalue: 1.5 - - filter: RejectList # no land-ice - where: - - variable: - name: GeoVaLs/vtype - minvalue: 14.5 - maxvalue: 15.5 - - filter: Background Check - filter variables: - - name: totalSnowDepth - threshold: 6.25 - action: - name: reject diff --git a/parm/snow/obs/config/ims_snow.yaml.j2 b/parm/snow/obs/config/ims_snow.yaml.j2 deleted file mode 100644 index c222d0dfe..000000000 --- a/parm/snow/obs/config/ims_snow.yaml.j2 +++ /dev/null @@ -1,46 +0,0 @@ -- obs space: - name: ims_snow - distribution: - name: Halo - halo size: 250e3 - obsdatain: - engine: - type: H5File - obsfile: './obs/{{ OPREFIX }}ims_snow.nc4' - obsdataout: - engine: - type: H5File - obsfile: './diags/diag_ims_snow.nc4' - simulated variables: [totalSnowDepth] - obs operator: - name: Identity - obs error: - covariance model: diagonal - obs localizations: - - localization method: Horizontal SOAR - lengthscale: 250e3 - soar horizontal decay: 0.000021 - max nobs: 1 - obs filters: - - filter: Bounds Check - filter variables: - - name: totalSnowDepth - minvalue: 0.0 - - filter: Domain Check # land only - where: - - variable: - name: GeoVaLs/slmsk - minvalue: 0.5 - maxvalue: 1.5 - - filter: RejectList # no land-ice - where: - - variable: - name: GeoVaLs/vtype - minvalue: 14.5 - maxvalue: 15.5 - - filter: Background Check # gross error check - filter variables: - - name: totalSnowDepth - threshold: 6.25 - action: - name: reject diff --git a/parm/snow/obs/config/sfcsno_snow.yaml.j2 b/parm/snow/obs/config/sfcsno_snow.yaml.j2 deleted file mode 100644 index 960ea8f64..000000000 --- a/parm/snow/obs/config/sfcsno_snow.yaml.j2 +++ /dev/null @@ -1,110 +0,0 @@ -- obs space: - name: sfcsno_snow - distribution: - name: Halo - halo size: 250e3 - obsdatain: - engine: - type: bufr - obsfile: '{{ DATA }}/obs/{{ OPREFIX }}sfcsno.tm00.bufr_d' - mapping file: '{{ DATA }}/obs/bufr_sfcsno_mapping.yaml' - obsdataout: - engine: - type: H5File - obsfile: '{{ DATA }}/diags/diag_sfcsno_snow.nc4' - simulated variables: [totalSnowDepth] - obs operator: - name: Composite - components: - - name: Identity - - name: BackgroundErrorIdentity - obs error: - covariance model: diagonal - obs localizations: - - localization method: Horizontal SOAR - lengthscale: 250e3 - soar horizontal decay: 0.000021 - max nobs: 50 - - localization method: Vertical Brasnett - vertical lengthscale: 700 - obs pre filters: - - filter: Perform Action - filter variables: - - name: totalSnowDepth - action: - name: assign error - error parameter: 40.0 - - filter: Variable Assignment - assignments: - - name: GrossErrorProbability/totalSnowDepth - type: float - value: 0.02 - - name: BkgError/totalSnowDepth_background_error - type: float - value: 30.0 - obs prior filters: - - filter: Bounds Check - filter variables: - - name: totalSnowDepth - minvalue: 0.0 - maxvalue: 2000.0 - action: - name: reject - - filter: Domain Check - where: - - variable: - name: MetaData/stationElevation - minvalue: -999.0 - - filter: Domain Check # land only - where: - - variable: - name: GeoVaLs/slmsk - minvalue: 0.5 - maxvalue: 1.5 - - filter: RejectList # no land-ice - where: - - variable: - name: GeoVaLs/vtype - minvalue: 14.5 - maxvalue: 15.5 - - filter: BlackList - where: - - variable: - name: MetaData/stationIdentification - is_in: [71120,71397,71621,71727,71816] - size where true: 5 - obs post filters: - - filter: Background Check # gross error check - filter variables: - - name: totalSnowDepth - threshold: 6.25 - action: - name: reject - - filter: Temporal Thinning - min_spacing: '{{ SNOW_WINDOW_LENGTH }}' - seed_time: '{{ current_cycle | to_isotime }}' - category_variable: - name: MetaData/stationIdentification - - filter: Met Office Buddy Check - filter variables: - - name: totalSnowDepth - rejection_threshold: 0.5 - traced_boxes: # trace all observations - min_latitude: -90 - max_latitude: 90 - min_longitude: -180 - max_longitude: 180 - search_radius: 150 # km - station_id_variable: - name: MetaData/stationIdentification - num_zonal_bands: 24 - sort_by_pressure: false - max_total_num_buddies: 15 - max_num_buddies_from_single_band: 10 - max_num_buddies_with_same_station_id: 5 - use_legacy_buddy_collector: false - horizontal_correlation_scale: { "-90": 150, "90": 150 } - temporal_correlation_scale: PT6H - damping_factor_1: 1.0 - damping_factor_2: 1.0 - background_error_group: BkgError diff --git a/parm/snow/obs/config/snocvr_snow.yaml.j2 b/parm/snow/obs/config/snocvr_snow.yaml.j2 deleted file mode 100644 index 45a361f32..000000000 --- a/parm/snow/obs/config/snocvr_snow.yaml.j2 +++ /dev/null @@ -1,103 +0,0 @@ -- obs space: - name: snocvr_snow - distribution: - name: Halo - halo size: 250e3 - obsdatain: - engine: - type: H5File - obsfile: './obs/{{ OPREFIX }}snocvr_snow.nc4' - obsdataout: - engine: - type: H5File - obsfile: './diags/diag_snocvr_snow.nc4' - simulated variables: [totalSnowDepth] - obs operator: - name: Composite - components: - - name: Identity - - name: BackgroundErrorIdentity - obs error: - covariance model: diagonal - obs localizations: - - localization method: Horizontal SOAR - lengthscale: 250e3 - soar horizontal decay: 0.000021 - max nobs: 50 - - localization method: Vertical Brasnett - vertical lengthscale: 700 - obs pre filters: - - filter: Perform Action - filter variables: - - name: totalSnowDepth - action: - name: assign error - error parameter: 40.0 - - filter: Variable Assignment - assignments: - - name: GrossErrorProbability/totalSnowDepth - type: float - value: 0.02 - - name: BkgError/totalSnowDepth_background_error - type: float - value: 30.0 - obs prior filters: - - filter: Bounds Check - filter variables: - - name: totalSnowDepth - minvalue: 0.0 - maxvalue: 2000.0 - action: - name: reject - - filter: Domain Check - where: - - variable: - name: MetaData/stationElevation - minvalue: -999.0 - - filter: Domain Check # land only - where: - - variable: - name: GeoVaLs/slmsk - minvalue: 0.5 - maxvalue: 1.5 - - filter: RejectList # no land-ice - where: - - variable: - name: GeoVaLs/vtype - minvalue: 14.5 - maxvalue: 15.5 - obs post filters: - - filter: Background Check # gross error check - filter variables: - - name: totalSnowDepth - threshold: 6.25 - action: - name: reject - - filter: Temporal Thinning - min_spacing: '{{ SNOW_WINDOW_LENGTH }}' - seed_time: '{{ current_cycle | to_isotime }}' - category_variable: - name: MetaData/stationIdentification - - filter: Met Office Buddy Check - filter variables: - - name: totalSnowDepth - rejection_threshold: 0.5 - traced_boxes: # trace all observations - min_latitude: -90 - max_latitude: 90 - min_longitude: -180 - max_longitude: 180 - search_radius: 150 # km - station_id_variable: - name: MetaData/stationIdentification - num_zonal_bands: 24 - sort_by_pressure: false - max_total_num_buddies: 15 - max_num_buddies_from_single_band: 10 - max_num_buddies_with_same_station_id: 5 - use_legacy_buddy_collector: false - horizontal_correlation_scale: { "-90": 150, "90": 150 } - temporal_correlation_scale: PT6H - damping_factor_1: 1.0 - damping_factor_2: 1.0 - background_error_group: BkgError diff --git a/parm/snow/prep/fims.nml.j2 b/parm/snow/prep/fims.nml.j2 index 9b8408b32..b9a8ded59 100644 --- a/parm/snow/prep/fims.nml.j2 +++ b/parm/snow/prep/fims.nml.j2 @@ -6,7 +6,7 @@ yyyymmddhh = "{{ current_cycle | to_YMD }}.{{ current_cycle.strftime('%H') }}", imsformat = 1, imsversion = "1.3", - fcst_path = "./bkg/" + fcst_path = "{{ ims_fcst_path }}" IMS_OBS_PATH = "./obs/", IMS_IND_PATH = "./obs/" / diff --git a/parm/snow/prep/prep_ims.yaml.j2 b/parm/snow/prep/prep_ims.yaml.j2 index 0c2bbc163..938d0503c 100644 --- a/parm/snow/prep/prep_ims.yaml.j2 +++ b/parm/snow/prep/prep_ims.yaml.j2 @@ -2,9 +2,9 @@ calcfims: mkdir: - '{{ DATA }}/obs' copy: - - ['{{ COM_OBS }}/{{ OPREFIX }}imssnow96.asc', '{{ DATA }}/obs/ims{{ current_cycle | to_julian }}_4km_v1.3.asc'] + - ['{{ COMIN_OBS }}/{{ OPREFIX }}imssnow96.asc', '{{ DATA }}/obs/ims{{ current_cycle | to_julian }}_4km_v1.3.asc'] - ['{{ FIXgfs }}/gdas/obs/ims/IMS_4km_to_{{ CASE }}.mx{{ OCNRES }}.nc', '{{ DATA }}/obs/IMS4km_to_FV3_mapping.{{ CASE }}_oro_data.nc'] ims2ioda: copy: - - ['{{ DATA }}/ims_snow_{{ current_cycle | to_YMDH }}.nc4', '{{ COM_OBS }}/{{ OPREFIX }}ims_snow.nc4'] + - ['{{ DATA }}/ims_snow_{{ current_cycle | to_YMDH }}.nc4', '{{ DATA }}/obs/{{ OPREFIX }}ims_snow.tm00.nc'] diff --git a/sorc/land-imsproc b/sorc/land-imsproc index bbe3f311d..7ca1c7441 160000 --- a/sorc/land-imsproc +++ b/sorc/land-imsproc @@ -1 +1 @@ -Subproject commit bbe3f311dc310020319c313cde1a2ee8a3c47a36 +Subproject commit 7ca1c7441042558cf41a0753f80191a0026a1126