From 3c6673d5c6bb254e05d3a5c858944d9d368d0dbc Mon Sep 17 00:00:00 2001 From: PJLevensMO <115472778+PJLevensMO@users.noreply.github.com> Date: Tue, 16 Jul 2024 13:37:52 +0100 Subject: [PATCH] Add namelist and ctest files/yamls for SEVIRI UKV (#214) * Add CX and VarObs files for SEVIRI UKV * Add test data for SEVIRI UKV * Update unit test python script for SEVIRI UKV, and add newly generated nc4 files for SEVIRIASR and SEVIRIClr * Upate test CMakeList to actually run SEVIRI UKV tests * Remove old `is_not_defined:` syntax in ctests * Mistaken syntax fix * Remove extra test from SEVIRI and update values * Sorting out ctests * Fix lats * fix lons * Fix lats, missed "" before * Fix obs source --------- Co-authored-by: Matt Shin --- etc/ukv/cx/SEVIRIASR.nl | 3 + etc/ukv/cx/SEVIRIClr.nl | 3 + etc/ukv/varobs/SEVIRIASR.nl | 3 + etc/ukv/varobs/SEVIRIClr.nl | 3 + test/CMakeLists.txt | 16 +++++ test/generate_unittest_netcdfs.py | 36 +++++++++++ test/testinput/cx_ukvnamelist_seviriasr.nc4 | Bin 0 -> 15960 bytes test/testinput/cx_ukvnamelist_seviriclr.nc4 | Bin 0 -> 15960 bytes .../cxwriter_ukvnamelist_seviriasr.yaml | 36 +++++++++++ .../cxwriter_ukvnamelist_seviriclr.yaml | 36 +++++++++++ .../varobs_ukvnamelist_seviriasr.nc4 | Bin 0 -> 18513 bytes .../varobs_ukvnamelist_seviriclr.nc4 | Bin 0 -> 18513 bytes .../varobswriter_ukvnamelist_seviriasr.yaml | 58 ++++++++++++++++++ .../varobswriter_ukvnamelist_seviriclr.yaml | 58 ++++++++++++++++++ 14 files changed, 252 insertions(+) create mode 100644 etc/ukv/cx/SEVIRIASR.nl create mode 100644 etc/ukv/cx/SEVIRIClr.nl create mode 100644 etc/ukv/varobs/SEVIRIASR.nl create mode 100644 etc/ukv/varobs/SEVIRIClr.nl create mode 100644 test/testinput/cx_ukvnamelist_seviriasr.nc4 create mode 100644 test/testinput/cx_ukvnamelist_seviriclr.nc4 create mode 100644 test/testinput/cxwriter_ukvnamelist_seviriasr.yaml create mode 100644 test/testinput/cxwriter_ukvnamelist_seviriclr.yaml create mode 100644 test/testinput/varobs_ukvnamelist_seviriasr.nc4 create mode 100644 test/testinput/varobs_ukvnamelist_seviriclr.nc4 create mode 100644 test/testinput/varobswriter_ukvnamelist_seviriasr.yaml create mode 100644 test/testinput/varobswriter_ukvnamelist_seviriclr.yaml diff --git a/etc/ukv/cx/SEVIRIASR.nl b/etc/ukv/cx/SEVIRIASR.nl new file mode 100644 index 00000000..7e3c5a63 --- /dev/null +++ b/etc/ukv/cx/SEVIRIASR.nl @@ -0,0 +1,3 @@ +&CXControlNL +CxFields=4,10,12,24,31,33,254,266,267,268,407,409,3209,3210,3236,3245,16222 +/ diff --git a/etc/ukv/cx/SEVIRIClr.nl b/etc/ukv/cx/SEVIRIClr.nl new file mode 100644 index 00000000..7e3c5a63 --- /dev/null +++ b/etc/ukv/cx/SEVIRIClr.nl @@ -0,0 +1,3 @@ +&CXControlNL +CxFields=4,10,12,24,31,33,254,266,267,268,407,409,3209,3210,3236,3245,16222 +/ diff --git a/etc/ukv/varobs/SEVIRIASR.nl b/etc/ukv/varobs/SEVIRIASR.nl new file mode 100644 index 00000000..1c3a2959 --- /dev/null +++ b/etc/ukv/varobs/SEVIRIASR.nl @@ -0,0 +1,3 @@ +&VarobsControlNL +Varfields=10,11,18,19,21,28,31,34,54,55,80 +/ diff --git a/etc/ukv/varobs/SEVIRIClr.nl b/etc/ukv/varobs/SEVIRIClr.nl new file mode 100644 index 00000000..1c3a2959 --- /dev/null +++ b/etc/ukv/varobs/SEVIRIClr.nl @@ -0,0 +1,3 @@ +&VarobsControlNL +Varfields=10,11,18,19,21,28,31,34,54,55,80 +/ diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index cd69bf8d..15a47e07 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -356,6 +356,14 @@ ADD_WRITER_TEST(NAME varobswriter_globalnamelist_aircraft # Tests the UKV namelist files in the etc directory +ADD_WRITER_TEST(NAME varobswriter_ukvnamelist_seviviasr + YAML varobswriter_ukvnamelist_seviriasr.yaml + NAMELIST ../../etc/ukv/varobs/SEVIRIASR.nl + DATA varobs_ukvnamelist_seviriasr.nc4) +ADD_WRITER_TEST(NAME varobswriter_ukvnamelist_seviviclr + YAML varobswriter_ukvnamelist_seviriclr.yaml + NAMELIST ../../etc/ukv/varobs/SEVIRIClr.nl + DATA varobs_ukvnamelist_seviriclr.nc4) ADD_WRITER_TEST(NAME varobswriter_ukvnamelist_sonde YAML varobswriter_ukvnamelist_sonde.yaml NAMELIST ../../etc/ukv/varobs/Sonde.nl @@ -662,6 +670,14 @@ ADD_WRITER_TEST(NAME cxwriter_globalnamelist_screen # Tests the ukv namelist files in the etc directory +ADD_WRITER_TEST(NAME cxwriter_ukvnamelist_seviriasr + YAML cxwriter_ukvnamelist_seviriasr.yaml + NAMELIST ../../etc/ukv/cx/SEVIRIASR.nl + DATA cx_ukvnamelist_seviriasr.nc4 dummy.nc4) +ADD_WRITER_TEST(NAME cxwriter_ukvnamelist_seviriclr + YAML cxwriter_ukvnamelist_seviriclr.yaml + NAMELIST ../../etc/ukv/cx/SEVIRIClr.nl + DATA cx_ukvnamelist_seviriclr.nc4 dummy.nc4) ADD_WRITER_TEST(NAME cxwriter_ukvnamelist_sonde YAML cxwriter_ukvnamelist_sonde.yaml NAMELIST ../../etc/ukv/cx/Sonde.nl diff --git a/test/generate_unittest_netcdfs.py b/test/generate_unittest_netcdfs.py index 2915876b..518097c5 100644 --- a/test/generate_unittest_netcdfs.py +++ b/test/generate_unittest_netcdfs.py @@ -853,6 +853,26 @@ def copy_var_to_var(Group, invarname, outvarname, filename): ['MetaData/surfaceQualifier', 'MetaData/satelliteIdentifier'], 'testinput/varobs_globalnamelist_seviriclr.nc4') + # SEVIRIClr UKV + output_full_varobs_to_netcdf(['MetaData/latitude', 'MetaData/longitude', 'OneDVar/skinTemperature', 'MetaData/sensorZenithAngle', + 'MetaData/solarZenithAngle', 'Emiss/emissivityIR', 'MetaData/ozoneTotal'], + ['ObsValue/brightnessTemperature', 'ObsError/brightnessTemperature', + 'BiasCorrObsValue/brightnessTemperature', 'thickness_850_300hPa_satid_13Predictor/brightnessTemperature', + 'thickness_850_300hPa_satid_17Predictor/brightnessTemperature', + 'ObsValue/cloud_amount', 'ObsValue/cloud_top_temperature', 'ObsValue/lower_layer_pressure'], + ['MetaData/surfaceQualifier', 'MetaData/satelliteIdentifier'], + 'testinput/varobs_ukvnamelist_seviriclr.nc4') + + # SEVIRIASR UKV + output_full_varobs_to_netcdf(['MetaData/latitude', 'MetaData/longitude', 'OneDVar/skinTemperature', 'MetaData/sensorZenithAngle', + 'MetaData/solarZenithAngle', 'Emiss/emissivityIR', 'MetaData/ozoneTotal'], + ['ObsValue/brightnessTemperature', 'ObsError/brightnessTemperature', + 'BiasCorrObsValue/brightnessTemperature', 'thickness_850_300hPa_satid_13Predictor/brightnessTemperature', + 'thickness_850_300hPa_satid_17Predictor/brightnessTemperature', + 'ObsValue/cloud_amount', 'ObsValue/cloud_top_temperature', 'ObsValue/lower_layer_pressure'], + ['MetaData/surfaceQualifier', 'MetaData/satelliteIdentifier'], + 'testinput/varobs_ukvnamelist_seviriasr.nc4') + # Aircraft output_full_varobs_to_netcdf(['MetaData/latitude', 'MetaData/longitude', @@ -1057,6 +1077,22 @@ def copy_var_to_var(Group, invarname, outvarname, filename): 'cloud_volume_fraction_in_atmosphere_layer', 'liquid_cloud_volume_fraction_in_atmosphere_layer', 'ice_cloud_volume_fraction_in_atmosphere_layer'], 'testinput/cx_globalnamelist_seviriclr.nc4') + # SEVIRIClr UKV + output_full_cx_to_netcdf(['skin_temperature', 'ice_area_fraction', 'surface_altitude', 'surface_pressure', 'uwind_at_10m', + 'vwind_at_10m', 'surface_temperature', 'relative_humidity_2m', 'surface_pressure_at_mean_sea_level'], + ['potential_temperature', 'specific_humidity', 'mass_content_of_cloud_ice_in_atmosphere_layer', + 'mass_content_of_cloud_liquid_water_in_atmosphere_layer', 'air_pressure_levels', + 'cloud_volume_fraction_in_atmosphere_layer', 'liquid_cloud_volume_fraction_in_atmosphere_layer', 'ice_cloud_volume_fraction_in_atmosphere_layer'], + 'testinput/cx_ukvnamelist_seviriclr.nc4') + + # SEVIRIASR UKV + output_full_cx_to_netcdf(['skin_temperature', 'ice_area_fraction', 'surface_altitude', 'surface_pressure', 'uwind_at_10m', + 'vwind_at_10m', 'surface_temperature', 'relative_humidity_2m', 'surface_pressure_at_mean_sea_level'], + ['potential_temperature', 'specific_humidity', 'mass_content_of_cloud_ice_in_atmosphere_layer', + 'mass_content_of_cloud_liquid_water_in_atmosphere_layer', 'air_pressure_levels', + 'cloud_volume_fraction_in_atmosphere_layer', 'liquid_cloud_volume_fraction_in_atmosphere_layer', 'ice_cloud_volume_fraction_in_atmosphere_layer'], + 'testinput/cx_ukvnamelist_seviriasr.nc4') + # GroundGPS output_full_cx_to_netcdf(['skin_temperature', 'ice_area_fraction', 'surface_altitude', 'surface_pressure', 'uwind_at_10m', 'vwind_at_10m', 'surface_temperature', 'relative_humidity_2m'], diff --git a/test/testinput/cx_ukvnamelist_seviriasr.nc4 b/test/testinput/cx_ukvnamelist_seviriasr.nc4 new file mode 100644 index 0000000000000000000000000000000000000000..2cef2914cb92948f4319764e3c7bd3d06608cc15 GIT binary patch literal 15960 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 literal 0 HcmV?d00001 diff --git a/test/testinput/cx_ukvnamelist_seviriclr.nc4 b/test/testinput/cx_ukvnamelist_seviriclr.nc4 new file mode 100644 index 0000000000000000000000000000000000000000..2cef2914cb92948f4319764e3c7bd3d06608cc15 GIT binary patch literal 15960 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 literal 0 HcmV?d00001 diff --git a/test/testinput/cxwriter_ukvnamelist_seviriasr.yaml b/test/testinput/cxwriter_ukvnamelist_seviriasr.yaml new file mode 100644 index 00000000..b57b9322 --- /dev/null +++ b/test/testinput/cxwriter_ukvnamelist_seviriasr.yaml @@ -0,0 +1,36 @@ +time window: + begin: 2018-01-01T00:00:00Z + end: 2018-01-01T01:00:00Z + +observations: + - obs space: + name: SEVIRIASR + obsdatain: + engine: + type: H5File + obsfile: Data/dummy.nc4 + simulated variables: [dummy] + geovals: + filename: Data/cx_ukvnamelist_seviriasr.nc4 + obs filters: + # Set the flag of observations with missing values to "pass": we want to check if these + # values are encoded correctly in the Cx file. + - filter: Reset Flags to Pass + flags_to_reset: [10, 15] # missing, Hfailed + - filter: Cx Writer + namelist_directory: ../etc/ukv/cx + reject_obs_with_any_variable_failing_qc: true + general_mode: debug + IC_PLevels: 5 + - filter: Cx Checker + expected_surface_variables: ["1","2","3","4","5","6","13","16","17"] + expected_upper_air_variables: ["1","5","11","29","30","31","34","35"] + expected_main_table_columns: + - # batch 1 - 9 1dvalues first ; then 2d values in expected order + - ["27.10","37.10","67.10","77.10","47.10","57.10","7.10","87.10","17.10","1.10","1.20","1.30","11.10","11.20","11.30","41.10","41.20","41.30","21.10","21.20","21.30","31.10","31.20","31.30","51.10","51.20","51.30","71.10","71.20","71.30","61.10","61.20","61.30"] # column 1 - 1st observation + - ["**********","**********","**********","**********","**********","**********","**********","**********","**********","2.10","**********","2.30","12.10","**********","12.30","42.10","**********","42.30","22.10","**********","22.30","32.10","**********","32.30","52.10","**********","52.30","72.10","**********","72.30","62.10","**********","62.30"] # column 2 - 2nd observation + - ["27.30","37.30","67.30","77.30","47.30","57.30","7.30","87.30","17.30","3.10","3.20","3.30","13.10","13.20","13.30","43.10","43.20","43.30","23.10","23.20","23.30","33.10","33.20","33.30","53.10","53.20","53.30","73.10","73.20","73.30","63.10","63.20","63.30"] # column3 - observation 3 + - ["27.40","37.40","67.40","77.40","47.40","57.40","7.40","87.40","17.40","4.10","4.20","4.30","14.10","14.20","14.30","44.10","44.20","44.30","24.10","24.20","24.30","34.10","34.20","34.30","54.10","54.20","54.30","74.10","74.20","74.30","64.10","64.20","64.30"] # column4 - observation 4 + HofX: ObsValue # just a placeholder -- not used, but needed to force calls to postFilter. + benchmarkFlag: 1000 # just to keep the ObsFilters test happy + flaggedBenchmark: 0 diff --git a/test/testinput/cxwriter_ukvnamelist_seviriclr.yaml b/test/testinput/cxwriter_ukvnamelist_seviriclr.yaml new file mode 100644 index 00000000..35fa9dca --- /dev/null +++ b/test/testinput/cxwriter_ukvnamelist_seviriclr.yaml @@ -0,0 +1,36 @@ +time window: + begin: 2018-01-01T00:00:00Z + end: 2018-01-01T01:00:00Z + +observations: + - obs space: + name: SEVIRIClr + obsdatain: + engine: + type: H5File + obsfile: Data/dummy.nc4 + simulated variables: [dummy] + geovals: + filename: Data/cx_ukvnamelist_seviriclr.nc4 + obs filters: + # Set the flag of observations with missing values to "pass": we want to check if these + # values are encoded correctly in the Cx file. + - filter: Reset Flags to Pass + flags_to_reset: [10, 15] # missing, Hfailed + - filter: Cx Writer + namelist_directory: ../etc/ukv/cx + reject_obs_with_any_variable_failing_qc: true + general_mode: debug + IC_PLevels: 5 + - filter: Cx Checker + expected_surface_variables: ["1","2","3","4","5","6","13","16","17"] + expected_upper_air_variables: ["1","5","11","29","30","31","34","35"] + expected_main_table_columns: + - # batch 1 - 9 1dvalues first ; then 2d values in expected order + - ["27.10","37.10","67.10","77.10","47.10","57.10","7.10","87.10","17.10","1.10","1.20","1.30","11.10","11.20","11.30","41.10","41.20","41.30","21.10","21.20","21.30","31.10","31.20","31.30","51.10","51.20","51.30","71.10","71.20","71.30","61.10","61.20","61.30"] # column 1 - 1st observation + - ["**********","**********","**********","**********","**********","**********","**********","**********","**********","2.10","**********","2.30","12.10","**********","12.30","42.10","**********","42.30","22.10","**********","22.30","32.10","**********","32.30","52.10","**********","52.30","72.10","**********","72.30","62.10","**********","62.30"] # column 2 - 2nd observation + - ["27.30","37.30","67.30","77.30","47.30","57.30","7.30","87.30","17.30","3.10","3.20","3.30","13.10","13.20","13.30","43.10","43.20","43.30","23.10","23.20","23.30","33.10","33.20","33.30","53.10","53.20","53.30","73.10","73.20","73.30","63.10","63.20","63.30"] # column3 - observation 3 + - ["27.40","37.40","67.40","77.40","47.40","57.40","7.40","87.40","17.40","4.10","4.20","4.30","14.10","14.20","14.30","44.10","44.20","44.30","24.10","24.20","24.30","34.10","34.20","34.30","54.10","54.20","54.30","74.10","74.20","74.30","64.10","64.20","64.30"] # column4 - observation 4 + HofX: ObsValue # just a placeholder -- not used, but needed to force calls to postFilter. + benchmarkFlag: 1000 # just to keep the ObsFilters test happy + flaggedBenchmark: 0 diff --git a/test/testinput/varobs_ukvnamelist_seviriasr.nc4 b/test/testinput/varobs_ukvnamelist_seviriasr.nc4 new file mode 100644 index 0000000000000000000000000000000000000000..025e7058deb1c08ab1b4f3e4383bfcc7c3bd0d2c GIT binary patch literal 18513 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 J$N$OO@;|{#UcmqW literal 0 HcmV?d00001 diff --git a/test/testinput/varobs_ukvnamelist_seviriclr.nc4 b/test/testinput/varobs_ukvnamelist_seviriclr.nc4 new file mode 100644 index 0000000000000000000000000000000000000000..025e7058deb1c08ab1b4f3e4383bfcc7c3bd0d2c GIT binary patch literal 18513 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 J$N$OO@;|{#UcmqW literal 0 HcmV?d00001 diff --git a/test/testinput/varobswriter_ukvnamelist_seviriasr.yaml b/test/testinput/varobswriter_ukvnamelist_seviriasr.yaml new file mode 100644 index 00000000..b624e530 --- /dev/null +++ b/test/testinput/varobswriter_ukvnamelist_seviriasr.yaml @@ -0,0 +1,58 @@ +time window: + begin: 2018-01-01T00:00:00Z + end: 2018-01-01T02:00:00Z + +observations: +# This ob space shows what happens if the following are left as defaults +# reject_obs_with_all_variables_failing_qc: false +# reject_obs_with_any_variables_failing_qc: false +# This means that despite the blacklist the entries still end up in the varobs file + - obs space: + name: SEVIRIASR + obsdatain: + engine: + type: H5File + obsfile: Data/varobs_ukvnamelist_seviriasr.nc4 + simulated variables: [brightnessTemperature] + channels: 1, 3 + obs filters: + # Set the flag of observations with missing values to "pass": we want to check if these + # values are encoded correctly in the VarObsFile. + - filter: Reset Flags to Pass + flags_to_reset: [10, 15] # missing, Hfailed + # Reject observation 3: the blacklist doesn't stop the ob getting into the varobs because of the above "bad" settings + - filter: BlackList + where: + - variable: + name: MetaData/latitude + value: is_not_valid + - filter: VarObs Writer + namelist_directory: ../etc/ukv/varobs + general_mode: debug + - filter: VarObs Checker + expected_main_table_columns: + # Only channels 1 and 3 are simulated and hence written to the VarObs file. + # In the arrays below, rows denote locations and columns are the varobs channels are consecutive. + field: ["10","10","11","18","19","21","28","31","34","54","55","55","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80", + "10","10","11","18","19","21","28","31","34","54","55","55","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80", + "10","10","11","18","19","21","28","31","34","54","55","55","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80", + "10","10","11","18","19","21","28","31","34","54","55","55","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80"] + level: ["1","2","1","1","1","1","1","1","1","1","1","2","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31", + "1","2","1","1","1","1","1","1","1","1","1","2","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31", + "1","2","1","1","1","1","1","1","1","1","1","2","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31", + "1","2","1","1","1","1","1","1","1","1","1","2","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"] + ob value: ["21.10000","21.30000","27.10000","67.10000","37.10000","3.00000","13.00000","47.10000","57.10000","2.00000","1.00000","2.00000","0.00000","72.20000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000", + "22.10000","22.30000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-32768.00000","-32768.00000","-1073741824.00000","-1073741824.00000","0.00000","0.00000","0.00000","0.00000","74.20000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000", + "23.10000","23.30000","27.30000","67.30000","37.30000","7.00000","17.00000","47.30000","57.30000","2.00000","1.00000","2.00000","0.00000","76.20000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000", + "24.10000","24.30000","27.40000","67.40000","37.40000","9.00000","19.00000","47.40000","57.40000","2.00000","1.00000","2.00000","0.00000","78.20000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000"] + lat: ["7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000", + "-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000", + "7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000", + "7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000"] + lon: ["17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000", + "-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000", + "17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000", + "17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000"] + HofX: ObsValue # just a placeholder -- not used, but needed to force calls to postFilter. + benchmarkFlag: 1000 # just to keep the ObsFilters test happy + flaggedBenchmark: 0 diff --git a/test/testinput/varobswriter_ukvnamelist_seviriclr.yaml b/test/testinput/varobswriter_ukvnamelist_seviriclr.yaml new file mode 100644 index 00000000..808b1034 --- /dev/null +++ b/test/testinput/varobswriter_ukvnamelist_seviriclr.yaml @@ -0,0 +1,58 @@ +time window: + begin: 2018-01-01T00:00:00Z + end: 2018-01-01T02:00:00Z + +observations: +# This ob space shows what happens if the following are left as defaults +# reject_obs_with_all_variables_failing_qc: false +# reject_obs_with_any_variables_failing_qc: false +# This means that despite the blacklist the entries still end up in the varobs file + - obs space: + name: SEVIRIClr + obsdatain: + engine: + type: H5File + obsfile: Data/varobs_ukvnamelist_seviriclr.nc4 + simulated variables: [brightnessTemperature] + channels: 1, 3 + obs filters: + # Set the flag of observations with missing values to "pass": we want to check if these + # values are encoded correctly in the VarObsFile. + - filter: Reset Flags to Pass + flags_to_reset: [10, 15] # missing, Hfailed + # Reject observation 3: the blacklist doesn't stop the ob getting into the varobs because of the above "bad" settings + - filter: BlackList + where: + - variable: + name: MetaData/latitude + value: is_not_valid + - filter: VarObs Writer + namelist_directory: ../etc/ukv/varobs + general_mode: debug + - filter: VarObs Checker + expected_main_table_columns: + # Only channels 1 and 3 are simulated and hence written to the VarObs file. + # In the arrays below, rows denote locations and columns are the varobs channels are consecutive. + field: ["10","10","11","18","19","21","28","31","34","54","55","55","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80", + "10","10","11","18","19","21","28","31","34","54","55","55","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80", + "10","10","11","18","19","21","28","31","34","54","55","55","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80", + "10","10","11","18","19","21","28","31","34","54","55","55","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80","80"] + level: ["1","2","1","1","1","1","1","1","1","1","1","2","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31", + "1","2","1","1","1","1","1","1","1","1","1","2","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31", + "1","2","1","1","1","1","1","1","1","1","1","2","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31", + "1","2","1","1","1","1","1","1","1","1","1","2","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"] + ob value: ["21.10000","21.30000","27.10000","67.10000","37.10000","3.00000","13.00000","47.10000","57.10000","2.00000","1.00000","2.00000","0.00000","72.20000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000", + "22.10000","22.30000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-32768.00000","-32768.00000","-1073741824.00000","-1073741824.00000","0.00000","0.00000","0.00000","0.00000","74.20000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000", + "23.10000","23.30000","27.30000","67.30000","37.30000","7.00000","17.00000","47.30000","57.30000","2.00000","1.00000","2.00000","0.00000","76.20000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000", + "24.10000","24.30000","27.40000","67.40000","37.40000","9.00000","19.00000","47.40000","57.40000","2.00000","1.00000","2.00000","0.00000","78.20000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000","0.00000"] + lat: ["7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000","7.10000", + "-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000", + "7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000","7.30000", + "7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000","7.40000"] + lon: ["17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000","17.10000", + "-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000","-1073741824.00000", + "17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000","17.30000", + "17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000","17.40000"] + HofX: ObsValue # just a placeholder -- not used, but needed to force calls to postFilter. + benchmarkFlag: 1000 # just to keep the ObsFilters test happy + flaggedBenchmark: 0