pb2nc generating many exactly 5000 m PBL heights #1140
-
Beta Was this translation helpful? Give feedback.
Replies: 6 comments 13 replies
-
The pb2nc resets PBL values to 5000 if it's bigger than 5000.
|
Beta Was this translation helpful? Give feedback.
-
Thanks @hsoh-u, here's the line of code that does that check with MAX_PBL = 5000 being the upper limit: @gsketefian, as we discussed in an email thread with @jwolff-ncar, I pulled down some sample data and did more digging. Using an input NDAS file from Hera (prepbufr.ndas.2019053000) and deriving PBL in PB2NC results in 54 of 136 PBL values being computed as 5000. Here's a histogram showing this result: Running pb2nc at verbosity level 7 (-v 7) produces lots of useful info about the derivation of PBL in this PBL derivation results in two types of warning messages:
While values too low are discarded, values too high are just reset to 5000. I recommend that we modify this logic and also discard the large values. I tested with a modified version of PB2NC and here's a much more reasonable histogram of computed PBL values: However, I'd like @PerryShafran-NOAA to weigh in. The PBL derivation logic was ported over from NOAA/EMC verification code. @PerryShafran-NOAA is resetting large values of PBL to 5000 a useful feature? Or should we instead just discard those obs? Note that the vast majority of the values that are reset are ridiculous and certainly not meaningful:
Does this indicate some fault in the PBL derivation algorithm? Or is this expected behavior? @gsketefian while we sort out the details, there is an easy workaround you can use. In your Point-Stat configuration file, you can censor the PBL observations using:
This replaces all instances of 5000 with MET's internal bad data value (-9999). And those values will no longer be included in the verification. Unfortunately this does require rerunning Point-Stat. |
Beta Was this translation helpful? Give feedback.
-
I agree that 5000 m is too low to safely claim anything at that height or higher is invalid. I'd feel comfortable with ~7000 m, but again, this comes back to how the astronomically high PBL values are getting created in the first place. @JohnHalleyGotway, does MET need to be rebuilt to change MAX_PBL, or can that be set at run time? |
Beta Was this translation helpful? Give feedback.
-
@PerryShafran-NOAA @JohnHalleyGotway @hsoh-u We (I, @jwolff-ncar, and @JeffBeck-NOAA, and others who are part of the DTC's R2O project) are looking to rerun our verification tasks with a modification to account for the 5000m HPBL bug. Since we need to do that pretty soon, we are trying to decide on how to proceed. The options are:
@PerryShafran-NOAA, just wondering if you have an estimate on when the relevant people will be able to take a look at the code. Thanks. |
Beta Was this translation helpful? Give feedback.
-
@PerryShafran-NOAA @JohnHalleyGotway @hsoh-u Couple of questions:
Would appreciate any feedback. Thanks. |
Beta Was this translation helpful? Give feedback.
-
Please note that this discussion was moved over to a MET development issue: |
Beta Was this translation helpful? Give feedback.
Thanks @hsoh-u, here's the line of code that does that check with MAX_PBL = 5000 being the upper limit:
https://github.com/dtcenter/MET/blob/fb666bc3289e2bf49ccfc85e716ab812e10a7628/met/src/tools/other/pb2nc/pb2nc.cc#L3184
@gsketefian, as we discussed in an email thread with @jwolff-ncar, I pulled down some sample data and did more digging.
Using an input NDAS file from Hera (prepbufr.ndas.2019053000) and deriving PBL in PB2NC results in 54 of 136 PBL values being computed as 5000. Here's a histogram showing this result:
Running pb2nc at verbosity level 7 (-v 7) produces lots of useful info about the derivation of PBL in this
run_pb2nc.log file.
PBL derivation results in two types of war…