Opened 16 years ago

Closed 16 years ago

#139 closed defect (fixed)

PCD and BUFR flags

Reported by: Huw Lewis Owned by: Dave Offiler
Priority: normal Milestone: 2.0
Component: ropp_io Version: 1.1
Keywords: Cc: dave.offiler@…, ssy@…, kbl@…, huw.lewis@…

Description

Email from Kent:

During our validation testing we've spotted an apparent inconsistency
in ROPP and BUFR related to PCD bit 3 (see details below):
bit 3      0 (unset/clear)      1 (set/'flagged')
ROPP 1.1   rising               setting
ROPP 1.0   setting              rising
BUFR 1.9   setting              rising

With ROPP 1.0 the ROPP and BUFR definitions were consistent
but in ROPP 1.1 you've changed the definition of bit 3.
Wouldn't it be best if the ROPP and BUFR definitions very consistent?

Another thing: the variable names in ROPP are something
like PCD_phase_nominal (bit 4) with values defined such that:
PCD_phase_nominal == 0: this means that the phase is nominal
PCD_phase_nominal == 1: this means that the phase is non-nominal

So in the code one would have something like this:
IF (PCD_phase_nominal) THEN WRITE("The phase is non-nominal");

I think this can be logically very confusing and when writing some code
it could easily lead to programming errors. One could either use
a different variable name or swap the definitions in order to avoid
this logical confusion. Do you support to implement such a change?
 
Kent


---

Excerpts from ROPP and BUFR documents:


ROPP 1.1
========
Bit Variable Description Meaning if unset (0) set (1)
1 PCD nominal Quality               nominal   non–nominal
2 PCD NRT Product type              NRT       offline
3 PCD setting Occultation type      rising    setting

4 PCD phase nominal Excess phase processing nominal non–nominal
5 PCD bangle nominal Bending angle processing nominal non–nominal
6 PCD refrac nominal Refractivity processing nominal non–nominal
7 PCD met nominal Meteorological processing nominal non–nominal
8 PCD open loop Open Loop not used used
9 PCD reflection Surface reflections detected no yes
10 PCD l2 signal L2P or L2C GPS signal used L2P L2C
11 PCD reserved 11 Reserved
12 PCD reserved 12 Reserved
13 PCD reserved 13 Reserved
14 PCD bg nominal Background profile nominal non–nominal
15 PCD occultation Profile type observed background
16 PCD missing PCD missing; bits 1–15. . . valid invalid
Table 5.5: Product confidence data definition. PCD nominal is a summary bit
which shall be set
if any of Bits 4,5,6,7 or 14 is set. Note that the PCD * variables become
available by USE’ing the
module ropp io types.
-------------------------------------------------------


ROPP 1.0
========
Bit Variable Description Meaning if unset (0) set (1)
1 PCD nominal Quality               nominal   non–nominal
2 PCD NRT Product type              NRT       offline
3 PCD setting Occultation type      Setting   Rising

4 PCD phase nominal Excess phase processing nominal non–nominal
5 PCD bangle nominal Bending angle processing nominal non–nominal
6 PCD refrac nominal Refractivity processing nominal non–nominal
7 PCD met nominal Meteorological processing nominal non–nominal
8 –13 PCD reserved <nn> Reserved (<nn> = 08. . . 13)
14 PCD bg nominal Background profile nominal non–nominal
15 PCD occultation Profile type retrieved background
16 PCD missing PCD missing; bits 1–15. . . valid invalid
Table 5.5: Product confidence data definition. Note that the PCD * variables
become available by
use’ing one of the modules ropp io or ropp io types.
-------------------------------------------------------


BUFR 1.9 (note, colum order is opposite to that used in the ROPP table)
========
Table 2. Quality Flags for RO Data (16-bit Flag Table)
Bit Meaning when set Meaning when clear
1 Non-nominal quality Nominal quality
2 Offline product NRT product
3 Ascending occultation Descending occultation
  (=Rising)             (=Setting)

