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 , 16 years ago
Priority: | major → normal |
---|
comment:3 by , 16 years ago
Milestone: | → 2.0 |
---|
comment:4 by , 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 , 16 years ago
Cc: | added |
---|---|
Resolution: | → fixed |
Status: | new → closed |
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.
The definition of PCD flag 3 should be:
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.