diff --git a/algorithm/marine/soca_2cice_global.yaml.j2 b/algorithm/marine/soca_2cice_global.yaml.j2 index 01bff96..4ccf033 100644 --- a/algorithm/marine/soca_2cice_global.yaml.j2 +++ b/algorithm/marine/soca_2cice_global.yaml.j2 @@ -29,10 +29,20 @@ variable change: sno_lev: 1 cice output: restart: {{ ice_rst }} + increment output: + datadir: Data + exp: soca2cice + type: incr + date: '{{ fcst_begin }}' + soca increment: + read_from_file: 1 + basename: ./ + ocn_filename: {{ ocn_inc }} + ice_filename: {{ ice_inc }} + date: '{{ fcst_begin }}' output variables: - sea_water_potential_temperature - sea_water_salinity - - sea_water_cell_thickness - sea_ice_area_fraction - sea_ice_thickness - sea_ice_snow_thickness @@ -47,7 +57,6 @@ states: state variables: - sea_water_potential_temperature - sea_water_salinity - - sea_water_cell_thickness - sea_ice_area_fraction - sea_ice_thickness - sea_ice_snow_thickness diff --git a/algorithm/marine/soca_chgres.yaml.j2 b/algorithm/marine/soca_chgres.yaml.j2 new file mode 100644 index 0000000..2f417bc --- /dev/null +++ b/algorithm/marine/soca_chgres.yaml.j2 @@ -0,0 +1,33 @@ +input geometry: + mom6_input_nml: mom_input.nml + fields metadata: ./fields_metadata.yaml + +output geometry: + geom_grid_file: ./anl_geom/soca_gridspec.nc + mom6_input_nml: ./anl_geom/mom_input.nml + fields metadata: ./fields_metadata.yaml + +states: +- input: + date: '{{ marine_window_end_iso }}' + basename: ./bkg/ + ocn_filename: 'ocean.bkg.f009.nc' + ice_filename: 'ice.bkg.f009.nc' + read_from_file: 1 + + state variables: + - sea_surface_height_above_geoid + - sea_water_potential_temperature + - sea_water_salinity + - sea_water_cell_thickness + - sea_water_depth + - mom6_mld + - sea_ice_area_fraction + - sea_ice_thickness + - sea_ice_snow_thickness + + output: + datadir: anl_geom/ + exp: f009_anl_geom + type: fc + date: '{{ marine_window_end_iso }}' \ No newline at end of file diff --git a/algorithm/marine/soca_diagb.yaml.j2 b/algorithm/marine/soca_diagb.yaml.j2 index 788f674..17063d5 100644 --- a/algorithm/marine/soca_diagb.yaml.j2 +++ b/algorithm/marine/soca_diagb.yaml.j2 @@ -2,6 +2,11 @@ geometry: mom6_input_nml: mom_input.nml fields metadata: ./fields_metadata.yaml +output geometry: + geom_grid_file: ./anl_geom/soca_gridspec.nc + mom6_input_nml: ./anl_geom/mom_input.nml + fields metadata: ./fields_metadata.yaml + date: '{{ marine_window_end_iso }}' background: @@ -31,10 +36,11 @@ variables: - mom6_mld vertical e-folding scale: 500.0 +min efold depth ratio: 3.0 # keep the e-folding scale at most + # 1/(min efold depth ratio) of the local depth rescale: 1.0 # rescales the filtered std. dev. by "rescale" -min sst: 0.0 # Added to sst bkg. err. max ssh: 0.0 # Limits the amplitude of the unbalanced bkg err -min depth: 500.0 # zero out the bkg. error. at less than min depth +min depth: 50.0 # zero out the bkg. error. at less than min depth number of halo points: 4 number of neighbors: 16 diff --git a/algorithm/marine/soca_ensb.yaml.j2 b/algorithm/marine/soca_ensb.yaml.j2 index 852850f..ab437fa 100644 --- a/algorithm/marine/soca_ensb.yaml.j2 +++ b/algorithm/marine/soca_ensb.yaml.j2 @@ -3,6 +3,11 @@ geometry: mom6_input_nml: mom_input.nml fields metadata: ./fields_metadata.yaml +output geometry: + geom_grid_file: ./anl_geom/soca_gridspec.nc + mom6_input_nml: ./anl_geom/mom_input.nml + fields metadata: ./fields_metadata.yaml + date: '{{ marine_window_begin_iso }}' layers variable: [sea_water_cell_thickness] @@ -113,5 +118,5 @@ output increment: date: '{{ marine_window_begin_iso }}' exp: trash type: incr - output file: 'ocn.pert.steric.%mem%.nc' + output file: 'pert.%mem%.nc' pattern: '%mem%' diff --git a/algorithm/marine/soca_ensweights.yaml.j2 b/algorithm/marine/soca_ensweights.yaml.j2 index 9f818b3..00b2e1e 100644 --- a/algorithm/marine/soca_ensweights.yaml.j2 +++ b/algorithm/marine/soca_ensweights.yaml.j2 @@ -2,6 +2,11 @@ geometry: mom6_input_nml: mom_input.nml fields metadata: ./fields_metadata.yaml +output geometry: + geom_grid_file: ./anl_geom/soca_gridspec.nc + mom6_input_nml: ./anl_geom/mom_input.nml + fields metadata: ./fields_metadata.yaml + date: '{{ marine_window_middle_iso }}' variables: @@ -29,15 +34,16 @@ weights: ice: 0.0025 # 5% of original variance ocean: 0.0625 # 25% " " # Apply localized weights to the ocean ens. B - ocean local weights: - - lon: -172.0 - lat: 11.0 - amplitude: -1.0 - length scale: 700.0 - - lon: -160.0 - lat: 12.0 - amplitude: -1.0 - length scale: 700.0 + # Example below was for old ens. from Xiao + # ocean local weights: + # - lon: -172.0 + # lat: 11.0 + # amplitude: -1.0 + # length scale: 700.0 + # - lon: -160.0 + # lat: 12.0 + # amplitude: -1.0 + # length scale: 700.0 output: datadir: ./ diff --git a/algorithm/marine/soca_parameters_diffusion_hz.yaml.j2 b/algorithm/marine/soca_parameters_diffusion_hz.yaml.j2 index 8f3cdf7..cb57948 100644 --- a/algorithm/marine/soca_parameters_diffusion_hz.yaml.j2 +++ b/algorithm/marine/soca_parameters_diffusion_hz.yaml.j2 @@ -1,12 +1,15 @@ +# Analysis/B-mat resolution geometry: &geom - mom6_input_nml: mom_input.nml + geom_grid_file: ./anl_geom/soca_gridspec.nc + mom6_input_nml: ./anl_geom/mom_input.nml fields metadata: ./fields_metadata.yaml +# Background interpolated at the analysis resolution background: read_from_file: 1 - basename: ./INPUT/ - ocn_filename: MOM.res.nc - ice_filename: cice.res.nc + basename: ./anl_geom/ + ocn_filename: 'ocn.f009_anl_geom.fc.{{ marine_window_end_iso }}.PT0S.nc' + ice_filename: 'ice.f009_anl_geom.fc.{{ marine_window_end_iso }}.PT0S.nc' date: '{{ marine_window_end_iso }}' state variables: [sea_surface_height_above_geoid] diff --git a/algorithm/marine/soca_parameters_diffusion_vt.yaml.j2 b/algorithm/marine/soca_parameters_diffusion_vt.yaml.j2 index 8e23f2d..a5c5d46 100644 --- a/algorithm/marine/soca_parameters_diffusion_vt.yaml.j2 +++ b/algorithm/marine/soca_parameters_diffusion_vt.yaml.j2 @@ -1,13 +1,15 @@ +# Analysis/B-mat resolution geometry: &geom - mom6_input_nml: mom_input.nml + geom_grid_file: ./anl_geom/soca_gridspec.nc + mom6_input_nml: ./anl_geom/mom_input.nml fields metadata: ./fields_metadata.yaml +# Background interpolated at the analysis resolution background: read_from_file: 1 - basename: ./INPUT/ - ocn_filename: MOM.res.nc - ice_filename: cice.res.nc - date: '{{ marine_window_middle_iso }}' + basename: ./anl_geom/ + ocn_filename: 'ocn.f009_anl_geom.fc.{{ marine_window_end_iso }}.PT0S.nc' + date: '{{ marine_window_end_iso }}' state variables: [sea_water_potential_temperature] background error: diff --git a/algorithm/marine/soca_setcorscales.yaml.j2 b/algorithm/marine/soca_setcorscales.yaml.j2 index 0c2b9c0..9d07bef 100644 --- a/algorithm/marine/soca_setcorscales.yaml.j2 +++ b/algorithm/marine/soca_setcorscales.yaml.j2 @@ -1,5 +1,6 @@ resolution: - mom6_input_nml: mom_input.nml + geom_grid_file: ./anl_geom/soca_gridspec.nc + mom6_input_nml: ./anl_geom/mom_input.nml fields metadata: ./fields_metadata.yaml date: "0001-01-01T00:00:00Z" @@ -9,8 +10,8 @@ corr variables: [sea_surface_height_above_geoid] scales: vert layers: 5 # in units of layer sea_surface_height_above_geoid: - rossby mult: 2.00 - min grid mult: 6.0 + rossby mult: 1.50 + min grid mult: 2.0 rh output: datadir: ./ diff --git a/algorithm/marine/soca_vtscales.yaml.j2 b/algorithm/marine/soca_vtscales.yaml.j2 index 797af37..f0e68bc 100644 --- a/algorithm/marine/soca_vtscales.yaml.j2 +++ b/algorithm/marine/soca_vtscales.yaml.j2 @@ -1,6 +1,6 @@ -gridspec_filename: soca_gridspec.nc -restart_filename: ./INPUT/MOM.res.nc -mld_filename: './staticb/ocn.bkgerr_stddev.incr.{{ marine_window_end_iso }}.nc' +gridspec_filename: ./anl_geom/soca_gridspec.nc +restart_filename: './anl_geom/ocn.f009_anl_geom.fc.{{ marine_window_end_iso }}.PT0S.nc' +mld_filename: './anl_geom/ocn.f009_anl_geom.fc.{{ marine_window_end_iso }}.PT0S.nc' output_filename: ./vt_scales.nc output_variable_vt: Temp output_variable_hz: ave_ssh diff --git a/algorithm/marine/socaincr2mom6.yaml.j2 b/algorithm/marine/socaincr2mom6.yaml.j2 index 0790fc9..85b8f03 100644 --- a/algorithm/marine/socaincr2mom6.yaml.j2 +++ b/algorithm/marine/socaincr2mom6.yaml.j2 @@ -6,6 +6,8 @@ date: '{{ marine_window_begin }}' layers variable: [sea_water_cell_thickness] +domains: [ocn] + increment variables: - sea_water_potential_temperature - sea_water_salinity diff --git a/algorithm/obstats/aero/viirs_n20_template.yaml.j2 b/algorithm/obstats/aero/viirs_n20_template.yaml.j2 index 9606dd9..9994716 100644 --- a/algorithm/obstats/aero/viirs_n20_template.yaml.j2 +++ b/algorithm/obstats/aero/viirs_n20_template.yaml.j2 @@ -3,17 +3,17 @@ obsdatain: engine: type: H5File - obsfile: {{ aero_obsdatain_path }}/diag_{{ obspace }}_{{ stat_current_cycle_YMDH }}.nc4 - simulated variables: {{ aero_obsdatatin_simulated_variables }} - observed variables: {{ aero_obsdatain_observed_variables }} - variables: {{ aero_variables }} - groups to process: {{ aero_file_groups }} - qc groups: {{ aero_file_qc_groups }} + obsfile: {{ aero_obsdatain_path }}/aero/diag_{{ obspace }}_aod_{{ stat_current_cycle_YMDH }}.nc + simulated variables: ['aerosolOpticalDepth'] + observed variables: ['aerosolOpticalDepth'] + variables: ['aerosolOpticalDepth'] + groups to process: ['ombg', 'oman'] + qc groups: ['EffectiveQC0', 'EffectiveQC1'] statistics to compute: ['mean', 'count', 'RMS'] output file: "{{ obspace }}_{{ stat_current_cycle_YMDH }}_output_aod.nc" domains to process: - domain: - name: "nowhere" + name: "Global" first mask variable: latitude first mask range: [-180,-100] - domain: diff --git a/algorithm/obstats/aero/viirs_npp_template.yaml.j2 b/algorithm/obstats/aero/viirs_npp_template.yaml.j2 index e0909bb..3c4c5d7 100644 --- a/algorithm/obstats/aero/viirs_npp_template.yaml.j2 +++ b/algorithm/obstats/aero/viirs_npp_template.yaml.j2 @@ -3,17 +3,17 @@ obsdatain: engine: type: H5File - obsfile: {{ aero_obsdatain_path }}/diag_{{ obspace }}_{{ stat_current_cycle_YMDH }}.nc4 - simulated variables: {{ aero_obsdatatin_simulated_variables }} - observed variables: {{ aero_obsdatain_observed_variables }} - variables: {{ aero_variables }} - groups to process: {{ aero_file_groups }} - qc groups: {{ aero_file_qc_groups }} + obsfile: {{ aero_obsdatain_path }}/aero/diag_{{ obspace }}_aod_{{ stat_current_cycle_YMDH }}.nc + simulated variables: ['aerosolOpticalDepth'] + observed variables: ['aerosolOpticalDepth'] + variables: ['aerosolOpticalDepth'] + groups to process: ['ombg', 'oman'] + qc groups: ['EffectiveQC0', 'EffectiveQC1'] statistics to compute: ['mean', 'count', 'RMS'] output file: "{{ obspace }}_{{ stat_current_cycle_YMDH }}_output_aod.nc" domains to process: - domain: - name: "nowhere" + name: "Global" first mask variable: latitude first mask range: [-180,-100] - domain: diff --git a/algorithm/obstats/snow/ims_snow_template.yaml.j2 b/algorithm/obstats/snow/ims_snow_template.yaml.j2 new file mode 100644 index 0000000..7e98803 --- /dev/null +++ b/algorithm/obstats/snow/ims_snow_template.yaml.j2 @@ -0,0 +1,47 @@ +- obs space: + name: ims_snow + obsdatain: + engine: + type: H5File + obsfile: {{ snow_obsdatain_path }}/snow/diag_{{ obspace }}_{{ stat_current_cycle_YMDH }}.nc + simulated variables: ['totalSnowDepth'] + observed variables: ['totalSnowDepth'] + statistics to compute: ['mean', 'count', 'RMS'] + output file: "{{ obspace }}_{{ stat_current_cycle_YMDH }}_output_snow.nc" + domains to process: + - domain: + name: "Global" + first mask variable: latitude + first mask range: [-180,-100] + - domain: + name: "SH" + first mask variable: latitude + first mask range: [-90,0] + - domain: + name: "NH" + first mask variable: latitude + first mask range: [0,90] + - domain: + name: "CONUS" + first mask variable: latitude + first mask range: [25,49] + second mask variable: longitude + second mask range: [-125,-66] + - domain: + name: "Europe" + first mask variable: latitude + first mask range: [35,70] + second mask variable: longitude + second mask range: [-11,38] + - domain: + name: "Africa" + first mask variable: latitude + first mask range: [-35,37] + second mask variable: longitude + second mask range: [-17,52] + - domain: + name: "Asia" + first mask variable: latitude + first mask range: [0,70] + second mask variable: longitude + second mask range: [38, 180] \ No newline at end of file diff --git a/algorithm/snow/snow_obs_staging.yaml.j2 b/algorithm/snow/snow_obs_staging.yaml.j2 index a8d3dc8..778cfd1 100644 --- a/algorithm/snow/snow_obs_staging.yaml.j2 +++ b/algorithm/snow/snow_obs_staging.yaml.j2 @@ -1,6 +1,6 @@ mkdir: - '{{snow_obsdatain_path}}' -copy: +copy_opt: {% for observation_from_jcb in observations %} {% if use_observer(observation_from_jcb) %} {% if not observation_from_jcb == 'ims_snow' %} diff --git a/model/aero/aero_final_increment_gaussian.yaml.j2 b/model/aero/aero_final_increment_gaussian.yaml.j2 index 97ffc8d..72eabe0 100644 --- a/model/aero/aero_final_increment_gaussian.yaml.j2 +++ b/model/aero/aero_final_increment_gaussian.yaml.j2 @@ -2,7 +2,7 @@ grid type: regular gaussian local interpolator type: atlas interpolator interpolation method: type: finite-element -number of latitude gridpoints: {{ aero_npy_ges - 1 }} +number of latitude gridpoints: {{ aero_npy_anl - 1 }} variables to output: [mass_fraction_of_sulfate_in_air, mass_fraction_of_hydrophobic_black_carbon_in_air, mass_fraction_of_hydrophilic_black_carbon_in_air, diff --git a/model/marine/marine_3dfgat_outer_loop_1.yaml.j2 b/model/marine/marine_3dfgat_outer_loop_1.yaml.j2 index 2931f62..e90d9dd 100644 --- a/model/marine/marine_3dfgat_outer_loop_1.yaml.j2 +++ b/model/marine/marine_3dfgat_outer_loop_1.yaml.j2 @@ -1,7 +1,8 @@ - ninner: {{marine_ninner_1}} gradient norm reduction: {{marine_grad_red_1}} geometry: - mom6_input_nml: mom_input.nml + geom_grid_file: ./anl_geom/soca_gridspec.nc + mom6_input_nml: ./anl_geom/mom_input.nml fields metadata: {{marine_soca_files_path}}/fields_metadata.yaml diagnostics: departures: ombg diff --git a/model/marine/marine_3dvar_outer_loop_1.yaml.j2 b/model/marine/marine_3dvar_outer_loop_1.yaml.j2 deleted file mode 100644 index 2931f62..0000000 --- a/model/marine/marine_3dvar_outer_loop_1.yaml.j2 +++ /dev/null @@ -1,7 +0,0 @@ -- ninner: {{marine_ninner_1}} - gradient norm reduction: {{marine_grad_red_1}} - geometry: - mom6_input_nml: mom_input.nml - fields metadata: {{marine_soca_files_path}}/fields_metadata.yaml - diagnostics: - departures: ombg diff --git a/model/marine/marine_background_error_hybrid_diffusion_diffusion.yaml.j2 b/model/marine/marine_background_error_hybrid_diffusion_diffusion.yaml.j2 index 5a5a1ac..30ff421 100644 --- a/model/marine/marine_background_error_hybrid_diffusion_diffusion.yaml.j2 +++ b/model/marine/marine_background_error_hybrid_diffusion_diffusion.yaml.j2 @@ -2,6 +2,7 @@ covariance model: hybrid components: - covariance: covariance model: SABER + change background resolution: true saber central block: saber block name: diffusion read: @@ -56,45 +57,51 @@ components: weight: value: 1.00 +{% if marine_ensemble_b | default(false) %} - covariance: - covariance model: ensemble - members from template: - template: - read_from_file: 1 - date: '{{marine_stddev_time}}' - basename: ../ensdata/ - ocn_filename: 'ocn.pert.steric.%mem%.nc' - ice_filename: 'ens/ice.%mem%.nc' - state variables: - - sea_ice_area_fraction - - sea_ice_thickness - - sea_ice_snow_thickness - - sea_water_salinity - - sea_water_potential_temperature - #- eastward_sea_water_velocity - #- northward_sea_water_velocity - - sea_surface_height_above_geoid - pattern: '%mem%' - nmembers: '{{marine_number_ensemble_members}}' - localization: - localization method: SABER - saber central block: - saber block name: diffusion - read: - groups: - - variables: - - sea_water_potential_temperature - - sea_water_salinity - - sea_surface_height_above_geoid - - sea_ice_area_fraction - horizontal: - filepath: ./staticb/hz_ocean - vertical: - levels: {{marine_vt_levels}} - filepath: ./staticb/vt_ocean + covariance model: SABER + ensemble: + members from template: + template: + read_from_file: 1 + date: '{{marine_stddev_time}}' + basename: ../ensdata/ + ocn_filename: ocn.pert.%mem%.nc + ice_filename: ice.pert.%mem%.nc + state variables: + - sea_water_potential_temperature + - sea_water_salinity + #- eastward_sea_water_velocity + #- northward_sea_water_velocity + - sea_surface_height_above_geoid + - sea_ice_area_fraction + - sea_ice_thickness + - sea_ice_snow_thickness + pattern: '%mem%' + nmembers: '{{marine_number_ensemble_members}}' + saber central block: + saber block name: Ensemble + localization: + saber central block: + saber block name: diffusion + read: + groups: + - variables: + - sea_water_potential_temperature + - sea_water_salinity + - sea_surface_height_above_geoid + - sea_ice_area_fraction + multivariate strategy: duplicated + horizontal: + filepath: ./staticb/hz_ocean + vertical: + strategy: duplicated + weight: read_from_file: 3 basename: ./ ocn_filename: 'ocean.ens_weights.nc' ice_filename: 'ice.ens_weights.nc' date: '{{marine_stddev_time}}' +{% endif %} + diff --git a/model/marine/marine_background_error_static_diffusion.yaml.j2 b/model/marine/marine_background_error_static_diffusion.yaml.j2 index 2a41011..1ac5820 100644 --- a/model/marine/marine_background_error_static_diffusion.yaml.j2 +++ b/model/marine/marine_background_error_static_diffusion.yaml.j2 @@ -1,4 +1,5 @@ covariance model: SABER +change background resolution: true saber central block: saber block name: diffusion read: diff --git a/observations/atmosphere/cris-fsr_n20.yaml.j2 b/observations/atmosphere/cris-fsr_n20.yaml.j2 index 6bea2e3..e073716 100644 --- a/observations/atmosphere/cris-fsr_n20.yaml.j2 +++ b/observations/atmosphere/cris-fsr_n20.yaml.j2 @@ -34,6 +34,8 @@ obs bias: input file: "{{atmosphere_obsbiasin_path}}/{{atmosphere_obsbiasin_prefix}}{{observation_from_jcb}}{{atmosphere_obsbiasin_suffix}}" output file: "{{atmosphere_obsbiasout_path}}/{{atmosphere_obsbiasout_prefix}}{{observation_from_jcb}}{{atmosphere_obsbiasout_suffix}}" + variables without bc: [brightnessTemperature] + channels: &{{observation_from_jcb}}_not_bias_corrected {{ get_satellite_variable(observation_from_jcb, "not_biascorrtd") }} variational bc: predictors: - name: constant diff --git a/observations/atmosphere/gnssro_cosmic2.yaml.j2 b/observations/atmosphere/gnssro_cosmic2.yaml.j2 new file mode 100644 index 0000000..fa3f488 --- /dev/null +++ b/observations/atmosphere/gnssro_cosmic2.yaml.j2 @@ -0,0 +1,94 @@ +- + + # Observation Space (I/O) + # ----------------------- + obs space: + name: gnssrobndnbam_cosmic2 + obsdatain: + engine: + type: H5File + obsfile: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}{{atmosphere_obsdatain_suffix}}" + obsgrouping: + group variables: [ 'sequenceNumber' ] + sort variable: 'impactHeightRO' + sort order: 'ascending' + obsdataout: + engine: + type: H5File + obsfile: "{{atmosphere_obsdataout_path}}/{{atmosphere_obsdataout_prefix}}{{observation_from_jcb}}{{atmosphere_obsdataout_suffix}}" + simulated variables: [bendingAngle] + + # Observation Operator + # -------------------- + obs operator: + name: GnssroBndNBAM + obs options: + use_compress: 1 + sr_steps: 2 + vertlayer: full + super_ref_qc: NBAM + output_diags: true + + # Observation Filters (QC) + # ------------------------ + obs filters: + # Apply gross check using pccf + # Step 0-A: Create Diagnostic Flags + # Diagnostic flag for pccf + - filter: Create Diagnostic Flags + filter variables: + - name: bendingAngle + flags: + - name: pccfCheckReject + initial value: false + force reinitialization: true + + # Step 0-B: pccf Check for CDACC data - good: 0.1-100, reject: 0 + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265-269,750-755,44,786,820,825 + test variables: + - name: MetaData/pccf + minvalue: 0.1 + maxvalue: 100.1 + actions: + - name: set + flag: pccfCheckReject + - name: reject + + #1. gpstop + - filter: Domain Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/impactHeightRO + minvalue: 0 + maxvalue: 55000.1 + action: + name: reject + #3. RONBAM cut off check + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + action: + name: reject + defer to post: true + #4. assign obs error + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NBAM + defer to post: true + #5. Obs error inflate + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: RONBAMErrInflate + defer to post: true + # -------------------------------- diff --git a/observations/atmosphere/gnssro_geoopt.yaml.j2 b/observations/atmosphere/gnssro_geoopt.yaml.j2 new file mode 100644 index 0000000..a7774c5 --- /dev/null +++ b/observations/atmosphere/gnssro_geoopt.yaml.j2 @@ -0,0 +1,96 @@ +- + + # Observation Space (I/O) + # ----------------------- + obs space: + name: gnssrobndnbam_geoopt + obsdatain: + engine: + type: H5File + obsfile: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}{{atmosphere_obsdatain_suffix}}" + obsgrouping: + group variables: [ 'sequenceNumber' ] + sort variable: 'impactHeightRO' + sort order: 'ascending' + obsdataout: + engine: + type: H5File + obsfile: "{{atmosphere_obsdataout_path}}/{{atmosphere_obsdataout_prefix}}{{observation_from_jcb}}{{atmosphere_obsdataout_suffix}}" + simulated variables: [bendingAngle] + + # Observation Operator + # -------------------- + obs operator: + name: GnssroBndNBAM + obs options: + use_compress: 1 + sr_steps: 2 + vertlayer: full + super_ref_qc: NBAM + output_diags: true + + # Observation Filters (QC) + # ------------------------ + obs filters: + # Apply gross check using pccf + # Step 0-A: Create Diagnostic Flags + # Diagnostic flag for pccf + - filter: Create Diagnostic Flags + filter variables: + - name: bendingAngle + flags: + - name: pccfCheckReject + initial value: false + force reinitialization: true + + # Step 0-B: pccf Check for CDACC data - good: 0.1-100, reject: 0 + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265-269,750-755,44,786,820,825 + test variables: + - name: MetaData/pccf + minvalue: 0.1 + maxvalue: 100.1 + actions: + - name: set + flag: pccfCheckReject + - name: reject + + #1. commgpstop + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265,266,267,268,269 + test variables: + - name: MetaData/impactHeightRO + maxvalue: 45000.1 + action: + name: reject + #3. RONBAM cut off check + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + action: + name: reject + defer to post: true + #4. assign obs error + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NBAM + defer to post: true + #5. Obs error inflate + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: RONBAMErrInflate + defer to post: true + # -------------------------------- diff --git a/observations/atmosphere/gnssro_grace.yaml.j2 b/observations/atmosphere/gnssro_grace.yaml.j2 new file mode 100644 index 0000000..5a459de --- /dev/null +++ b/observations/atmosphere/gnssro_grace.yaml.j2 @@ -0,0 +1,94 @@ +- + + # Observation Space (I/O) + # ----------------------- + obs space: + name: gnssrobndnbam_grace + obsdatain: + engine: + type: H5File + obsfile: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}{{atmosphere_obsdatain_suffix}}" + obsgrouping: + group variables: [ 'sequenceNumber' ] + sort variable: 'impactHeightRO' + sort order: 'ascending' + obsdataout: + engine: + type: H5File + obsfile: "{{atmosphere_obsdataout_path}}/{{atmosphere_obsdataout_prefix}}{{observation_from_jcb}}{{atmosphere_obsdataout_suffix}}" + simulated variables: [bendingAngle] + + # Observation Operator + # -------------------- + obs operator: + name: GnssroBndNBAM + obs options: + use_compress: 1 + sr_steps: 2 + vertlayer: full + super_ref_qc: NBAM + output_diags: true + + # Observation Filters (QC) + # ------------------------ + obs filters: + # Apply gross check using pccf + # Step 0-A: Create Diagnostic Flags + # Diagnostic flag for pccf + - filter: Create Diagnostic Flags + filter variables: + - name: bendingAngle + flags: + - name: pccfCheckReject + initial value: false + force reinitialization: true + + # Step 0-B: pccf Check for CDACC data - good: 0.1-100, reject: 0 + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265-269,750-755,44,786,820,825 + test variables: + - name: MetaData/pccf + minvalue: 0.1 + maxvalue: 100.1 + actions: + - name: set + flag: pccfCheckReject + - name: reject + + #1. gpstop + - filter: Domain Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/impactHeightRO + minvalue: 0 + maxvalue: 55000.1 + action: + name: reject + #3. RONBAM cut off check + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + action: + name: reject + defer to post: true + #4. assign obs error + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NBAM + defer to post: true + #5. Obs error inflate + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: RONBAMErrInflate + defer to post: true + # -------------------------------- diff --git a/observations/atmosphere/gnssro_k5.yaml.j2 b/observations/atmosphere/gnssro_k5.yaml.j2 new file mode 100644 index 0000000..72893f4 --- /dev/null +++ b/observations/atmosphere/gnssro_k5.yaml.j2 @@ -0,0 +1,94 @@ +- + + # Observation Space (I/O) + # ----------------------- + obs space: + name: gnssrobndnbam_k5 + obsdatain: + engine: + type: H5File + obsfile: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}{{atmosphere_obsdatain_suffix}}" + obsgrouping: + group variables: [ 'sequenceNumber' ] + sort variable: 'impactHeightRO' + sort order: 'ascending' + obsdataout: + engine: + type: H5File + obsfile: "{{atmosphere_obsdataout_path}}/{{atmosphere_obsdataout_prefix}}{{observation_from_jcb}}{{atmosphere_obsdataout_suffix}}" + simulated variables: [bendingAngle] + + # Observation Operator + # -------------------- + obs operator: + name: GnssroBndNBAM + obs options: + use_compress: 1 + sr_steps: 2 + vertlayer: full + super_ref_qc: NBAM + output_diags: true + + # Observation Filters (QC) + # ------------------------ + obs filters: + # Apply gross check using pccf + # Step 0-A: Create Diagnostic Flags + # Diagnostic flag for pccf + - filter: Create Diagnostic Flags + filter variables: + - name: bendingAngle + flags: + - name: pccfCheckReject + initial value: false + force reinitialization: true + + # Step 0-B: pccf Check for CDACC data - good: 0.1-100, reject: 0 + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265-269,750-755,44,786,820,825 + test variables: + - name: MetaData/pccf + minvalue: 0.1 + maxvalue: 100.1 + actions: + - name: set + flag: pccfCheckReject + - name: reject + + #1. gpstop + - filter: Domain Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/impactHeightRO + minvalue: 0 + maxvalue: 55000.1 + action: + name: reject + #3. RONBAM cut off check + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + action: + name: reject + defer to post: true + #4. assign obs error + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NBAM + defer to post: true + #5. Obs error inflate + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: RONBAMErrInflate + defer to post: true + # -------------------------------- diff --git a/observations/atmosphere/gnssro_metop.yaml.j2 b/observations/atmosphere/gnssro_metop.yaml.j2 new file mode 100644 index 0000000..199424b --- /dev/null +++ b/observations/atmosphere/gnssro_metop.yaml.j2 @@ -0,0 +1,107 @@ +- + + # Observation Space (I/O) + # ----------------------- + obs space: + name: gnssrobndnbam_metop + obsdatain: + engine: + type: H5File + obsfile: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}{{atmosphere_obsdatain_suffix}}" + obsgrouping: + group variables: [ 'sequenceNumber' ] + sort variable: 'impactHeightRO' + sort order: 'ascending' + obsdataout: + engine: + type: H5File + obsfile: "{{atmosphere_obsdataout_path}}/{{atmosphere_obsdataout_prefix}}{{observation_from_jcb}}{{atmosphere_obsdataout_suffix}}" + simulated variables: [bendingAngle] + + # Observation Operator + # -------------------- + obs operator: + name: GnssroBndNBAM + obs options: + use_compress: 1 + sr_steps: 2 + vertlayer: full + super_ref_qc: NBAM + output_diags: true + + # Observation Filters (QC) + # ------------------------ + obs filters: + # Apply gross check using qfro + # Step 0-A: Create Diagnostic Flags + # Diagnostic flag for qfro + - filter: Create Diagnostic Flags + filter variables: + - name: bendingAngle + flags: + - name: qfroCheckReject + initial value: false + force reinitialization: true + + # Step 0-B: qfro Check - good: 0, reject: 1 + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 3-5,421,440,821 + test variables: + - name: MetaData/qualityFlags + minvalue: -0.1 + maxvalue: 0.9 + actions: + - name: set + flag: qfroCheckReject + - name: reject + + #1. gpstop + - filter: Domain Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/impactHeightRO + minvalue: 0 + maxvalue: 55000.1 + action: + name: reject + #2. metop below 8 km + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 3-5 + test variables: + - name: MetaData/impactHeightRO + minvalue: 8000.1 + action: + name: reject + #3. RONBAM cut off check + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + action: + name: reject + defer to post: true + #4. assign obs error + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NBAM + defer to post: true + #5. Obs error inflate + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: RONBAMErrInflate + defer to post: true + # -------------------------------- diff --git a/observations/atmosphere/gnssro_paz.yaml.j2 b/observations/atmosphere/gnssro_paz.yaml.j2 new file mode 100644 index 0000000..c36e892 --- /dev/null +++ b/observations/atmosphere/gnssro_paz.yaml.j2 @@ -0,0 +1,94 @@ +- + + # Observation Space (I/O) + # ----------------------- + obs space: + name: gnssrobndnbam_paz + obsdatain: + engine: + type: H5File + obsfile: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}{{atmosphere_obsdatain_suffix}}" + obsgrouping: + group variables: [ 'sequenceNumber' ] + sort variable: 'impactHeightRO' + sort order: 'ascending' + obsdataout: + engine: + type: H5File + obsfile: "{{atmosphere_obsdataout_path}}/{{atmosphere_obsdataout_prefix}}{{observation_from_jcb}}{{atmosphere_obsdataout_suffix}}" + simulated variables: [bendingAngle] + + # Observation Operator + # -------------------- + obs operator: + name: GnssroBndNBAM + obs options: + use_compress: 1 + sr_steps: 2 + vertlayer: full + super_ref_qc: NBAM + output_diags: true + + # Observation Filters (QC) + # ------------------------ + obs filters: + # Apply gross check using pccf + # Step 0-A: Create Diagnostic Flags + # Diagnostic flag for pccf + - filter: Create Diagnostic Flags + filter variables: + - name: bendingAngle + flags: + - name: pccfCheckReject + initial value: false + force reinitialization: true + + # Step 0-B: pccf Check for CDACC data - good: 0.1-100, reject: 0 + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265-269,750-755,44,786,820,825 + test variables: + - name: MetaData/pccf + minvalue: 0.1 + maxvalue: 100.1 + actions: + - name: set + flag: pccfCheckReject + - name: reject + + #1. gpstop + - filter: Domain Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/impactHeightRO + minvalue: 0 + maxvalue: 55000.1 + action: + name: reject + #3. RONBAM cut off check + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + action: + name: reject + defer to post: true + #4. assign obs error + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NBAM + defer to post: true + #5. Obs error inflate + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: RONBAMErrInflate + defer to post: true + # -------------------------------- diff --git a/observations/atmosphere/gnssro_piq.yaml.j2 b/observations/atmosphere/gnssro_piq.yaml.j2 new file mode 100644 index 0000000..ad4686b --- /dev/null +++ b/observations/atmosphere/gnssro_piq.yaml.j2 @@ -0,0 +1,96 @@ +- + + # Observation Space (I/O) + # ----------------------- + obs space: + name: gnssrobndnbam_piq + obsdatain: + engine: + type: H5File + obsfile: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}{{atmosphere_obsdatain_suffix}}" + obsgrouping: + group variables: [ 'sequenceNumber' ] + sort variable: 'impactHeightRO' + sort order: 'ascending' + obsdataout: + engine: + type: H5File + obsfile: "{{atmosphere_obsdataout_path}}/{{atmosphere_obsdataout_prefix}}{{observation_from_jcb}}{{atmosphere_obsdataout_suffix}}" + simulated variables: [bendingAngle] + + # Observation Operator + # -------------------- + obs operator: + name: GnssroBndNBAM + obs options: + use_compress: 1 + sr_steps: 2 + vertlayer: full + super_ref_qc: NBAM + output_diags: true + + # Observation Filters (QC) + # ------------------------ + obs filters: + # Apply gross check using pccf + # Step 0-A: Create Diagnostic Flags + # Diagnostic flag for pccf + - filter: Create Diagnostic Flags + filter variables: + - name: bendingAngle + flags: + - name: pccfCheckReject + initial value: false + force reinitialization: true + + # Step 0-B: pccf Check for CDACC data - good: 0.1-100, reject: 0 + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265-269,750-755,44,786,820,825 + test variables: + - name: MetaData/pccf + minvalue: 0.1 + maxvalue: 100.1 + actions: + - name: set + flag: pccfCheckReject + - name: reject + + #1. commgpstop + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265,266,267,268,269 + test variables: + - name: MetaData/impactHeightRO + maxvalue: 45000.1 + action: + name: reject + #3. RONBAM cut off check + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + action: + name: reject + defer to post: true + #4. assign obs error + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NBAM + defer to post: true + #5. Obs error inflate + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: RONBAMErrInflate + defer to post: true + # -------------------------------- diff --git a/observations/atmosphere/gnssro_s6.yaml.j2 b/observations/atmosphere/gnssro_s6.yaml.j2 new file mode 100644 index 0000000..bbb0698 --- /dev/null +++ b/observations/atmosphere/gnssro_s6.yaml.j2 @@ -0,0 +1,94 @@ +- + + # Observation Space (I/O) + # ----------------------- + obs space: + name: gnssrobndnbam_s6 + obsdatain: + engine: + type: H5File + obsfile: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}{{atmosphere_obsdatain_suffix}}" + obsgrouping: + group variables: [ 'sequenceNumber' ] + sort variable: 'impactHeightRO' + sort order: 'ascending' + obsdataout: + engine: + type: H5File + obsfile: "{{atmosphere_obsdataout_path}}/{{atmosphere_obsdataout_prefix}}{{observation_from_jcb}}{{atmosphere_obsdataout_suffix}}" + simulated variables: [bendingAngle] + + # Observation Operator + # -------------------- + obs operator: + name: GnssroBndNBAM + obs options: + use_compress: 1 + sr_steps: 2 + vertlayer: full + super_ref_qc: NBAM + output_diags: true + + # Observation Filters (QC) + # ------------------------ + obs filters: + # Apply gross check using pccf + # Step 0-A: Create Diagnostic Flags + # Diagnostic flag for pccf + - filter: Create Diagnostic Flags + filter variables: + - name: bendingAngle + flags: + - name: pccfCheckReject + initial value: false + force reinitialization: true + + # Step 0-B: pccf Check for CDACC data - good: 0.1-100, reject: 0 + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265-269,750-755,44,786,820,825 + test variables: + - name: MetaData/pccf + minvalue: 0.1 + maxvalue: 100.1 + actions: + - name: set + flag: pccfCheckReject + - name: reject + + #1. gpstop + - filter: Domain Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/impactHeightRO + minvalue: 0 + maxvalue: 55000.1 + action: + name: reject + #3. RONBAM cut off check + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + action: + name: reject + defer to post: true + #4. assign obs error + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NBAM + defer to post: true + #5. Obs error inflate + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: RONBAMErrInflate + defer to post: true + # -------------------------------- diff --git a/observations/atmosphere/gnssro_spire.yaml.j2 b/observations/atmosphere/gnssro_spire.yaml.j2 new file mode 100644 index 0000000..568da6d --- /dev/null +++ b/observations/atmosphere/gnssro_spire.yaml.j2 @@ -0,0 +1,96 @@ +- + + # Observation Space (I/O) + # ----------------------- + obs space: + name: gnssrobndnbam_spire + obsdatain: + engine: + type: H5File + obsfile: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}{{atmosphere_obsdatain_suffix}}" + obsgrouping: + group variables: [ 'sequenceNumber' ] + sort variable: 'impactHeightRO' + sort order: 'ascending' + obsdataout: + engine: + type: H5File + obsfile: "{{atmosphere_obsdataout_path}}/{{atmosphere_obsdataout_prefix}}{{observation_from_jcb}}{{atmosphere_obsdataout_suffix}}" + simulated variables: [bendingAngle] + + # Observation Operator + # -------------------- + obs operator: + name: GnssroBndNBAM + obs options: + use_compress: 1 + sr_steps: 2 + vertlayer: full + super_ref_qc: NBAM + output_diags: true + + # Observation Filters (QC) + # ------------------------ + obs filters: + # Apply gross check using pccf + # Step 0-A: Create Diagnostic Flags + # Diagnostic flag for pccf + - filter: Create Diagnostic Flags + filter variables: + - name: bendingAngle + flags: + - name: pccfCheckReject + initial value: false + force reinitialization: true + + # Step 0-B: pccf Check for CDACC data - good: 0.1-100, reject: 0 + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265-269,750-755,44,786,820,825 + test variables: + - name: MetaData/pccf + minvalue: 0.1 + maxvalue: 100.1 + actions: + - name: set + flag: pccfCheckReject + - name: reject + + #1. commgpstop + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265,266,267,268,269 + test variables: + - name: MetaData/impactHeightRO + maxvalue: 45000.1 + action: + name: reject + #3. RONBAM cut off check + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + action: + name: reject + defer to post: true + #4. assign obs error + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NBAM + defer to post: true + #5. Obs error inflate + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: RONBAMErrInflate + defer to post: true + # -------------------------------- diff --git a/observations/atmosphere/gnssro_tdm.yaml.j2 b/observations/atmosphere/gnssro_tdm.yaml.j2 new file mode 100644 index 0000000..fb38f01 --- /dev/null +++ b/observations/atmosphere/gnssro_tdm.yaml.j2 @@ -0,0 +1,94 @@ +- + + # Observation Space (I/O) + # ----------------------- + obs space: + name: gnssrobndnbam_tdm + obsdatain: + engine: + type: H5File + obsfile: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}{{atmosphere_obsdatain_suffix}}" + obsgrouping: + group variables: [ 'sequenceNumber' ] + sort variable: 'impactHeightRO' + sort order: 'ascending' + obsdataout: + engine: + type: H5File + obsfile: "{{atmosphere_obsdataout_path}}/{{atmosphere_obsdataout_prefix}}{{observation_from_jcb}}{{atmosphere_obsdataout_suffix}}" + simulated variables: [bendingAngle] + + # Observation Operator + # -------------------- + obs operator: + name: GnssroBndNBAM + obs options: + use_compress: 1 + sr_steps: 2 + vertlayer: full + super_ref_qc: NBAM + output_diags: true + + # Observation Filters (QC) + # ------------------------ + obs filters: + # Apply gross check using pccf + # Step 0-A: Create Diagnostic Flags + # Diagnostic flag for pccf + - filter: Create Diagnostic Flags + filter variables: + - name: bendingAngle + flags: + - name: pccfCheckReject + initial value: false + force reinitialization: true + + # Step 0-B: pccf Check for CDACC data - good: 0.1-100, reject: 0 + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265-269,750-755,44,786,820,825 + test variables: + - name: MetaData/pccf + minvalue: 0.1 + maxvalue: 100.1 + actions: + - name: set + flag: pccfCheckReject + - name: reject + + #1. gpstop + - filter: Domain Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/impactHeightRO + minvalue: 0 + maxvalue: 55000.1 + action: + name: reject + #3. RONBAM cut off check + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + action: + name: reject + defer to post: true + #4. assign obs error + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NBAM + defer to post: true + #5. Obs error inflate + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: RONBAMErrInflate + defer to post: true + # -------------------------------- diff --git a/observations/atmosphere/gnssro_tsx.yaml.j2 b/observations/atmosphere/gnssro_tsx.yaml.j2 new file mode 100644 index 0000000..1073084 --- /dev/null +++ b/observations/atmosphere/gnssro_tsx.yaml.j2 @@ -0,0 +1,94 @@ +- + + # Observation Space (I/O) + # ----------------------- + obs space: + name: gnssrobndnbam_tsx + obsdatain: + engine: + type: H5File + obsfile: "{{atmosphere_obsdatain_path}}/{{atmosphere_obsdatain_prefix}}{{observation_from_jcb}}{{atmosphere_obsdatain_suffix}}" + obsgrouping: + group variables: [ 'sequenceNumber' ] + sort variable: 'impactHeightRO' + sort order: 'ascending' + obsdataout: + engine: + type: H5File + obsfile: "{{atmosphere_obsdataout_path}}/{{atmosphere_obsdataout_prefix}}{{observation_from_jcb}}{{atmosphere_obsdataout_suffix}}" + simulated variables: [bendingAngle] + + # Observation Operator + # -------------------- + obs operator: + name: GnssroBndNBAM + obs options: + use_compress: 1 + sr_steps: 2 + vertlayer: full + super_ref_qc: NBAM + output_diags: true + + # Observation Filters (QC) + # ------------------------ + obs filters: + # Apply gross check using pccf + # Step 0-A: Create Diagnostic Flags + # Diagnostic flag for pccf + - filter: Create Diagnostic Flags + filter variables: + - name: bendingAngle + flags: + - name: pccfCheckReject + initial value: false + force reinitialization: true + + # Step 0-B: pccf Check for CDACC data - good: 0.1-100, reject: 0 + - filter: Bounds Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/satelliteIdentifier + is_in: 265-269,750-755,44,786,820,825 + test variables: + - name: MetaData/pccf + minvalue: 0.1 + maxvalue: 100.1 + actions: + - name: set + flag: pccfCheckReject + - name: reject + + #1. gpstop + - filter: Domain Check + filter variables: + - name: bendingAngle + where: + - variable: + name: MetaData/impactHeightRO + minvalue: 0 + maxvalue: 55000.1 + action: + name: reject + #3. RONBAM cut off check + - filter: Background Check RONBAM + filter variables: + - name: bendingAngle + action: + name: reject + defer to post: true + #4. assign obs error + - filter: ROobserror + filter variables: + - name: bendingAngle + errmodel: NBAM + defer to post: true + #5. Obs error inflate + - filter: Perform Action + filter variables: + - name: bendingAngle + action: + name: RONBAMErrInflate + defer to post: true + # -------------------------------- diff --git a/observations/marine/sst_abi_g16_l3c.yaml.j2 b/observations/marine/sst_abi_g16_l3c.yaml.j2 deleted file mode 100644 index 2d91234..0000000 --- a/observations/marine/sst_abi_g16_l3c.yaml.j2 +++ /dev/null @@ -1,62 +0,0 @@ -- obs space: - name: {{observation_from_jcb}} - obsdatain: - engine: - type: H5File - obsfile: "{{marine_obsdatain_path}}/{{marine_obsdatain_prefix}}{{observation_from_jcb}}{{marine_obsdatain_suffix}}" - obsdataout: - engine: - type: H5File - obsfile: "{{marine_obsdataout_path}}/{{marine_obsdataout_prefix}}{{observation_from_jcb}}{{marine_obsdataout_suffix}}" - simulated variables: [seaSurfaceTemperature] - io pool: - max pool size: 1 - get values: - time interpolation: linear - obs operator: - name: Identity - observation alias file: obsop_name_map.yaml - obs error: - covariance model: diagonal - obs filters: - - filter: Domain Check - action: - name: passivate - where: - - variable: {name: ObsValue/seaSurfaceTemperature} - maxvalue: -4.0 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/sea_area_fraction} - minvalue: 0.9 - - filter: Bounds Check - minvalue: 1.0 - maxvalue: 41.0 - - filter: Background Check - absolute threshold: 5.0 - - filter: Domain Check - where: - - variable: {name: ObsError/seaSurfaceTemperature} - minvalue: 1.0e-8 - - filter: Domain Check - where: - - variable: { name: GeoVaLs/sea_ice_area_fraction} - maxvalue: 1.0e-5 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/sea_surface_temperature} - minvalue: -1.0 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/distance_from_coast} - minvalue: 100e3 - - filter: Perform Action - action: - name: assign error - error function: - name: ObsFunction/LinearCombination - options: - variables: - - ObsError/seaSurfaceTemperature - coefs: - - 1.0 diff --git a/observations/marine/sst_abi_g16_l3c.yaml.j2 b/observations/marine/sst_abi_g16_l3c.yaml.j2 new file mode 120000 index 0000000..5298b9a --- /dev/null +++ b/observations/marine/sst_abi_g16_l3c.yaml.j2 @@ -0,0 +1 @@ +sst_generic.yaml.j2 \ No newline at end of file diff --git a/observations/marine/sst_abi_g17_l3c.yaml.j2 b/observations/marine/sst_abi_g17_l3c.yaml.j2 deleted file mode 100644 index 2d91234..0000000 --- a/observations/marine/sst_abi_g17_l3c.yaml.j2 +++ /dev/null @@ -1,62 +0,0 @@ -- obs space: - name: {{observation_from_jcb}} - obsdatain: - engine: - type: H5File - obsfile: "{{marine_obsdatain_path}}/{{marine_obsdatain_prefix}}{{observation_from_jcb}}{{marine_obsdatain_suffix}}" - obsdataout: - engine: - type: H5File - obsfile: "{{marine_obsdataout_path}}/{{marine_obsdataout_prefix}}{{observation_from_jcb}}{{marine_obsdataout_suffix}}" - simulated variables: [seaSurfaceTemperature] - io pool: - max pool size: 1 - get values: - time interpolation: linear - obs operator: - name: Identity - observation alias file: obsop_name_map.yaml - obs error: - covariance model: diagonal - obs filters: - - filter: Domain Check - action: - name: passivate - where: - - variable: {name: ObsValue/seaSurfaceTemperature} - maxvalue: -4.0 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/sea_area_fraction} - minvalue: 0.9 - - filter: Bounds Check - minvalue: 1.0 - maxvalue: 41.0 - - filter: Background Check - absolute threshold: 5.0 - - filter: Domain Check - where: - - variable: {name: ObsError/seaSurfaceTemperature} - minvalue: 1.0e-8 - - filter: Domain Check - where: - - variable: { name: GeoVaLs/sea_ice_area_fraction} - maxvalue: 1.0e-5 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/sea_surface_temperature} - minvalue: -1.0 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/distance_from_coast} - minvalue: 100e3 - - filter: Perform Action - action: - name: assign error - error function: - name: ObsFunction/LinearCombination - options: - variables: - - ObsError/seaSurfaceTemperature - coefs: - - 1.0 diff --git a/observations/marine/sst_abi_g17_l3c.yaml.j2 b/observations/marine/sst_abi_g17_l3c.yaml.j2 new file mode 120000 index 0000000..5298b9a --- /dev/null +++ b/observations/marine/sst_abi_g17_l3c.yaml.j2 @@ -0,0 +1 @@ +sst_generic.yaml.j2 \ No newline at end of file diff --git a/observations/marine/sst_ahi_h08_l3c.yaml.j2 b/observations/marine/sst_ahi_h08_l3c.yaml.j2 deleted file mode 100644 index 2d91234..0000000 --- a/observations/marine/sst_ahi_h08_l3c.yaml.j2 +++ /dev/null @@ -1,62 +0,0 @@ -- obs space: - name: {{observation_from_jcb}} - obsdatain: - engine: - type: H5File - obsfile: "{{marine_obsdatain_path}}/{{marine_obsdatain_prefix}}{{observation_from_jcb}}{{marine_obsdatain_suffix}}" - obsdataout: - engine: - type: H5File - obsfile: "{{marine_obsdataout_path}}/{{marine_obsdataout_prefix}}{{observation_from_jcb}}{{marine_obsdataout_suffix}}" - simulated variables: [seaSurfaceTemperature] - io pool: - max pool size: 1 - get values: - time interpolation: linear - obs operator: - name: Identity - observation alias file: obsop_name_map.yaml - obs error: - covariance model: diagonal - obs filters: - - filter: Domain Check - action: - name: passivate - where: - - variable: {name: ObsValue/seaSurfaceTemperature} - maxvalue: -4.0 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/sea_area_fraction} - minvalue: 0.9 - - filter: Bounds Check - minvalue: 1.0 - maxvalue: 41.0 - - filter: Background Check - absolute threshold: 5.0 - - filter: Domain Check - where: - - variable: {name: ObsError/seaSurfaceTemperature} - minvalue: 1.0e-8 - - filter: Domain Check - where: - - variable: { name: GeoVaLs/sea_ice_area_fraction} - maxvalue: 1.0e-5 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/sea_surface_temperature} - minvalue: -1.0 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/distance_from_coast} - minvalue: 100e3 - - filter: Perform Action - action: - name: assign error - error function: - name: ObsFunction/LinearCombination - options: - variables: - - ObsError/seaSurfaceTemperature - coefs: - - 1.0 diff --git a/observations/marine/sst_ahi_h08_l3c.yaml.j2 b/observations/marine/sst_ahi_h08_l3c.yaml.j2 new file mode 120000 index 0000000..5298b9a --- /dev/null +++ b/observations/marine/sst_ahi_h08_l3c.yaml.j2 @@ -0,0 +1 @@ +sst_generic.yaml.j2 \ No newline at end of file diff --git a/observations/marine/sst_avhrr_ma_l3u.yaml.j2 b/observations/marine/sst_avhrr_ma_l3u.yaml.j2 deleted file mode 100644 index 63f847a..0000000 --- a/observations/marine/sst_avhrr_ma_l3u.yaml.j2 +++ /dev/null @@ -1,56 +0,0 @@ -- obs space: - name: {{observation_from_jcb}} - obsdatain: - engine: - type: H5File - obsfile: "{{marine_obsdatain_path}}/{{marine_obsdatain_prefix}}{{observation_from_jcb}}{{marine_obsdatain_suffix}}" - obsdataout: - engine: - type: H5File - obsfile: "{{marine_obsdataout_path}}/{{marine_obsdataout_prefix}}{{observation_from_jcb}}{{marine_obsdataout_suffix}}" - simulated variables: [seaSurfaceTemperature] - io pool: - max pool size: 1 - get values: - time interpolation: linear - obs operator: - name: Identity - observation alias file: obsop_name_map.yaml - obs error: - covariance model: diagonal - obs filters: - - filter: Domain Check - where: - - variable: {name: GeoVaLs/sea_area_fraction} - minvalue: 0.9 - - filter: Bounds Check - minvalue: 1.0 - maxvalue: 41.0 - - filter: Background Check - absolute threshold: 5.0 - - filter: Domain Check - where: - - variable: {name: ObsError/seaSurfaceTemperature} - minvalue: 1.0e-8 - - filter: Domain Check - where: - - variable: { name: GeoVaLs/sea_ice_area_fraction} - maxvalue: 1.0e-5 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/sea_surface_temperature} - minvalue: -1.0 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/distance_from_coast} - minvalue: 100e3 - - filter: Perform Action - action: - name: assign error - error function: - name: ObsFunction/LinearCombination - options: - variables: - - ObsError/seaSurfaceTemperature - coefs: - - 1.0 diff --git a/observations/marine/sst_avhrr_ma_l3u.yaml.j2 b/observations/marine/sst_avhrr_ma_l3u.yaml.j2 new file mode 120000 index 0000000..5298b9a --- /dev/null +++ b/observations/marine/sst_avhrr_ma_l3u.yaml.j2 @@ -0,0 +1 @@ +sst_generic.yaml.j2 \ No newline at end of file diff --git a/observations/marine/sst_avhrr_mb_l3u.yaml.j2 b/observations/marine/sst_avhrr_mb_l3u.yaml.j2 deleted file mode 100644 index 63f847a..0000000 --- a/observations/marine/sst_avhrr_mb_l3u.yaml.j2 +++ /dev/null @@ -1,56 +0,0 @@ -- obs space: - name: {{observation_from_jcb}} - obsdatain: - engine: - type: H5File - obsfile: "{{marine_obsdatain_path}}/{{marine_obsdatain_prefix}}{{observation_from_jcb}}{{marine_obsdatain_suffix}}" - obsdataout: - engine: - type: H5File - obsfile: "{{marine_obsdataout_path}}/{{marine_obsdataout_prefix}}{{observation_from_jcb}}{{marine_obsdataout_suffix}}" - simulated variables: [seaSurfaceTemperature] - io pool: - max pool size: 1 - get values: - time interpolation: linear - obs operator: - name: Identity - observation alias file: obsop_name_map.yaml - obs error: - covariance model: diagonal - obs filters: - - filter: Domain Check - where: - - variable: {name: GeoVaLs/sea_area_fraction} - minvalue: 0.9 - - filter: Bounds Check - minvalue: 1.0 - maxvalue: 41.0 - - filter: Background Check - absolute threshold: 5.0 - - filter: Domain Check - where: - - variable: {name: ObsError/seaSurfaceTemperature} - minvalue: 1.0e-8 - - filter: Domain Check - where: - - variable: { name: GeoVaLs/sea_ice_area_fraction} - maxvalue: 1.0e-5 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/sea_surface_temperature} - minvalue: -1.0 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/distance_from_coast} - minvalue: 100e3 - - filter: Perform Action - action: - name: assign error - error function: - name: ObsFunction/LinearCombination - options: - variables: - - ObsError/seaSurfaceTemperature - coefs: - - 1.0 diff --git a/observations/marine/sst_avhrr_mb_l3u.yaml.j2 b/observations/marine/sst_avhrr_mb_l3u.yaml.j2 new file mode 120000 index 0000000..5298b9a --- /dev/null +++ b/observations/marine/sst_avhrr_mb_l3u.yaml.j2 @@ -0,0 +1 @@ +sst_generic.yaml.j2 \ No newline at end of file diff --git a/observations/marine/sst_avhrr_mc_l3u.yaml.j2 b/observations/marine/sst_avhrr_mc_l3u.yaml.j2 deleted file mode 100644 index 63f847a..0000000 --- a/observations/marine/sst_avhrr_mc_l3u.yaml.j2 +++ /dev/null @@ -1,56 +0,0 @@ -- obs space: - name: {{observation_from_jcb}} - obsdatain: - engine: - type: H5File - obsfile: "{{marine_obsdatain_path}}/{{marine_obsdatain_prefix}}{{observation_from_jcb}}{{marine_obsdatain_suffix}}" - obsdataout: - engine: - type: H5File - obsfile: "{{marine_obsdataout_path}}/{{marine_obsdataout_prefix}}{{observation_from_jcb}}{{marine_obsdataout_suffix}}" - simulated variables: [seaSurfaceTemperature] - io pool: - max pool size: 1 - get values: - time interpolation: linear - obs operator: - name: Identity - observation alias file: obsop_name_map.yaml - obs error: - covariance model: diagonal - obs filters: - - filter: Domain Check - where: - - variable: {name: GeoVaLs/sea_area_fraction} - minvalue: 0.9 - - filter: Bounds Check - minvalue: 1.0 - maxvalue: 41.0 - - filter: Background Check - absolute threshold: 5.0 - - filter: Domain Check - where: - - variable: {name: ObsError/seaSurfaceTemperature} - minvalue: 1.0e-8 - - filter: Domain Check - where: - - variable: { name: GeoVaLs/sea_ice_area_fraction} - maxvalue: 1.0e-5 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/sea_surface_temperature} - minvalue: -1.0 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/distance_from_coast} - minvalue: 100e3 - - filter: Perform Action - action: - name: assign error - error function: - name: ObsFunction/LinearCombination - options: - variables: - - ObsError/seaSurfaceTemperature - coefs: - - 1.0 diff --git a/observations/marine/sst_avhrr_mc_l3u.yaml.j2 b/observations/marine/sst_avhrr_mc_l3u.yaml.j2 new file mode 120000 index 0000000..5298b9a --- /dev/null +++ b/observations/marine/sst_avhrr_mc_l3u.yaml.j2 @@ -0,0 +1 @@ +sst_generic.yaml.j2 \ No newline at end of file diff --git a/observations/marine/sst_generic.yaml.j2 b/observations/marine/sst_generic.yaml.j2 new file mode 100644 index 0000000..30754a0 --- /dev/null +++ b/observations/marine/sst_generic.yaml.j2 @@ -0,0 +1,46 @@ +- obs space: + name: {{observation_from_jcb}} + obsdatain: + engine: + type: H5File + obsfile: "{{marine_obsdatain_path}}/{{marine_obsdatain_prefix}}{{observation_from_jcb}}{{marine_obsdatain_suffix}}" + obsdataout: + engine: + type: H5File + obsfile: "{{marine_obsdataout_path}}/{{marine_obsdataout_prefix}}{{observation_from_jcb}}{{marine_obsdataout_suffix}}" + simulated variables: [seaSurfaceTemperature] + io pool: + max pool size: 1 + get values: + time interpolation: linear + obs operator: + name: Identity + observation alias file: obsop_name_map.yaml + obs error: + covariance model: diagonal + obs filters: + - filter: Domain Check + where: + - variable: {name: GeoVaLs/sea_area_fraction} + minvalue: 0.9 + - filter: Bounds Check + minvalue: -1.2 + maxvalue: 41.0 + - filter: Background Check + absolute threshold: 5.0 + - filter: Domain Check + where: + - variable: {name: ObsError/seaSurfaceTemperature} + minvalue: 1.0e-8 + - filter: Domain Check + where: + - variable: { name: GeoVaLs/sea_ice_area_fraction} + maxvalue: 1.0e-5 + - filter: Domain Check + where: + - variable: {name: GeoVaLs/sea_surface_temperature} + minvalue: -1.2 + - filter: Domain Check + where: + - variable: {name: GeoVaLs/distance_from_coast} + minvalue: 50e3 diff --git a/observations/marine/sst_viirs_n20_l3u.yaml.j2 b/observations/marine/sst_viirs_n20_l3u.yaml.j2 deleted file mode 100644 index 63f847a..0000000 --- a/observations/marine/sst_viirs_n20_l3u.yaml.j2 +++ /dev/null @@ -1,56 +0,0 @@ -- obs space: - name: {{observation_from_jcb}} - obsdatain: - engine: - type: H5File - obsfile: "{{marine_obsdatain_path}}/{{marine_obsdatain_prefix}}{{observation_from_jcb}}{{marine_obsdatain_suffix}}" - obsdataout: - engine: - type: H5File - obsfile: "{{marine_obsdataout_path}}/{{marine_obsdataout_prefix}}{{observation_from_jcb}}{{marine_obsdataout_suffix}}" - simulated variables: [seaSurfaceTemperature] - io pool: - max pool size: 1 - get values: - time interpolation: linear - obs operator: - name: Identity - observation alias file: obsop_name_map.yaml - obs error: - covariance model: diagonal - obs filters: - - filter: Domain Check - where: - - variable: {name: GeoVaLs/sea_area_fraction} - minvalue: 0.9 - - filter: Bounds Check - minvalue: 1.0 - maxvalue: 41.0 - - filter: Background Check - absolute threshold: 5.0 - - filter: Domain Check - where: - - variable: {name: ObsError/seaSurfaceTemperature} - minvalue: 1.0e-8 - - filter: Domain Check - where: - - variable: { name: GeoVaLs/sea_ice_area_fraction} - maxvalue: 1.0e-5 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/sea_surface_temperature} - minvalue: -1.0 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/distance_from_coast} - minvalue: 100e3 - - filter: Perform Action - action: - name: assign error - error function: - name: ObsFunction/LinearCombination - options: - variables: - - ObsError/seaSurfaceTemperature - coefs: - - 1.0 diff --git a/observations/marine/sst_viirs_n20_l3u.yaml.j2 b/observations/marine/sst_viirs_n20_l3u.yaml.j2 new file mode 120000 index 0000000..5298b9a --- /dev/null +++ b/observations/marine/sst_viirs_n20_l3u.yaml.j2 @@ -0,0 +1 @@ +sst_generic.yaml.j2 \ No newline at end of file diff --git a/observations/marine/sst_viirs_npp_l3u.yaml.j2 b/observations/marine/sst_viirs_npp_l3u.yaml.j2 deleted file mode 100644 index 63f847a..0000000 --- a/observations/marine/sst_viirs_npp_l3u.yaml.j2 +++ /dev/null @@ -1,56 +0,0 @@ -- obs space: - name: {{observation_from_jcb}} - obsdatain: - engine: - type: H5File - obsfile: "{{marine_obsdatain_path}}/{{marine_obsdatain_prefix}}{{observation_from_jcb}}{{marine_obsdatain_suffix}}" - obsdataout: - engine: - type: H5File - obsfile: "{{marine_obsdataout_path}}/{{marine_obsdataout_prefix}}{{observation_from_jcb}}{{marine_obsdataout_suffix}}" - simulated variables: [seaSurfaceTemperature] - io pool: - max pool size: 1 - get values: - time interpolation: linear - obs operator: - name: Identity - observation alias file: obsop_name_map.yaml - obs error: - covariance model: diagonal - obs filters: - - filter: Domain Check - where: - - variable: {name: GeoVaLs/sea_area_fraction} - minvalue: 0.9 - - filter: Bounds Check - minvalue: 1.0 - maxvalue: 41.0 - - filter: Background Check - absolute threshold: 5.0 - - filter: Domain Check - where: - - variable: {name: ObsError/seaSurfaceTemperature} - minvalue: 1.0e-8 - - filter: Domain Check - where: - - variable: { name: GeoVaLs/sea_ice_area_fraction} - maxvalue: 1.0e-5 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/sea_surface_temperature} - minvalue: -1.0 - - filter: Domain Check - where: - - variable: {name: GeoVaLs/distance_from_coast} - minvalue: 100e3 - - filter: Perform Action - action: - name: assign error - error function: - name: ObsFunction/LinearCombination - options: - variables: - - ObsError/seaSurfaceTemperature - coefs: - - 1.0 diff --git a/observations/marine/sst_viirs_npp_l3u.yaml.j2 b/observations/marine/sst_viirs_npp_l3u.yaml.j2 new file mode 120000 index 0000000..5298b9a --- /dev/null +++ b/observations/marine/sst_viirs_npp_l3u.yaml.j2 @@ -0,0 +1 @@ +sst_generic.yaml.j2 \ No newline at end of file diff --git a/observations/snow/adpsfc_snow.yaml.j2 b/observations/snow/adpsfc_snow.yaml.j2 index f0fe2fd..6298cc0 100644 --- a/observations/snow/adpsfc_snow.yaml.j2 +++ b/observations/snow/adpsfc_snow.yaml.j2 @@ -8,6 +8,7 @@ engine: type: H5File obsfile: "{{snow_obsdatain_path}}/{{snow_obsdatain_prefix}}{{observation_from_jcb}}{{snow_obsdatain_suffix}}" + missing file action: warn obsdataout: engine: type: H5File diff --git a/observations/snow/ghcn_snow.yaml.j2 b/observations/snow/ghcn_snow.yaml.j2 index ea7a956..b825e79 100644 --- a/observations/snow/ghcn_snow.yaml.j2 +++ b/observations/snow/ghcn_snow.yaml.j2 @@ -8,6 +8,7 @@ engine: type: H5File obsfile: "{{snow_obsdatain_path}}/{{snow_obsdatain_prefix}}{{observation_from_jcb}}.nc" + missing file action: warn obsdataout: engine: type: H5File diff --git a/observations/snow/sfcsno.yaml.j2 b/observations/snow/sfcsno.yaml.j2 index ce44417..31c8785 100644 --- a/observations/snow/sfcsno.yaml.j2 +++ b/observations/snow/sfcsno.yaml.j2 @@ -9,6 +9,7 @@ type: bufr obsfile: "{{snow_obsdatain_path}}/{{snow_obsdatain_prefix}}sfcsno.tm00.bufr_d" mapping file: "{{snow_obsdatain_path}}/bufr_sfcsno_mapping.yaml" + missing file action: warn obsdataout: engine: type: H5File diff --git a/observations/snow/snocvr_snow.yaml.j2 b/observations/snow/snocvr_snow.yaml.j2 index fe73587..c38da08 100644 --- a/observations/snow/snocvr_snow.yaml.j2 +++ b/observations/snow/snocvr_snow.yaml.j2 @@ -8,6 +8,7 @@ engine: type: H5File obsfile: "{{snow_obsdatain_path}}/{{snow_obsdatain_prefix}}{{observation_from_jcb}}.nc4" + missing file action: warn obsdataout: engine: type: H5File diff --git a/test/client_integration/gdas-marine-templates.yaml b/test/client_integration/gdas-marine-templates.yaml index f258cc9..238b4a8 100644 --- a/test/client_integration/gdas-marine-templates.yaml +++ b/test/client_integration/gdas-marine-templates.yaml @@ -1,7 +1,6 @@ # This part is for testing only. Normally this would just show algorithm: # ----------------------------------------------------------------------------------- supported_algorithms: -- 3dvar - hofx3d - hofx4d - 3dfgat