Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add FCI on Meteosat-12 varobs and CX namelists and test files #235

Open
wants to merge 10 commits into
base: develop
Choose a base branch
from
2 changes: 2 additions & 0 deletions deps/ops/code/OpsMod_Control/Ops_ReadObsGroupSwitches.inc
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
6 changes: 6 additions & 0 deletions deps/ops/stubs/OpsMod_CXGenerate/Ops_GetDefaultCxFields.inc
Original file line number Diff line number Diff line change
Expand Up @@ -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, &
Expand Down
20 changes: 20 additions & 0 deletions deps/ops/stubs/OpsMod_ODB/OpsFn_ObsToReportType.inc
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ USE OpsMod_Satids, ONLY: &
SatId_Meteosat9, &
SatId_Meteosat10, &
SatId_Meteosat11, &
SatId_Meteosat12, &
SatId_MetopA, &
SatId_MetopB, &
SatId_MetopC, &
Expand Down Expand Up @@ -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)
Expand Down
23 changes: 23 additions & 0 deletions deps/ops/stubs/OpsMod_ODB/OpsODB_InitODBElemDesp_Body.inc
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ USE OpsMod_ObsGroupInfo, ONLY: &
ObsGroupSurfaceCloud, &
ObsGroupTOVS, &
OpsFn_IsAHIGroup, &
OpsFn_IsFCIGroup, &
OpsFn_IsSEVIRIGroup

USE OpsMod_Index
Expand Down Expand Up @@ -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'
Expand Down
5 changes: 5 additions & 0 deletions deps/ops/stubs/OpsMod_Varobs/Ops_GetDefaultVarfields.inc
Original file line number Diff line number Diff line change
Expand Up @@ -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, &
Expand Down
7 changes: 7 additions & 0 deletions deps/ops/stubs/OpsMod_Varobs/Ops_SetupVarobsLevDepC.inc
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ USE OpsMod_ObsGroupInfo, ONLY: &
ObsGroupGPSRO, &
ObsGroupSEVIRIClr, &
ObsGroupSEVIRIASR, &
ObsGroupFCIClr, &
ObsGroupFCIASR, &
ObsGroupMVIRIClr, &
ObsGroupGOESImClr, &
ObsGroupMTSATImClr, &
Expand Down Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions deps/ops/stubs/Ops_Constants/OpsFn_ASRToClrGeoGroup.inc
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions deps/ops/stubs/Ops_Constants/OpsFn_IsClrGeoGroup.inc
Original file line number Diff line number Diff line change
Expand Up @@ -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. &
Expand Down
23 changes: 23 additions & 0 deletions deps/ops/stubs/Ops_Constants/OpsFn_IsFCIGroup.inc
Original file line number Diff line number Diff line change
@@ -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
2 changes: 2 additions & 0 deletions deps/ops/stubs/Ops_Constants/OpsFn_IsSatRadGroup.inc
Original file line number Diff line number Diff line change
Expand Up @@ -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. &
Expand Down
4 changes: 4 additions & 0 deletions deps/ops/stubs/Ops_Constants/OpsFn_ObsGroupNameToNum.inc
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
4 changes: 4 additions & 0 deletions deps/ops/stubs/Ops_Constants/OpsFn_ObsGroupNumToName.inc
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
5 changes: 4 additions & 1 deletion deps/ops/stubs/Ops_Constants/OpsMod_ObsGroupInfo.f90
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
2 changes: 2 additions & 0 deletions deps/ops/stubs/Ops_Constants/OpsMod_ObsTypes.f90
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions deps/ops/stubs/Ops_Constants/OpsMod_SatIds.f90
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions deps/ops/stubs/Ops_Constants/Ops_SubTypeNameToNum.inc
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
4 changes: 4 additions & 0 deletions deps/ops/stubs/Ops_Constants/Ops_SubTypeNumToName.inc
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 3 additions & 0 deletions etc/global/cx/FCIClr.nl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
&CXControlNL
CxFields=4,10,12,24,31,33,254,266,267,268,407,409,3209,3210,3236,3245,16222
/
3 changes: 3 additions & 0 deletions etc/global/varobs/FCIClr.nl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
&VarobsControlNL
Varfields=10,11,18,19,21,28,31,34,54,55,80
/
3 changes: 3 additions & 0 deletions etc/ukv/cx/FCIASR.nl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
&CXControlNL
CxFields=4,10,12,24,31,33,254,266,267,268,407,409,3209,3210,3236,3245,16222
/
3 changes: 3 additions & 0 deletions etc/ukv/cx/FCIClr.nl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
&CXControlNL
CxFields=4,10,12,24,31,33,254,266,267,268,407,409,3209,3210,3236,3245,16222
/
3 changes: 3 additions & 0 deletions etc/ukv/varobs/FCIASR.nl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
&VarobsControlNL
Varfields=10,11,18,19,21,28,31,34,54,55,80
/
3 changes: 3 additions & 0 deletions etc/ukv/varobs/FCIClr.nl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
&VarobsControlNL
Varfields=10,11,18,19,21,28,31,34,54,55,80
/
Binary file added test/testinput/cx_globalnamelist_fciclr.nc4
Binary file not shown.
Binary file added test/testinput/cx_ukvnamelist_fciasr.nc4
Binary file not shown.
Binary file added test/testinput/cx_ukvnamelist_fciclr.nc4
Binary file not shown.
36 changes: 36 additions & 0 deletions test/testinput/cxwriter_globalnamelist_fciclr.yaml
Original file line number Diff line number Diff line change
@@ -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
36 changes: 36 additions & 0 deletions test/testinput/cxwriter_ukvnamelist_fciasr.yaml
Original file line number Diff line number Diff line change
@@ -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
36 changes: 36 additions & 0 deletions test/testinput/cxwriter_ukvnamelist_fciclr.yaml
Original file line number Diff line number Diff line change
@@ -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
Binary file added test/testinput/varobs_globalnamelist_fciclr.nc4
Binary file not shown.
Binary file added test/testinput/varobs_ukvnamelist_fciasr.nc4
Binary file not shown.
Binary file added test/testinput/varobs_ukvnamelist_fciclr.nc4
Binary file not shown.
Loading
Loading