diff --git a/parm/snow/hofx/hofx_nomodel.yaml b/parm/snow/hofx/hofx_nomodel.yaml deleted file mode 100644 index c7e48c23e..000000000 --- a/parm/snow/hofx/hofx_nomodel.yaml +++ /dev/null @@ -1,31 +0,0 @@ -time window: - begin: '{{ SNOW_WINDOW_BEGIN | to_isotime }}' - length: $(SNOW_WINDOW_LENGTH) -geometry: - fms initialization: - namelist filename: $(DATA)/fv3jedi/fmsmpp.nml - field table filename: $(DATA)/fv3jedi/field_table - akbk: $(DATA)/fv3jedi/akbk.nc4 - layout: - - $(layout_x) - - $(layout_y) - npx: $(npx_ges) - npy: $(npy_ges) - npz: $(npz_ges) - field metadata override: $(DATA)/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)/fix_orog/${CASE}/ - filename_orog: $(CASE)_oro_data.nc -state: - datapath: $(DATA)/bkg - filetype: fms restart - datetime: '{{ current_cycle | to_isotime }}' - filename_sfcd: '{{ current_cycle | to_fv3time }}.sfc_data.nc' - filename_cplr: '{{ current_cycle | to_fv3time }}.coupler.res' - state variables: [snwdph,vtype,slmsk] -observations: !INC ${OBS_LIST} diff --git a/parm/snow/hofx/hofx_nomodel.yaml.j2 b/parm/snow/hofx/hofx_nomodel.yaml.j2 new file mode 100644 index 000000000..9c7ef61e6 --- /dev/null +++ b/parm/snow/hofx/hofx_nomodel.yaml.j2 @@ -0,0 +1,35 @@ +time window: + begin: '{{ SNOW_WINDOW_BEGIN | to_isotime }}' + length: {{ SNOW_WINDOW_LENGTH }} +geometry: + fms initialization: + namelist filename: '{{ DATA }}/fv3jedi/fmsmpp.nml' + field table filename: '{{ DATA }}/fv3jedi/field_table' + akbk: '{{ DATA }}/fv3jedi/akbk.nc4' + layout: + - {{ layout_x }} + - {{ layout_y }} + npx: {{ npx_ges }} + npy: {{ npy_ges }} + npz: {{ npz_ges }} + field metadata override: '{{ DATA }}/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 }}/fix_orog/{{ CASE }}/' + filename_orog: '{{ CASE }}_oro_data.nc' +state: + datapath: '{{ DATA }}/bkg' + filetype: fms restart + datetime: '{{ current_cycle | to_isotime }}' + filename_sfcd: '{{ current_cycle | to_fv3time }}.sfc_data.nc' + filename_cplr: '{{ current_cycle | to_fv3time }}.coupler.res' + state variables: [snwdph,vtype,slmsk] +observations: +{% filter indent(width=2) %} +{% set snow_obs_list = 'OBS_LIST' | getenv('snow/obs/lists/gdas_snow.yaml.j2') %} +{% include snow_obs_list %} +{% endfilter %} diff --git a/parm/snow/letkfoi/letkfoi.yaml b/parm/snow/letkfoi/letkfoi.yaml.j2 similarity index 62% rename from parm/snow/letkfoi/letkfoi.yaml rename to parm/snow/letkfoi/letkfoi.yaml.j2 index fff3b9f31..467c7805b 100644 --- a/parm/snow/letkfoi/letkfoi.yaml +++ b/parm/snow/letkfoi/letkfoi.yaml.j2 @@ -1,27 +1,27 @@ geometry: fms initialization: - namelist filename: $(DATA)/fv3jedi/fmsmpp.nml - field table filename: $(DATA)/fv3jedi/field_table - akbk: $(DATA)/fv3jedi/akbk.nc4 + namelist filename: {{ DATA }}/fv3jedi/fmsmpp.nml + field table filename: {{ DATA }}/fv3jedi/field_table + akbk: {{ DATA }}/fv3jedi/akbk.nc4 layout: - - $(layout_x) - - $(layout_y) - npx: $(npx_ges) - npy: $(npy_ges) - npz: $(npz_ges) - field metadata override: $(DATA)/fv3jedi/fv3jedi_fieldmetadata_restart.yaml + - {{ layout_x }} + - {{ layout_y }} + npx: {{ npx_ges }} + npy: {{ npy_ges }} + npz: {{ npz_ges }} + field metadata override: {{ DATA }}/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 + datapath: {{ FIXgfs }}/orog/{{ CASE }}/ + filename_orog: {{ CASE }}.mx{{ OCNRES }}_oro_data.nc time window: begin: '{{ SNOW_WINDOW_BEGIN | to_isotime }}' - length: $(SNOW_WINDOW_LENGTH) + length: {{ SNOW_WINDOW_LENGTH }} bound to include: begin background: @@ -31,14 +31,18 @@ background: datetime: '{{ current_cycle | to_isotime }}' filetype: fms restart state variables: [snodl,vtype,slmsk] - datapath: $(DATA)/bkg/mem%mem%/RESTART + datapath: {{ DATA }}/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: !INC ${OBS_LIST} +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 @@ -53,7 +57,7 @@ local ensemble DA: mult: 1.0 output increment: - datapath: $(DATA)/anl + datapath: {{ DATA }}/anl prefix: snowinc filetype: fms restart filename_sfcd: '{{ current_cycle | to_fv3time }}.sfc_data.nc' diff --git a/parm/snow/obs/config/adpsfc_snow.yaml b/parm/snow/obs/config/adpsfc_snow.yaml deleted file mode 100644 index 658b74f70..000000000 --- a/parm/snow/obs/config/adpsfc_snow.yaml +++ /dev/null @@ -1,110 +0,0 @@ -obs space: - name: adpsfc_snow - distribution: - name: Halo - halo size: 250e3 - obsdatain: - engine: - type: H5File - obsfile: $(DATA)/obs/$(OPREFIX)adpsfc_snow.nc4 - obsdataout: - engine: - type: H5File - obsfile: $(DATA)/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/adpsfc_snow.yaml.j2 b/parm/snow/obs/config/adpsfc_snow.yaml.j2 new file mode 100644 index 000000000..026f01fae --- /dev/null +++ b/parm/snow/obs/config/adpsfc_snow.yaml.j2 @@ -0,0 +1,109 @@ +- obs space: + name: adpsfc_snow + distribution: + name: Halo + halo size: 250e3 + obsdatain: + engine: + type: H5File + obsfile: '{{ DATA }}/obs/{{ OPREFIX }}adpsfc_snow.nc4' + obsdataout: + engine: + type: H5File + obsfile: '{{ DATA }}/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 b/parm/snow/obs/config/ghcn_snow.yaml deleted file mode 100644 index 60dc82312..000000000 --- a/parm/snow/obs/config/ghcn_snow.yaml +++ /dev/null @@ -1,53 +0,0 @@ -obs space: - name: ghcn_snow - distribution: - name: Halo - simulated variables: [totalSnowDepth] - obsdatain: - engine: - type: H5File - obsfile: $(DATA)/obs/$(OPREFIX)ghcn_snow_{{ current_cycle | to_YMDH }}.nc4 - obsdataout: - engine: - type: H5File - obsfile: $(DATA)/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/ghcn_snow.yaml.j2 b/parm/snow/obs/config/ghcn_snow.yaml.j2 new file mode 100644 index 000000000..2cfb08161 --- /dev/null +++ b/parm/snow/obs/config/ghcn_snow.yaml.j2 @@ -0,0 +1,53 @@ +- obs space: + name: ghcn_snow + distribution: + name: Halo + simulated variables: [totalSnowDepth] + obsdatain: + engine: + type: H5File + obsfile: '{{ DATA }}/obs/{{ OPREFIX }}ghcn_snow_{{ current_cycle | to_YMDH }}.nc4' + obsdataout: + engine: + type: H5File + obsfile: '{{ DATA }}/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 b/parm/snow/obs/config/ims_snow.yaml deleted file mode 100644 index 0a12efb4f..000000000 --- a/parm/snow/obs/config/ims_snow.yaml +++ /dev/null @@ -1,47 +0,0 @@ -obs space: - name: ims_snow - distribution: - name: Halo - halo size: 250e3 - obsdatain: - engine: - type: H5File - obsfile: $(DATA)/obs/$(OPREFIX)ims_snow.nc4 - obsdataout: - engine: - type: H5File - obsfile: $(DATA)/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/ims_snow.yaml.j2 b/parm/snow/obs/config/ims_snow.yaml.j2 new file mode 100644 index 000000000..6fa427be7 --- /dev/null +++ b/parm/snow/obs/config/ims_snow.yaml.j2 @@ -0,0 +1,46 @@ +- obs space: + name: ims_snow + distribution: + name: Halo + halo size: 250e3 + obsdatain: + engine: + type: H5File + obsfile: '{{ DATA }}/obs/{{ OPREFIX }}ims_snow.nc4' + obsdataout: + engine: + type: H5File + obsfile: '{{ DATA }}/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/snocvr_snow.yaml b/parm/snow/obs/config/snocvr_snow.yaml deleted file mode 100644 index 3492e820e..000000000 --- a/parm/snow/obs/config/snocvr_snow.yaml +++ /dev/null @@ -1,103 +0,0 @@ -obs space: - name: snocvr_snow - distribution: - name: Halo - halo size: 250e3 - obsdatain: - engine: - type: H5File - obsfile: '{{ DATA }}/obs/{{ OPREFIX }}snocvr_snow.nc4' - obsdataout: - engine: - type: H5File - obsfile: '{{ DATA }}/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/obs/config/snocvr_snow.yaml.j2 b/parm/snow/obs/config/snocvr_snow.yaml.j2 new file mode 100644 index 000000000..c6b872a48 --- /dev/null +++ b/parm/snow/obs/config/snocvr_snow.yaml.j2 @@ -0,0 +1,103 @@ +- obs space: + name: snocvr_snow + distribution: + name: Halo + halo size: 250e3 + obsdatain: + engine: + type: H5File + obsfile: '{{ DATA }}/obs/{{ OPREFIX }}snocvr_snow.nc4' + obsdataout: + engine: + type: H5File + obsfile: '{{ DATA }}/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/obs/lists/gdas_snow.yaml.j2 b/parm/snow/obs/lists/gdas_snow.yaml.j2 new file mode 100644 index 000000000..5be543389 --- /dev/null +++ b/parm/snow/obs/lists/gdas_snow.yaml.j2 @@ -0,0 +1,9 @@ +observers: +{% filter indent(width=2) %} +{% include 'snow/obs/config/adpsfc_snow.yaml.j2' %} +{% include 'snow/obs/config/snocvr_snow.yaml.j2' %} +{% set cycle = current_cycle | strftime("t%Hz") %} +{% if cycle in ['t18z'] %} +{% include 'snow/obs/config/ims_snow.yaml.j2' %} +{% endif %} +{% endfilter %} diff --git a/parm/snow/obs/lists/gdas_snow_adpsfc_only.yaml b/parm/snow/obs/lists/gdas_snow_adpsfc_only.yaml deleted file mode 100644 index 65040fe28..000000000 --- a/parm/snow/obs/lists/gdas_snow_adpsfc_only.yaml +++ /dev/null @@ -1,2 +0,0 @@ -observers: -- !INC ${OBS_YAML_DIR}/adpsfc_snow.yaml diff --git a/parm/snow/obs/lists/gdas_snow_gts_only.yaml b/parm/snow/obs/lists/gdas_snow_gts_only.yaml deleted file mode 100644 index 00c7edef9..000000000 --- a/parm/snow/obs/lists/gdas_snow_gts_only.yaml +++ /dev/null @@ -1,3 +0,0 @@ -observers: -- !INC ${OBS_YAML_DIR}/adpsfc_snow.yaml -- !INC ${OBS_YAML_DIR}/snocvr_snow.yaml diff --git a/parm/snow/obs/lists/gdas_snow_prototype.yaml b/parm/snow/obs/lists/gdas_snow_prototype.yaml deleted file mode 100644 index d9d4deb3b..000000000 --- a/parm/snow/obs/lists/gdas_snow_prototype.yaml +++ /dev/null @@ -1,4 +0,0 @@ -observers: -- !INC ${OBS_YAML_DIR}/adpsfc_snow.yaml -- !INC ${OBS_YAML_DIR}/snocvr_snow.yaml -- !INC ${OBS_YAML_DIR}/ims_snow.yaml diff --git a/parm/snow/prep/prep_gts.yaml b/parm/snow/prep/prep_gts.yaml deleted file mode 100644 index 5d96fefda..000000000 --- a/parm/snow/prep/prep_gts.yaml +++ /dev/null @@ -1,10 +0,0 @@ -gtsbufr: - mkdir: - - $(DATA)/obs - copy: - - [{{ COM_OBS }}/{{ OPREFIX }}adpsfc.tm00.bufr_d, {{ DATA }}/obs/] -gtsioda: - copy: - - [{{ DATA }}/{{ OPREFIX }}adpsfc_snow.nc4, {{ COM_OBS }}/{{ OPREFIX }}adpsfc_snow.nc4] -bufr2ioda: - adpsfc: {{ HOMEgfs }}/sorc/gdas.cd/test/testinput/bufr_adpsfc_snow.yaml diff --git a/parm/snow/prep/prep_gts.yaml.j2 b/parm/snow/prep/prep_gts.yaml.j2 new file mode 100644 index 000000000..a5e4915a3 --- /dev/null +++ b/parm/snow/prep/prep_gts.yaml.j2 @@ -0,0 +1,10 @@ +gtsbufr: + mkdir: + - '{{ DATA }}/obs' + copy: + - ['{{ COM_OBS }}/{{ OPREFIX }}adpsfc.tm00.bufr_d', '{{ DATA }}/obs/'] +gtsioda: + copy: + - ['{{ DATA }}/{{ OPREFIX }}adpsfc_snow.nc4', '{{ COM_OBS }}/{{ OPREFIX }}adpsfc_snow.nc4'] +bufr2ioda: + adpsfc: '{{ HOMEgfs }}/sorc/gdas.cd/test/testinput/bufr_adpsfc_snow.yaml' diff --git a/parm/snow/prep/prep_ims.yaml b/parm/snow/prep/prep_ims.yaml deleted file mode 100644 index b7e186f19..000000000 --- a/parm/snow/prep/prep_ims.yaml +++ /dev/null @@ -1,10 +0,0 @@ -calcfims: - mkdir: - - {{ DATA }}/obs - copy: - - [{{ COM_OBS }}/{{ OPREFIX }}ims{{ current_cycle | to_julian }}_4km_v1.3.nc, {{ DATA }}/obs/ims{{ current_cycle | to_julian }}_4km_v1.3.nc] - - [{{ 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] - diff --git a/parm/snow/prep/prep_ims.yaml.j2 b/parm/snow/prep/prep_ims.yaml.j2 new file mode 100644 index 000000000..2757f6f06 --- /dev/null +++ b/parm/snow/prep/prep_ims.yaml.j2 @@ -0,0 +1,10 @@ +calcfims: + mkdir: + - '{{ DATA }}/obs' + copy: + - ['{{ COM_OBS }}/{{ OPREFIX }}ims{{ current_cycle | to_julian }}_4km_v1.3.nc', '{{ DATA }}/obs/ims{{ current_cycle | to_julian }}_4km_v1.3.nc'] + - ['{{ 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'] +