From bd5701221379c6d55a5197b633289e7280c47fa1 Mon Sep 17 00:00:00 2001 From: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Thu, 4 Jan 2024 16:22:51 -0500 Subject: [PATCH 1/3] make bufr2ioda_subpfl_argo_profiles.py an executable file (#795) @emilyhcliu found that permission restrictions on `bufr2ioda_subpfl_argo_profiles.py` prevent it from being executed. [`feature/chmod`](https://github.com/NOAA-EMC/GDASApp/tree/feature/chmod) was created and the file permissions changed so that `bufr2ioda_subpfl_argo_profiles.py` is executable. Fixes #788 --- ush/ioda/bufr2ioda/bufr2ioda_subpfl_argo_profiles.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 ush/ioda/bufr2ioda/bufr2ioda_subpfl_argo_profiles.py diff --git a/ush/ioda/bufr2ioda/bufr2ioda_subpfl_argo_profiles.py b/ush/ioda/bufr2ioda/bufr2ioda_subpfl_argo_profiles.py old mode 100644 new mode 100755 From a4a3f459f0e7d595e1258d091e7d96fda2c5fcbe Mon Sep 17 00:00:00 2001 From: Jiarui Dong Date: Fri, 5 Jan 2024 14:10:30 -0500 Subject: [PATCH 2/3] Manage the YAML files into the explicit filter ordering. (#790) - The UFO filters are rearranged by using the explicit filter ordering with `obs pre filters`, `obs prior filters` and `obs post filters` options. - Add `Temporal Thinning filter` into the `obs post filters` section and and arrange it after the `Background Check filter` and before the `Buddy check filter`. - Rename the IMS IODA file name and copy it into the `rundir/obs` directory for the late use in the snow analysis in the global workflow (https://github.com/NOAA-EMC/global-workflow/pull/2033). Co-authored-by: Cory Martin --- parm/land/obs/config/adpsfc_snow.yaml | 37 +++++++++++++---------- parm/land/obs/config/snocvr_snow.yaml | 43 ++++++++++++++------------- parm/land/prep/prep_ims.yaml | 2 +- 3 files changed, 45 insertions(+), 37 deletions(-) diff --git a/parm/land/obs/config/adpsfc_snow.yaml b/parm/land/obs/config/adpsfc_snow.yaml index a7c08eb74..d1403bad5 100644 --- a/parm/land/obs/config/adpsfc_snow.yaml +++ b/parm/land/obs/config/adpsfc_snow.yaml @@ -26,7 +26,22 @@ obs localizations: max nobs: 50 - localization method: Vertical Brasnett vertical lengthscale: 700 -obs filters: +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 @@ -57,12 +72,18 @@ obs filters: 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: '{{ LAND_WINDOW_LENGTH }}' + seed_time: '{{ current_cycle | to_isotime }}' + category_variable: + name: MetaData/stationIdentification - filter: Met Office Buddy Check filter variables: - name: totalSnowDepth @@ -86,18 +107,4 @@ obs filters: damping_factor_1: 1.0 damping_factor_2: 1.0 background_error_group: BkgError - - 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 diff --git a/parm/land/obs/config/snocvr_snow.yaml b/parm/land/obs/config/snocvr_snow.yaml index 3dade008b..9d25f9302 100644 --- a/parm/land/obs/config/snocvr_snow.yaml +++ b/parm/land/obs/config/snocvr_snow.yaml @@ -26,7 +26,22 @@ obs localizations: max nobs: 50 - localization method: Vertical Brasnett vertical lengthscale: 700 -obs filters: +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 @@ -51,17 +66,18 @@ obs filters: name: GeoVaLs/vtype minvalue: 14.5 maxvalue: 15.5 - - filter: Temporal Thinning - min_spacing: '{{ LAND_WINDOW_LENGTH }}' - seed_time: '{{ current_cycle | to_isotime }}' - category_variable: - name: MetaData/stationIdentification +obs post filters: - filter: Background Check # gross error check filter variables: - name: totalSnowDepth threshold: 6.25 action: name: reject + - filter: Temporal Thinning + min_spacing: '{{ LAND_WINDOW_LENGTH }}' + seed_time: '{{ current_cycle | to_isotime }}' + category_variable: + name: MetaData/stationIdentification - filter: Met Office Buddy Check filter variables: - name: totalSnowDepth @@ -85,18 +101,3 @@ obs filters: damping_factor_1: 1.0 damping_factor_2: 1.0 background_error_group: BkgError - - 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 - diff --git a/parm/land/prep/prep_ims.yaml b/parm/land/prep/prep_ims.yaml index 23b0feb38..d37d58a44 100644 --- a/parm/land/prep/prep_ims.yaml +++ b/parm/land/prep/prep_ims.yaml @@ -6,5 +6,5 @@ calcfims: - [$(COM_OBS)/$(OPREFIX)IMS4km_to_FV3_mapping.$(CASE)_oro_data.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.nc4] From 69b1eb49ffa6738b4772d34e68d1f0cb05b1ce1e Mon Sep 17 00:00:00 2001 From: Jiarui Dong Date: Fri, 5 Jan 2024 14:21:17 -0500 Subject: [PATCH 3/3] Feature/landda ci (#839) This PR is prepared for https://github.com/NOAA-EMC/global-workflow/pull/2199 --- parm/land/obs/config/adpsfc_snow.yaml | 2 +- parm/land/obs/config/snocvr_snow.yaml | 2 +- parm/land/prep/prep_gts.yaml | 3 --- test/testinput/bufr_adpsfc_snow.yaml | 6 +++--- test/testinput/bufr_snocvr_snow.yaml | 6 +++--- 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/parm/land/obs/config/adpsfc_snow.yaml b/parm/land/obs/config/adpsfc_snow.yaml index d1403bad5..963ed2e68 100644 --- a/parm/land/obs/config/adpsfc_snow.yaml +++ b/parm/land/obs/config/adpsfc_snow.yaml @@ -52,7 +52,7 @@ obs prior filters: - filter: Domain Check where: - variable: - name: MetaData/height + name: MetaData/stationElevation minvalue: -999.0 - filter: Domain Check # land only where: diff --git a/parm/land/obs/config/snocvr_snow.yaml b/parm/land/obs/config/snocvr_snow.yaml index 9d25f9302..12f20dde7 100644 --- a/parm/land/obs/config/snocvr_snow.yaml +++ b/parm/land/obs/config/snocvr_snow.yaml @@ -52,7 +52,7 @@ obs prior filters: - filter: Domain Check where: - variable: - name: MetaData/height + name: MetaData/stationElevation minvalue: -999.0 - filter: Domain Check # land only where: diff --git a/parm/land/prep/prep_gts.yaml b/parm/land/prep/prep_gts.yaml index 0f138e8e2..5d96fefda 100644 --- a/parm/land/prep/prep_gts.yaml +++ b/parm/land/prep/prep_gts.yaml @@ -3,11 +3,8 @@ gtsbufr: - $(DATA)/obs copy: - [{{ COM_OBS }}/{{ OPREFIX }}adpsfc.tm00.bufr_d, {{ DATA }}/obs/] - - [{{ COM_OBS }}/{{ OPREFIX }}snocvr.tm00.bufr_d, {{ DATA }}/obs/] gtsioda: copy: - [{{ DATA }}/{{ OPREFIX }}adpsfc_snow.nc4, {{ COM_OBS }}/{{ OPREFIX }}adpsfc_snow.nc4] - - [{{ DATA }}/{{ OPREFIX }}snocvr_snow.nc4, {{ COM_OBS }}/{{ OPREFIX }}snocvr_snow.nc4] bufr2ioda: adpsfc: {{ HOMEgfs }}/sorc/gdas.cd/test/testinput/bufr_adpsfc_snow.yaml - snocvr: {{ HOMEgfs }}/sorc/gdas.cd/test/testinput/bufr_snocvr_snow.yaml diff --git a/test/testinput/bufr_adpsfc_snow.yaml b/test/testinput/bufr_adpsfc_snow.yaml index 250e0fd62..32a1950fa 100644 --- a/test/testinput/bufr_adpsfc_snow.yaml +++ b/test/testinput/bufr_adpsfc_snow.yaml @@ -24,7 +24,7 @@ observations: stationIdentification: query: "*/RPID" - height: + stationElevation: query: "[*/SELV, */HSMSL]" # ObsValue @@ -64,9 +64,9 @@ observations: units: "degree_east" range: [-180, 180] - - name: "MetaData/height" + - name: "MetaData/stationElevation" coordinates: "longitude latitude" - source: variables/height + source: variables/stationElevation longName: "Height of Station" - name: "MetaData/stationIdentification" diff --git a/test/testinput/bufr_snocvr_snow.yaml b/test/testinput/bufr_snocvr_snow.yaml index 5c2c803e2..3ffe00c8f 100644 --- a/test/testinput/bufr_snocvr_snow.yaml +++ b/test/testinput/bufr_snocvr_snow.yaml @@ -24,7 +24,7 @@ observations: stationIdentification: query: "*/WGOSLID" - height: + stationElevation: query: "[*/SELV, */HSMSL]" # ObsValue @@ -64,9 +64,9 @@ observations: units: "degree_east" range: [-180, 180] - - name: "MetaData/height" + - name: "MetaData/stationElevation" coordinates: "longitude latitude" - source: variables/height + source: variables/stationElevation longName: "Height of Station" - name: "MetaData/stationIdentification"