4 Excess Phase processing non-nominal Excess Phase processing nominal
5 Bending Angle processing non-nominal Bending Angle processing nominal
6 Refractivity processing non-nominal Refractivity processing nominal
7 Meteorological processing non-nominal Meteorological processing nominal
8 Open loop data included Closed loop data only used
9 Surface reflections detected No surface reflections detected
10 L2C GPS signals used L2P GPS signals used
11–13 Reserved Reserved
14 Background profile non-nominal Background profile nominal
15 Background profile Retrieved profile
All 16 Missing As above
See [RD.7] for the interpretation of these bit flags. Bit 1 is a summary
flag and shall be set in the event that any other ‘nonnominal’
bit (i.e. 4,5,6,7, or 14) is/are set and clear otherwise.
------------------------------------------------------------

Change history (5)

comment:1 by Huw Lewis, 16 years ago

Priority: majornormal

The definition of PCD flag 3 should be:

3  PCD_setting   unset(0) = setting, set(1) = rising

Error in User Guide document corrected (Table 6.5 and Section 6.3.3).

The issue of PCD bit names and their consistency with the meaning of the set/unset status will be addressed for v2.0. Ticket remains open.

comment:2 by (none), 16 years ago

Milestone: 2.0

Milestone 2.0 deleted

comment:3 by Huw Lewis, 16 years ago

Milestone: 2.0

comment:4 by Huw Lewis, 16 years ago

Revised PCD bit variable names to be more consistent. The new (v2.0) bit names are listed below along with the definition of the unset/set status.

PCD_summary      =  0  ! Nominal / non-nominal quality
PCD_offline      =  1  ! NRT / offline product
PCD_rising       =  2  ! Setting / rising occultation
PCD_phase        =  3  ! Phase processing      nominal / non-nominal
PCD_bangle       =  4  ! Bending angle proc.   nominal / non-nominal
PCD_refrac       =  5  ! Refractivity proc.    nominal / non-nominal
PCD_met          =  6  ! Meteorological. proc. nominal / non-nominal
PCD_open_loop    =  7  ! Open Loop data used   no / yes
PCD_reflections  =  8  ! Surface reflections detected no / yes
PCD_l2_signal    =  9  ! L2 GPS signal used    L2P / L2C
PCD_reserved_11  = 10  ! Reserved
PCD_reserved_12  = 11  ! Reserved
PCD_reserved_13  = 12  ! Reserved
PCD_bg           = 13  ! Background profile nominal / non-nominal
PCD_occultation  = 14  ! Occultation / background profile
PCD_missing      = 15  ! PCD missing

Code in ropp_io [1818] and documentation [1819] updated accordingly.

Ticket closed.

comment:5 by Huw Lewis, 16 years ago

Cc: ssy@… kbl@… huw.lewis@… added
Resolution: fixed
Status: newclosed

Revised PCD bit variable names to be more consistent. The new (v2.0) bit names are listed below along with the definition of the unset/set status.

PCD_summary      =  0  ! Nominal / non-nominal quality
PCD_offline      =  1  ! NRT / offline product
PCD_rising       =  2  ! Setting / rising occultation
PCD_phase        =  3  ! Phase processing      nominal / non-nominal
PCD_bangle       =  4  ! Bending angle proc.   nominal / non-nominal
PCD_refrac       =  5  ! Refractivity proc.    nominal / non-nominal
PCD_met          =  6  ! Meteorological. proc. nominal / non-nominal
PCD_open_loop    =  7  ! Open Loop data used   no / yes
PCD_reflections  =  8  ! Surface reflections detected no / yes
PCD_l2_signal    =  9  ! L2 GPS signal used    L2P / L2C
PCD_reserved_11  = 10  ! Reserved
PCD_reserved_12  = 11  ! Reserved
PCD_reserved_13  = 12  ! Reserved
PCD_bg           = 13  ! Background profile nominal / non-nominal
PCD_occultation  = 14  ! Occultation / background profile
PCD_missing      = 15  ! PCD missing

Code in ropp_io [1818] and documentation [1819] updated accordingly.

Ticket closed.

Note: See TracTickets for help on using tickets.