diff --git a/deps/ops/code/OpsMod_Control/Ops_ReadObsGroupSwitches.inc b/deps/ops/code/OpsMod_Control/Ops_ReadObsGroupSwitches.inc index adf4a139..8e67f568 100644 --- a/deps/ops/code/OpsMod_Control/Ops_ReadObsGroupSwitches.inc +++ b/deps/ops/code/OpsMod_Control/Ops_ReadObsGroupSwitches.inc @@ -67,6 +67,8 @@ Using(ObsGroupAIRS) = ops_env_is_true ("OPS_AIRS") Using(ObsGroupIASI) = ops_env_is_true ("OPS_IASI") Using(ObsGroupSEVIRIClr) = ops_env_is_true ("OPS_SEVIRICLR") Using(ObsGroupSEVIRIASR) = ops_env_is_true ("OPS_SEVIRIASR") +Using(ObsGroupFCIClr) = ops_env_is_true ("OPS_FCICLR") +Using(ObsGroupFCIASR) = ops_env_is_true ("OPS_FCIASR") Using(ObsGroupMVIRIClr) = ops_env_is_true ("OPS_MVIRICLR") Using(ObsGroupGOESImClr) = ops_env_is_true ("OPS_GOESIMCLR") Using(ObsGroupCOMSMIClr) = ops_env_is_true ("OPS_COMSMICLR") diff --git a/deps/ops/stubs/OpsMod_CXGenerate/Ops_GetDefaultCxFields.inc b/deps/ops/stubs/OpsMod_CXGenerate/Ops_GetDefaultCxFields.inc index a9177775..7ade9517 100644 --- a/deps/ops/stubs/OpsMod_CXGenerate/Ops_GetDefaultCxFields.inc +++ b/deps/ops/stubs/OpsMod_CXGenerate/Ops_GetDefaultCxFields.inc @@ -120,6 +120,12 @@ SELECT CASE (ObsGroup) StashItem_SeaIce,StashItem_orog,StashItem_qcl, & StashItem_p,StashItem_p_Surface,StashCode_u10, & StashCode_v10,StashCode_t2,StashCode_rh2,StashCode_pmsl/) + CASE (ObsGroupFCIASR, ObsGroupFCIClr) + CxFields(1:15) = (/StashItem_theta,StashItem_q,StashItem_qcf,StashItem_SST, & + StashItem_SeaIce,StashItem_orog,StashItem_qcl, & + StashItem_p,StashItem_p_Surface,StashCode_u10, & + StashCode_v10,StashCode_t2,StashCode_rh2,StashCode_pmsl, & + StashItem_Cloud_Bulk/) CASE (ObsGroupMWRI) CxFields(1:14) = (/StashItem_theta,StashItem_q,StashItem_qcf,StashItem_SST, & StashItem_SeaIce,StashItem_orog,StashItem_qcl, & diff --git a/deps/ops/stubs/OpsMod_ODB/OpsFn_ObsToReportType.inc b/deps/ops/stubs/OpsMod_ODB/OpsFn_ObsToReportType.inc index 469bf17f..96d15311 100644 --- a/deps/ops/stubs/OpsMod_ODB/OpsFn_ObsToReportType.inc +++ b/deps/ops/stubs/OpsMod_ODB/OpsFn_ObsToReportType.inc @@ -105,6 +105,7 @@ USE OpsMod_Satids, ONLY: & SatId_Meteosat9, & SatId_Meteosat10, & SatId_Meteosat11, & + SatId_Meteosat12, & SatId_MetopA, & SatId_MetopB, & SatId_MetopC, & @@ -419,6 +420,25 @@ SELECT CASE (Obs % Header % ObsGroup) END IF CASE (ObsGroupCOMSMIClr) report_types = rep_type_kma_geos_rad + CASE (ObsGroupFCIClr, ObsGroupFCIASR) + IF (Obs % Header % Satid % Present) THEN + DO i = ob_start, ob_end + IF (Obs % Satid(i) == SatId_Meteosat12) THEN + report_types(i - ob_start + 1) = rep_type_meteosat_12_geos_rad + ELSE + found_report_type = .FALSE. + DO j = 1, SIZE (map, DIM = 1) + IF ((map(j,1) == ObsGroupFCIClr .AND. map(j,2) == Obs % Satid(i)) .OR. & + (map(j,1) == ObsGroupFCIASR .AND. map(j,2) == Obs % Satid(i))) THEN + report_types(i - ob_start + 1) = map(j,3) + found_report_type = .TRUE. + EXIT + END IF + END DO + CALL update_unrecognized_satids (Obs % Satid(i)) + END IF + END DO + END IF CASE (ObsGroupMWSFY3B) report_types = rep_type_fy3b CASE (ObsGroupGeoCloud) diff --git a/deps/ops/stubs/OpsMod_ODB/OpsODB_InitODBElemDesp_Body.inc b/deps/ops/stubs/OpsMod_ODB/OpsODB_InitODBElemDesp_Body.inc index 95a2e925..0a08b6cc 100644 --- a/deps/ops/stubs/OpsMod_ODB/OpsODB_InitODBElemDesp_Body.inc +++ b/deps/ops/stubs/OpsMod_ODB/OpsODB_InitODBElemDesp_Body.inc @@ -53,6 +53,7 @@ USE OpsMod_ObsGroupInfo, ONLY: & ObsGroupSurfaceCloud, & ObsGroupTOVS, & OpsFn_IsAHIGroup, & + OpsFn_IsFCIGroup, & OpsFn_IsSEVIRIGroup USE OpsMod_Index @@ -590,6 +591,28 @@ IF (OpsFn_IsAHIGroup(ObsGroup) .OR. & ElemDesp2ODBDesp(IndexAHIBrightnessTemp) % also_do_levels(1:5) = (/1,43,43,1,1/) END IF +ElemDesp2ODBDesp(IndexFCICloudTopT) % TableName = 'body' +ElemDesp2ODBDesp(IndexFCICloudTopT) % ColName = 'initial_obsvalue' +ElemDesp2ODBDesp(IndexFCICloudTopT) % Varno = ops_odb_getval (h, "$cloud_top_temp") + +IF (OpsFn_IsFCIGroup(ObsGroup) .OR. & + (ObsGroup == ObsGroupGeoCloud .AND. OpsFn_IsFCIGroup (SrcObsGroupGeoCloud))) THEN + ElemDesp2ODBDesp(IndexFCIBrightnessTemp) % TableName = 'body' + ElemDesp2ODBDesp(IndexFCIBrightnessTemp) % ColName = 'initial_obsvalue' + ElemDesp2ODBDesp(IndexFCIBrightnessTemp) % Varno = ops_odb_getval (h, "$rawbt") ! brightness temperature + + ElemDesp2ODBDesp(IndexFCICloudFree) % TableName = 'body' + ElemDesp2ODBDesp(IndexFCICloudFree) % ColName = 'initial_obsvalue' + ElemDesp2ODBDesp(IndexFCICloudFree) % Varno = ops_odb_getval (h, "$cloud_frac_clear") + + ElemDesp2ODBDesp(IndexFCIBrightnessTemp) % also_do(1:5) = (/IndexSkinTemperature, & + IndexRH, & + IndexTemp, & + IndexRH2, & + IndexT2/) + ElemDesp2ODBDesp(IndexFCIBrightnessTemp) % also_do_levels(1:5) = (/1,43,43,1,1/) +END IF + IF (ObsGroup == ObsGroupMTSATImClr) THEN ElemDesp2ODBDesp(IndexMTSATImBrightnessTemp) % TableName = 'body' ElemDesp2ODBDesp(IndexMTSATImBrightnessTemp) % ColName = 'initial_obsvalue' diff --git a/deps/ops/stubs/OpsMod_Varobs/Ops_GetDefaultVarfields.inc b/deps/ops/stubs/OpsMod_Varobs/Ops_GetDefaultVarfields.inc index 61eeacc7..3e0a6a62 100644 --- a/deps/ops/stubs/OpsMod_Varobs/Ops_GetDefaultVarfields.inc +++ b/deps/ops/stubs/OpsMod_Varobs/Ops_GetDefaultVarfields.inc @@ -108,6 +108,11 @@ SELECT CASE (ObsGroup) IF (.NOT. RTTOV_CloudSwitch) THEN Varfields(13:14) = (/Varfield_cloudtopp, Varfield_cloudfrac/) END IF + CASE (ObsGroupFCIASR, ObsGroupFCIClr) + Varfields(1:12) = (/Varfield_britemp,Varfield_satid,Varfield_satzenith, & + Varfield_solzenith,Varfield_tskin,Varfield_tcozone, & + Varfield_surface,Varfield_numchans,Varfield_channum, & + Varfield_stratt,Varfield_iremiss,Varfield_qcinfo/) CASE (ObsGroupHIRAS) Varfields(1:12) = (/Varfield_tskin,Varfield_tcozone,Varfield_satzenith, & Varfield_surface,Varfield_stratt,Varfield_satid, & diff --git a/deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsLevDepC.inc b/deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsLevDepC.inc index 06189652..08477207 100644 --- a/deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsLevDepC.inc +++ b/deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsLevDepC.inc @@ -48,6 +48,8 @@ USE OpsMod_ObsGroupInfo, ONLY: & ObsGroupGPSRO, & ObsGroupSEVIRIClr, & ObsGroupSEVIRIASR, & + ObsGroupFCIClr, & + ObsGroupFCIASR, & ObsGroupMVIRIClr, & ObsGroupGOESImClr, & ObsGroupMTSATImClr, & @@ -181,6 +183,11 @@ SELECT CASE (Observations % header % ObsGroup) ObsLevelType = 0.0 NumLevelLevs = 1 + CASE (ObsGroupFCIClr, ObsGroupFCIASR) + + ObsLevelType = 0.0 + NumLevelLevs = 1 + CASE (ObsGroupSAPHIR) ObsLevelType = 0.0 diff --git a/deps/ops/stubs/Ops_Constants/OpsFn_ASRToClrGeoGroup.inc b/deps/ops/stubs/Ops_Constants/OpsFn_ASRToClrGeoGroup.inc index daa82d2f..66a019d9 100644 --- a/deps/ops/stubs/Ops_Constants/OpsFn_ASRToClrGeoGroup.inc +++ b/deps/ops/stubs/Ops_Constants/OpsFn_ASRToClrGeoGroup.inc @@ -16,6 +16,8 @@ INTEGER :: OpsFn_ASRToClrGeoGroup SELECT CASE (obsgroup) CASE (ObsGroupAHIASR) OpsFn_ASRToClrGeoGroup = ObsGroupAHIClr + CASE (ObsGroupFCIASR) + OpsFn_ASRToClrGeoGroup = ObsGroupFCIClr CASE (ObsGroupSEVIRIASR) OpsFn_ASRToClrGeoGroup = ObsGroupSEVIRIClr CASE DEFAULT diff --git a/deps/ops/stubs/Ops_Constants/OpsFn_IsClrGeoGroup.inc b/deps/ops/stubs/Ops_Constants/OpsFn_IsClrGeoGroup.inc index e3a714ae..3cf0683c 100644 --- a/deps/ops/stubs/Ops_Constants/OpsFn_IsClrGeoGroup.inc +++ b/deps/ops/stubs/Ops_Constants/OpsFn_IsClrGeoGroup.inc @@ -16,6 +16,7 @@ LOGICAL :: OpsFn_IsClrGeoGroup IF (obsgroup == ObsGroupABIClr .OR. & obsgroup == ObsGroupAHIClr .OR. & obsgroup == ObsGroupCOMSMIClr .OR. & + obsgroup == ObsGroupFCIClr .OR. & obsgroup == ObsGroupGOESImClr .OR. & obsgroup == ObsGroupIN3DIClr .OR. & obsgroup == ObsGroupMTSATImClr .OR. & diff --git a/deps/ops/stubs/Ops_Constants/OpsFn_IsFCIGroup.inc b/deps/ops/stubs/Ops_Constants/OpsFn_IsFCIGroup.inc new file mode 100644 index 00000000..ea10c445 --- /dev/null +++ b/deps/ops/stubs/Ops_Constants/OpsFn_IsFCIGroup.inc @@ -0,0 +1,23 @@ +!------------------------------------------------------------------------------- +! (C) Crown copyright Met Office. All rights reserved. +!------------------------------------------------------------------------------- +! Function that returns .TRUE. if given obs group is a FCI obs group, false +! if not. +!------------------------------------------------------------------------------- + +ELEMENTAL FUNCTION OpsFn_IsFCIGroup (obsgroup) + +! Function arguments: +INTEGER, INTENT(IN) :: obsgroup + +! Function result: +LOGICAL :: OpsFn_IsFCIGroup + +IF (obsgroup == ObsGroupFCIClr .OR. & + obsgroup == ObsGroupFCIASR) THEN + OpsFn_IsFCIGroup = .TRUE. +ELSE + OpsFn_IsFCIGroup = .FALSE. +END IF + +END FUNCTION OpsFn_IsFCIGroup diff --git a/deps/ops/stubs/Ops_Constants/OpsFn_IsSatRadGroup.inc b/deps/ops/stubs/Ops_Constants/OpsFn_IsSatRadGroup.inc index 9549637b..9ca977b3 100644 --- a/deps/ops/stubs/Ops_Constants/OpsFn_IsSatRadGroup.inc +++ b/deps/ops/stubs/Ops_Constants/OpsFn_IsSatRadGroup.inc @@ -24,6 +24,8 @@ IF (obsgroup == ObsGroupABIClr .OR. & obsgroup == ObsGroupTOVS .OR. & obsgroup == ObsGroupCOMSMIClr .OR. & obsgroup == ObsGroupCRIS .OR. & + obsgroup == ObsGroupFCIClr .OR. & + obsgroup == ObsGroupFCIASR .OR. & obsgroup == ObsGroupHIRAS .OR. & obsgroup == ObsGroupGeoCloud .OR. & obsgroup == ObsGroupGOESImClr .OR. & diff --git a/deps/ops/stubs/Ops_Constants/OpsFn_ObsGroupNameToNum.inc b/deps/ops/stubs/Ops_Constants/OpsFn_ObsGroupNameToNum.inc index 7f3e5704..d7ac8a95 100644 --- a/deps/ops/stubs/Ops_Constants/OpsFn_ObsGroupNameToNum.inc +++ b/deps/ops/stubs/Ops_Constants/OpsFn_ObsGroupNameToNum.inc @@ -44,6 +44,10 @@ SELECT CASE (ObsGroupName) OpsFn_ObsGroupNameToNum = ObsGroupCOMSMIClr CASE ("CrIS") OpsFn_ObsGroupNameToNum = ObsGroupCrIS + CASE ("FCIASR") + OpsFn_ObsGroupNameToNum = ObsGroupFCIASR + CASE ("FCIClr") + OpsFn_ObsGroupNameToNum = ObsGroupFCIClr CASE ("HIRAS") OpsFn_ObsGroupNameToNum = ObsGroupHIRAS CASE ("MWSFY3B") diff --git a/deps/ops/stubs/Ops_Constants/OpsFn_ObsGroupNumToName.inc b/deps/ops/stubs/Ops_Constants/OpsFn_ObsGroupNumToName.inc index adf2eb2a..cb399a7b 100644 --- a/deps/ops/stubs/Ops_Constants/OpsFn_ObsGroupNumToName.inc +++ b/deps/ops/stubs/Ops_Constants/OpsFn_ObsGroupNumToName.inc @@ -45,6 +45,10 @@ SELECT CASE (ObsGroup) OpsFn_ObsGroupNumToName = "COMSMIClr" CASE (ObsGroupCrIS) OpsFn_ObsGroupNumToName = "CrIS" + CASE (ObsGroupFCIASR) + OpsFn_ObsGroupNumToName = "FCIASR" + CASE (ObsGroupFCIClr) + OpsFn_ObsGroupNumToName = "FCIClr" CASE (ObsGroupMWSFY3B) OpsFn_ObsGroupNumToName = "MWSFY3B" CASE (ObsGroupGeoCloud) diff --git a/deps/ops/stubs/Ops_Constants/OpsMod_ObsGroupInfo.f90 b/deps/ops/stubs/Ops_Constants/OpsMod_ObsGroupInfo.f90 index 1282e76e..d5ae4603 100644 --- a/deps/ops/stubs/Ops_Constants/OpsMod_ObsGroupInfo.f90 +++ b/deps/ops/stubs/Ops_Constants/OpsMod_ObsGroupInfo.f90 @@ -73,13 +73,16 @@ MODULE OpsMod_ObsGroupInfo INTEGER, PARAMETER :: ObsGroupGIIRSLW = 62 ! => GIIRS LW radiances INTEGER, PARAMETER :: ObsGroupGIIRSMW = 63 ! => GIIRS MW radiances INTEGER, PARAMETER :: ObsGroupScatwindChosen = 64 ! => Scatterometer winds (single solution) -INTEGER, PARAMETER :: max_obs_group_num = 64 ! Number of observation groups +INTEGER, PARAMETER :: ObsGroupFCIASR = 65 ! => FCI all-sky radiances +INTEGER, PARAMETER :: ObsGroupFCIClr = 66 ! => FCI clear-sky radiances +INTEGER, PARAMETER :: max_obs_group_num = 66 ! Number of observation groups CONTAINS INCLUDE 'OpsFn_ASRToClrGeoGroup.inc' INCLUDE 'OpsFn_IsSatRadGroup.inc' INCLUDE 'OpsFn_IsAHIGroup.inc' +INCLUDE 'OpsFn_IsFCIGroup.inc' INCLUDE 'OpsFn_IsSEVIRIGroup.inc' INCLUDE 'OpsFn_IsASRGeoGroup.inc' INCLUDE 'OpsFn_IsClrGeoGroup.inc' diff --git a/deps/ops/stubs/Ops_Constants/OpsMod_ObsTypes.f90 b/deps/ops/stubs/Ops_Constants/OpsMod_ObsTypes.f90 index 015a43ae..108a951c 100644 --- a/deps/ops/stubs/Ops_Constants/OpsMod_ObsTypes.f90 +++ b/deps/ops/stubs/Ops_Constants/OpsMod_ObsTypes.f90 @@ -244,6 +244,8 @@ MODULE OpsMod_ObsTypes ! MSGCTP data for UK area INTEGER, PARAMETER :: ObsTypeSEVIRICTPFD = 24680 ! => SEVIRI AUTOSAT ! MSGCTP data for full disc +INTEGER, PARAMETER :: ObsTypeFCIEUMASR = 24690 ! => FCI EUMETSAT radiance from ASR product +INTEGER, PARAMETER :: ObsTypeFCIAUTOUK = 24691 ! => FCI AUTOSATradiance for UK area INTEGER, PARAMETER :: ObsTypeAIRSMS = 24700 ! => AIRS Clearest MODIS FOV INTEGER, PARAMETER :: ObsTypeWINDSAT = 24800 ! => WINDSAT BUFR INTEGER, PARAMETER :: ObsTypeAMSR2 = 25000 ! => AMSR2 radiances diff --git a/deps/ops/stubs/Ops_Constants/OpsMod_SatIds.f90 b/deps/ops/stubs/Ops_Constants/OpsMod_SatIds.f90 index 40feef2a..867e6053 100644 --- a/deps/ops/stubs/Ops_Constants/OpsMod_SatIds.f90 +++ b/deps/ops/stubs/Ops_Constants/OpsMod_SatIds.f90 @@ -35,6 +35,7 @@ MODULE OpsMod_SatIds INTEGER, PARAMETER :: SatId_Sentinel3A = 61 INTEGER, PARAMETER :: SatId_Sentinel3B = 65 INTEGER, PARAMETER :: SatId_Meteosat11 = 70 +INTEGER, PARAMETER :: SatId_Meteosat12 = 71 INTEGER, PARAMETER :: SatId_MSG3 = 73 INTEGER, PARAMETER :: SatId_GCOMW1 = 122 INTEGER, PARAMETER :: SatId_MTSAT1R = 171 diff --git a/deps/ops/stubs/Ops_Constants/Ops_SubTypeNameToNum.inc b/deps/ops/stubs/Ops_Constants/Ops_SubTypeNameToNum.inc index f2b1aee5..3a62e450 100644 --- a/deps/ops/stubs/Ops_Constants/Ops_SubTypeNameToNum.inc +++ b/deps/ops/stubs/Ops_Constants/Ops_SubTypeNameToNum.inc @@ -112,6 +112,10 @@ SELECT CASE (name) num = ObsTypeEsauwa CASE ("ESAUWI") num = ObsTypeESAUWI + CASE ("FCIASR") + num = ObsTypeFCIEUMASR + CASE ("FCIRADUK") + num = ObsTypeFCIAUTOUK CASE ("GAUGE") num = ObsTypeGauge CASE ("GHRSST") diff --git a/deps/ops/stubs/Ops_Constants/Ops_SubTypeNumToName.inc b/deps/ops/stubs/Ops_Constants/Ops_SubTypeNumToName.inc index 34730143..cdf01a5c 100644 --- a/deps/ops/stubs/Ops_Constants/Ops_SubTypeNumToName.inc +++ b/deps/ops/stubs/Ops_Constants/Ops_SubTypeNumToName.inc @@ -117,6 +117,10 @@ SELECT CASE (num) name = "ESAUWA" CASE (ObsTypeESAUWI) name = "ESAUWI" + CASE (ObsTypeFCIEUMASR) + name = "FCIASR" + CASE (ObsTypeFCIAUTOUK) + name = "FCIRADUK" CASE (ObsTypeGHRSST) name = "GHRSST" CASE (ObsTypeGIIRS) diff --git a/etc/global/cx/FCIClr.nl b/etc/global/cx/FCIClr.nl new file mode 100644 index 00000000..7e3c5a63 --- /dev/null +++ b/etc/global/cx/FCIClr.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/global/varobs/FCIClr.nl b/etc/global/varobs/FCIClr.nl new file mode 100644 index 00000000..1c3a2959 --- /dev/null +++ b/etc/global/varobs/FCIClr.nl @@ -0,0 +1,3 @@ +&VarobsControlNL +Varfields=10,11,18,19,21,28,31,34,54,55,80 +/ diff --git a/etc/ukv/cx/FCIASR.nl b/etc/ukv/cx/FCIASR.nl new file mode 100644 index 00000000..7e3c5a63 --- /dev/null +++ b/etc/ukv/cx/FCIASR.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/FCIClr.nl b/etc/ukv/cx/FCIClr.nl new file mode 100644 index 00000000..7e3c5a63 --- /dev/null +++ b/etc/ukv/cx/FCIClr.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/FCIASR.nl b/etc/ukv/varobs/FCIASR.nl new file mode 100644 index 00000000..1c3a2959 --- /dev/null +++ b/etc/ukv/varobs/FCIASR.nl @@ -0,0 +1,3 @@ +&VarobsControlNL +Varfields=10,11,18,19,21,28,31,34,54,55,80 +/ diff --git a/etc/ukv/varobs/FCIClr.nl b/etc/ukv/varobs/FCIClr.nl new file mode 100644 index 00000000..1c3a2959 --- /dev/null +++ b/etc/ukv/varobs/FCIClr.nl @@ -0,0 +1,3 @@ +&VarobsControlNL +Varfields=10,11,18,19,21,28,31,34,54,55,80 +/ diff --git a/test/testinput/cx_globalnamelist_fciclr.nc4 b/test/testinput/cx_globalnamelist_fciclr.nc4 new file mode 100644 index 00000000..1874bee8 Binary files /dev/null and b/test/testinput/cx_globalnamelist_fciclr.nc4 differ diff --git a/test/testinput/cx_ukvnamelist_fciasr.nc4 b/test/testinput/cx_ukvnamelist_fciasr.nc4 new file mode 100644 index 00000000..1874bee8 Binary files /dev/null and b/test/testinput/cx_ukvnamelist_fciasr.nc4 differ diff --git a/test/testinput/cx_ukvnamelist_fciclr.nc4 b/test/testinput/cx_ukvnamelist_fciclr.nc4 new file mode 100644 index 00000000..1874bee8 Binary files /dev/null and b/test/testinput/cx_ukvnamelist_fciclr.nc4 differ diff --git a/test/testinput/cxwriter_globalnamelist_fciclr.yaml b/test/testinput/cxwriter_globalnamelist_fciclr.yaml new file mode 100644 index 00000000..91f774f2 --- /dev/null +++ b/test/testinput/cxwriter_globalnamelist_fciclr.yaml @@ -0,0 +1,36 @@ +time window: + begin: 2018-01-01T00:00:00Z + end: 2018-01-01T01:00:00Z + +observations: + - obs space: + name: FCIClr + obsdatain: + engine: + type: H5File + obsfile: Data/dummy.nc4 + simulated variables: [dummy] + geovals: + filename: Data/cx_globalnamelist_fciclr.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/global/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_fciasr.yaml b/test/testinput/cxwriter_ukvnamelist_fciasr.yaml new file mode 100644 index 00000000..50c14a7f --- /dev/null +++ b/test/testinput/cxwriter_ukvnamelist_fciasr.yaml @@ -0,0 +1,36 @@ +time window: + begin: 2018-01-01T00:00:00Z + end: 2018-01-01T01:00:00Z + +observations: + - obs space: + name: FCIASR + obsdatain: + engine: + type: H5File + obsfile: Data/dummy.nc4 + simulated variables: [dummy] + geovals: + filename: Data/cx_ukvnamelist_fciasr.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_fciclr.yaml b/test/testinput/cxwriter_ukvnamelist_fciclr.yaml new file mode 100644 index 00000000..ba82c241 --- /dev/null +++ b/test/testinput/cxwriter_ukvnamelist_fciclr.yaml @@ -0,0 +1,36 @@ +time window: + begin: 2018-01-01T00:00:00Z + end: 2018-01-01T01:00:00Z + +observations: + - obs space: + name: FCIClr + obsdatain: + engine: + type: H5File + obsfile: Data/dummy.nc4 + simulated variables: [dummy] + geovals: + filename: Data/cx_ukvnamelist_fciclr.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_globalnamelist_fciclr.nc4 b/test/testinput/varobs_globalnamelist_fciclr.nc4 new file mode 100644 index 00000000..0f953d9c Binary files /dev/null and b/test/testinput/varobs_globalnamelist_fciclr.nc4 differ diff --git a/test/testinput/varobs_ukvnamelist_fciasr.nc4 b/test/testinput/varobs_ukvnamelist_fciasr.nc4 new file mode 100644 index 00000000..0f953d9c Binary files /dev/null and b/test/testinput/varobs_ukvnamelist_fciasr.nc4 differ diff --git a/test/testinput/varobs_ukvnamelist_fciclr.nc4 b/test/testinput/varobs_ukvnamelist_fciclr.nc4 new file mode 100644 index 00000000..0f953d9c Binary files /dev/null and b/test/testinput/varobs_ukvnamelist_fciclr.nc4 differ diff --git a/test/testinput/varobswriter_globalnamelist_fciclr.yaml b/test/testinput/varobswriter_globalnamelist_fciclr.yaml new file mode 100644 index 00000000..73188af2 --- /dev/null +++ b/test/testinput/varobswriter_globalnamelist_fciclr.yaml @@ -0,0 +1,106 @@ +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: FCIClr + obsdatain: + engine: + type: H5File + obsfile: Data/varobs_globalnamelist_fciclr.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 + is_not_defined: + - filter: VarObs Writer + namelist_directory: ../etc/global/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 +# This ob space shows what the atms behaviour should be +# reject_obs_with_all_variables_failing_qc: true +# reject_obs_with_any_variables_failing_qc: false + - obs space: + name: FCIClr + obsdatain: + engine: + type: H5File + obsfile: Data/varobs_globalnamelist_fciclr.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 2: we want to check if it is omitted from the VarObs file, as expected. + - filter: BlackList + where: + - variable: + name: MetaData/latitude + is_not_defined: + - filter: VarObs Writer + namelist_directory: ../etc/global/varobs + general_mode: debug + reject_obs_with_all_variables_failing_qc: true + - 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"] + 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"] + 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", + "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", + "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", + "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_fciasr.yaml b/test/testinput/varobswriter_ukvnamelist_fciasr.yaml new file mode 100644 index 00000000..3350330f --- /dev/null +++ b/test/testinput/varobswriter_ukvnamelist_fciasr.yaml @@ -0,0 +1,106 @@ +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: FCIASR + obsdatain: + engine: + type: H5File + obsfile: Data/varobs_ukvnamelist_fciasr.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 + is_not_defined: + - 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 +# This ob space shows what the atms behaviour should be +# reject_obs_with_all_variables_failing_qc: true +# reject_obs_with_any_variables_failing_qc: false + - obs space: + name: FCIASR + obsdatain: + engine: + type: H5File + obsfile: Data/varobs_ukvnamelist_fciasr.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 2: we want to check if it is omitted from the VarObs file, as expected. + - filter: BlackList + where: + - variable: + name: MetaData/latitude + is_not_defined: + - filter: VarObs Writer + namelist_directory: ../etc/ukv/varobs + general_mode: debug + reject_obs_with_all_variables_failing_qc: true + - 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"] + 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"] + 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", + "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", + "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", + "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_fciclr.yaml b/test/testinput/varobswriter_ukvnamelist_fciclr.yaml new file mode 100644 index 00000000..736cb00c --- /dev/null +++ b/test/testinput/varobswriter_ukvnamelist_fciclr.yaml @@ -0,0 +1,106 @@ +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: FCIClr + obsdatain: + engine: + type: H5File + obsfile: Data/varobs_ukvnamelist_fciclr.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 + is_not_defined: + - 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 +# This ob space shows what the atms behaviour should be +# reject_obs_with_all_variables_failing_qc: true +# reject_obs_with_any_variables_failing_qc: false + - obs space: + name: FCIClr + obsdatain: + engine: + type: H5File + obsfile: Data/varobs_ukvnamelist_fciclr.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 2: we want to check if it is omitted from the VarObs file, as expected. + - filter: BlackList + where: + - variable: + name: MetaData/latitude + is_not_defined: + - filter: VarObs Writer + namelist_directory: ../etc/ukv/varobs + general_mode: debug + reject_obs_with_all_variables_failing_qc: true + - 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"] + 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"] + 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", + "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", + "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", + "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