diff --git a/src/gnssro/gnssro_bufr2ioda.py b/src/gnssro/gnssro_bufr2ioda.py index d5427eb7a..5123b1a65 100644 --- a/src/gnssro/gnssro_bufr2ioda.py +++ b/src/gnssro/gnssro_bufr2ioda.py @@ -60,6 +60,10 @@ def main(args): else: obs_data = file_obs_data + if len(obs_data) == 0: + print('ERROR: no occultations to write out') + sys.exit() + # prepare global attributes we want to output in the file, # in addition to the ones already loaded in from the input file GlobalAttrs = {} @@ -180,14 +184,15 @@ def get_obs_data(bufr, profile_meta_data, record_number=None): bang_conf = codes_get_array(bufr, 'percentConfidence')[1:krepfac[0]+1] # len(bang) Out[19]: 1482 (krepfac * 6) -or- (krepfac * drepfac * 2 )` + # bits are in reverse order according to WMO GNSSRO bufr documentation # ! Bit 1=Non-nominal quality # ! Bit 3=Rising Occulation (1=rising; 0=setting) # ! Bit 4=Excess Phase non-nominal # ! Bit 5=Bending Angle non-nominal - i_non_nominal = get_normalized_bit(profile_meta_data['qualityFlag'], bit_index=1) - i_phase_non_nominal = get_normalized_bit(profile_meta_data['qualityFlag'], bit_index=4) - i_bang_non_nominal = get_normalized_bit(profile_meta_data['qualityFlag'], bit_index=5) - iasc = get_normalized_bit(profile_meta_data['qualityFlag'], bit_index=3) + i_non_nominal = get_normalized_bit(profile_meta_data['qualityFlag'], bit_index=(16-1)) + i_phase_non_nominal = get_normalized_bit(profile_meta_data['qualityFlag'], bit_index=(16-4)) + i_bang_non_nominal = get_normalized_bit(profile_meta_data['qualityFlag'], bit_index=(16-5)) + iasc = get_normalized_bit(profile_meta_data['qualityFlag'], bit_index=(16-3)) # print( " ... RO QC flags: %i %i %i %i" % (i_non_nominal, i_phase_non_nominal, i_bang_non_nominal, iasc) ) # exit if non-nominal profile diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 07f5d08f2..b9767e151 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -55,7 +55,7 @@ list( APPEND test_input testinput/aeronet_cad.dat testinput/aeronet_tab.dat testinput/imsscf_20191215_c48.nc - testinput/bfrPrf_C2E3.2020.349.21.26.R18_0001.0001_bufr + testinput/bfrPrf_C2E6.2021.214.12.00.G16_0001.0001_bufr testinput/SNDR_SNPP_ATMS_SAMPLE.nc4 testinput/glider.yaml testinput/godae_bgc_argo.nc @@ -112,7 +112,7 @@ list( APPEND test_output testoutput/ioda_global_vavh_l3_rt_s3a_20210930T18.nc testoutput/aeronet_aaod.nc testoutput/imsfv3_scf.nc - testoutput/gnssro_cosmic2_2020121500.nc4 + testoutput/gnssro_cosmic2_2021080212.nc4 testoutput/2021120600_atms_sdr.nc4 testoutput/godae_bgc_argo.nc testoutput/owp_snow_obs_dup_thin_err_fn.nc @@ -985,10 +985,10 @@ if(iodaconv_bufr_ENABLED) ARGS ${CMAKE_BINARY_DIR}/bin/iodaconv_comp.sh netcdf "${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/gnssro/gnssro_bufr2ioda.py - -d 2020121500 - -i testinput/bfrPrf_C2E3.2020.349.21.26.R18_0001.0001_bufr - -o testrun/gnssro_cosmic2_2020121500.nc4" - gnssro_cosmic2_2020121500.nc4 ${IODA_CONV_COMP_TOL_ZERO}) + -d 2021080212 + -i testinput/bfrPrf_C2E6.2021.214.12.00.G16_0001.0001_bufr + -o testrun/gnssro_cosmic2_2021080212.nc4" + gnssro_cosmic2_2021080212.nc4 ${IODA_CONV_COMP_TOL_ZERO}) ecbuild_add_test( TARGET test_iodaconv_bufr_buoy_wmo_bufr TYPE SCRIPT diff --git a/test/testinput/bfrPrf_C2E3.2020.349.21.26.R18_0001.0001_bufr b/test/testinput/bfrPrf_C2E3.2020.349.21.26.R18_0001.0001_bufr deleted file mode 100644 index b382e353d..000000000 Binary files a/test/testinput/bfrPrf_C2E3.2020.349.21.26.R18_0001.0001_bufr and /dev/null differ diff --git a/test/testinput/bfrPrf_C2E6.2021.214.12.00.G16_0001.0001_bufr b/test/testinput/bfrPrf_C2E6.2021.214.12.00.G16_0001.0001_bufr new file mode 100644 index 000000000..42203f9df Binary files /dev/null and b/test/testinput/bfrPrf_C2E6.2021.214.12.00.G16_0001.0001_bufr differ diff --git a/test/testoutput/gnssro_cosmic2_2020121500.nc4 b/test/testoutput/gnssro_cosmic2_2020121500.nc4 deleted file mode 100644 index 0c19a26ff..000000000 --- a/test/testoutput/gnssro_cosmic2_2020121500.nc4 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b8aac09e3e299a74dec87a788f614d724ff679e38f938bd691320e720784381c -size 52741 diff --git a/test/testoutput/gnssro_cosmic2_2021080212.nc4 b/test/testoutput/gnssro_cosmic2_2021080212.nc4 new file mode 100644 index 000000000..ec2663a6f --- /dev/null +++ b/test/testoutput/gnssro_cosmic2_2021080212.nc4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e60ddf5b10dbbaf12fb5d68d0bdd8cbf2f22defd13fa88678ac86df78641fe4 +size 52741