[Met_help] [rt.rap.ucar.edu #99919] History for Filtering Data

John Halley Gotway via RT met_help at ucar.edu
Thu May 20 13:26:12 MDT 2021


----------------------------------------------------------------
  Initial Request
----------------------------------------------------------------

John, I am using the censor logic to threshold observations values used in upper air verification.   I want to make sure I am using this correctly.  In the config file, I have 15 levels.  In the censor_thresh I have 15 thresholds to define bad data for each level.  When I run this, MET throws every ob.   Are the 15 thresholds being applied to the 15 levels?  Or am I coding it up incorrectly?

Thanks
Bob


----------------------------------------------------------------
  Complete Ticket History
----------------------------------------------------------------

Subject: Filtering Data
From: robert.craig.2 at us.af.mil
Time: Mon May 17 15:03:09 2021

I forgot to attach the config file.

-----Original Message-----
From: met_help at ucar.edu via RT <met_help at ucar.edu>
Sent: Monday, May 17, 2021 4:01 PM
To: CRAIG, ROBERT J GS-12 USAF ACC 16 WS/WXD
<robert.craig.2 at us.af.mil>
Subject: [Non-DoD Source] [rt.rap.ucar.edu #99919] AutoReply:
Filtering Data

Greetings,

This message has been automatically generated in response to the
creation of a trouble ticket regarding:
	"Filtering Data",
a summary of which appears below.

There is no need to reply to this message right now.  Your ticket has
been assigned an ID of [rt.rap.ucar.edu #99919].

Please include the string:

         [rt.rap.ucar.edu #99919]

in the subject line of all future correspondence about this issue. To
do so, you may reply to this message.

For more information, please see:

MET Online Tutorial:
   https://www.dtcenter.org/met/users/support/online_tutorial/index.php

MET Users Guide:
   https://www.dtcenter.org/met/users/docs/overview.php

MET FAQs:
   https://www.dtcenter.org/met/users/support/faqs/index.php

MET-Help Email Archive:
   http://mailman.ucar.edu/pipermail/met_help

                        Thank you,
                        met_help at ucar.edu

-------------------------------------------------------------------------
John, I am using the censor logic to threshold observations values
used in upper air verification.   I want to make sure I am using this
correctly.  In the config file, I have 15 levels.  In the
censor_thresh I have 15 thresholds to define bad data for each level.
When I run this, MET throws every ob.   Are the 15 thresholds being
applied to the 15 levels?  Or am I coding it up incorrectly?

Thanks
Bob


------------------------------------------------
Subject: Filtering Data
From: John Halley Gotway
Time: Mon May 17 17:35:13 2021

Bob,

I see you have a question about data censoring in Point-Stat. The way
you
set up the configuration will not work as you expected. If you define
multiple censor array entries, all of them are applied to each of the
field/level combinations processed. Instead you'll need to break out
the 15
levels into 15 separate verification tasks. I copied/pasted/modified
the
fcst and obs entries from your Point-Stat configuration file below to
demonstrate:


cnt_thresh = [ ${CNTTHRESH} ];
fcst = {
   convert(x) = ${FCONVERT};
   lead_time  = ${FCST};
   field = [
      {
         name  = "${FNAME}";
         level =
["P1000","P925","P850","P700","P500","P400","P300","P250","P200","P150","P100","P70","P50","P30","P10"];
      }
   ];
}
obs = {
   convert(x) = ${OCONVERT};
   name       = "${ONAME}";
   field = [
      { level = [ "P1000" ]; censor_thresh = [<-300||>300];
censor_val =
[ -9999 ]; },
      { level = [ "P925"  ]; censor_thresh = [<400||>1000];
censor_val =
[ -9999 ]; },
      { level = [ "P850"  ]; censor_thresh = [<1000||>1800];
censor_val =
[ -9999 ]; },
      { level = [ "P700"  ]; censor_thresh = [<2500||>3500];
censor_val =
[ -9999 ]; },
      { level = [ "P500"  ]; censor_thresh = [<4500||>6200];
censor_val =
[ -9999 ]; },
      { level = [ "P400"  ]; censor_thresh = [<6000||>8000];
censor_val =
[ -9999 ]; },
      { level = [ "P300"  ]; censor_thresh = [<8000||>10000];
censor_val =
[ -9999 ]; },
      { level = [ "P250"  ]; censor_thresh = [<9500||>12000];
censor_val =
[ -9999 ]; },
      { level = [ "P200"  ]; censor_thresh = [<10000||>13000];
censor_val =
[ -9999 ]; },
      { level = [ "P150"  ]; censor_thresh = [<13000||>15000];
censor_val =
[ -9999 ]; },
      { level = [ "P100"  ]; censor_thresh = [<14000||>18000];
censor_val =
[ -9999 ]; },
      { level = [ "P70"   ]; censor_thresh = [<18000||>50000];
censor_val =
[ -9999 ]; },
      { level = [ "P50"   ]; censor_thresh = [<18000||>50000];
censor_val =
[ -9999 ]; },
      { level = [ "P30"   ]; censor_thresh = [<18000||>50000];
censor_val =
[ -9999 ]; },
      { level = [ "P10"   ]; censor_thresh = [<18000||>50000];
censor_val =
[ -9999 ]; }
   ];
};

Does running with this configuration produce the desired result?

Thanks,
John

On Mon, May 17, 2021 at 3:01 PM robert.craig.2 at us.af.mil via RT <
met_help at ucar.edu> wrote:

>
> Mon May 17 15:01:16 2021: Request 99919 was acted upon.
> Transaction: Ticket created by robert.craig.2 at us.af.mil
>        Queue: met_help
>      Subject: Filtering Data
>        Owner: Nobody
>   Requestors: robert.craig.2 at us.af.mil
>       Status: new
>  Ticket <URL:
https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=99919 >
>
>
> John, I am using the censor logic to threshold observations values
used in
> upper air verification.   I want to make sure I am using this
correctly.
> In the config file, I have 15 levels.  In the censor_thresh I have
15
> thresholds to define bad data for each level.  When I run this, MET
throws
> every ob.   Are the 15 thresholds being applied to the 15 levels?
Or am I
> coding it up incorrectly?
>
> Thanks
> Bob
>
>

------------------------------------------------
Subject: Filtering Data
From: robert.craig.2 at us.af.mil
Time: Thu May 20 08:04:33 2021

John, that worked - thanks.  In our original verification software, we
used to throw out model/ob differences that exceeded 2 standard
deviations from the mean.  This worked well in removing the affects of
bad observations.  Does MET have a built in method to filter out
extreme differences when running point stat or when aggregating MPR
files in Stat Analysis?

Thanks
Bob

-----Original Message-----
From: John Halley Gotway via RT <met_help at ucar.edu>
Sent: Monday, May 17, 2021 6:35 PM
To: CRAIG, ROBERT J GS-12 USAF ACC 16 WS/WXD
<robert.craig.2 at us.af.mil>
Subject: [Non-DoD Source] Re: [rt.rap.ucar.edu #99919] Filtering Data

Bob,

I see you have a question about data censoring in Point-Stat. The way
you set up the configuration will not work as you expected. If you
define multiple censor array entries, all of them are applied to each
of the field/level combinations processed. Instead you'll need to
break out the 15 levels into 15 separate verification tasks. I
copied/pasted/modified the fcst and obs entries from your Point-Stat
configuration file below to
demonstrate:


cnt_thresh = [ ${CNTTHRESH} ];
fcst = {
   convert(x) = ${FCONVERT};
   lead_time  = ${FCST};
   field = [
      {
         name  = "${FNAME}";
         level =
["P1000","P925","P850","P700","P500","P400","P300","P250","P200","P150","P100","P70","P50","P30","P10"];
      }
   ];
}
obs = {
   convert(x) = ${OCONVERT};
   name       = "${ONAME}";
   field = [
      { level = [ "P1000" ]; censor_thresh = [<-300||>300];
censor_val =
[ -9999 ]; },
      { level = [ "P925"  ]; censor_thresh = [<400||>1000];
censor_val =
[ -9999 ]; },
      { level = [ "P850"  ]; censor_thresh = [<1000||>1800];
censor_val =
[ -9999 ]; },
      { level = [ "P700"  ]; censor_thresh = [<2500||>3500];
censor_val =
[ -9999 ]; },
      { level = [ "P500"  ]; censor_thresh = [<4500||>6200];
censor_val =
[ -9999 ]; },
      { level = [ "P400"  ]; censor_thresh = [<6000||>8000];
censor_val =
[ -9999 ]; },
      { level = [ "P300"  ]; censor_thresh = [<8000||>10000];
censor_val = [ -9999 ]; },
      { level = [ "P250"  ]; censor_thresh = [<9500||>12000];
censor_val = [ -9999 ]; },
      { level = [ "P200"  ]; censor_thresh = [<10000||>13000];
censor_val = [ -9999 ]; },
      { level = [ "P150"  ]; censor_thresh = [<13000||>15000];
censor_val = [ -9999 ]; },
      { level = [ "P100"  ]; censor_thresh = [<14000||>18000];
censor_val = [ -9999 ]; },
      { level = [ "P70"   ]; censor_thresh = [<18000||>50000];
censor_val =
[ -9999 ]; },
      { level = [ "P50"   ]; censor_thresh = [<18000||>50000];
censor_val =
[ -9999 ]; },
      { level = [ "P30"   ]; censor_thresh = [<18000||>50000];
censor_val =
[ -9999 ]; },
      { level = [ "P10"   ]; censor_thresh = [<18000||>50000];
censor_val =
[ -9999 ]; }
   ];
};

Does running with this configuration produce the desired result?

Thanks,
John

On Mon, May 17, 2021 at 3:01 PM robert.craig.2 at us.af.mil via RT <
met_help at ucar.edu> wrote:

>
> Mon May 17 15:01:16 2021: Request 99919 was acted upon.
> Transaction: Ticket created by robert.craig.2 at us.af.mil
>        Queue: met_help
>      Subject: Filtering Data
>        Owner: Nobody
>   Requestors: robert.craig.2 at us.af.mil
>       Status: new
>  Ticket <URL:
https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=99919
> >
>
>
> John, I am using the censor logic to threshold observations values
used in
> upper air verification.   I want to make sure I am using this
correctly.
> In the config file, I have 15 levels.  In the censor_thresh I have
15
> thresholds to define bad data for each level.  When I run this, MET
throws
> every ob.   Are the 15 thresholds being applied to the 15 levels?
Or am I
> coding it up incorrectly?
>
> Thanks
> Bob
>
>


------------------------------------------------
Subject: Filtering Data
From: John Halley Gotway
Time: Thu May 20 12:30:05 2021

Bob,

Actually, yes, we added new configuration options to met-10.0.0 named
mpr_column and mpr_thresh. Here's the issue that describes that
change:
https://github.com/dtcenter/MET/issues/1575

And here's what you get if you search for mpr_thresh on this page of
the
user's guide:
https://met.readthedocs.io/en/latest/Users_Guide/config_options.html#settings-
common-to-multiple-tools


   -

   The “mpr_column” and “mpr_thresh” entries are arrays of strings and
   thresholds to specify which matched pairs should be included in the
   statistics. These options apply to the Point-Stat and Grid-Stat
tools. They
   are parsed separately for each “obs.field” array entry. The
“mpr_column”
   strings specify MPR column names (“FCST”, “OBS”, “CLIMO_MEAN”,
   “CLIMO_STDEV”, or “CLIMO_CDF”), differences of columns (“FCST-
OBS”), or the
   absolute value of those differences (“ABS(FCST-OBS)”). The number
of
   “mpr_thresh” thresholds must match the number of “mpr_column”
entries, and
   the n-th threshold is applied to the n-th column. Any matched pairs
which
   do not meet any of the specified thresholds are excluded from the
analysis.
   For example, the following settings exclude matched pairs where the
   observation value differs from the forecast or climatological mean
values
   by more than 10:

   mpr_column = [ "ABS(OBS-FCST)", "ABS(OBS-CLIMO_MEAN)" ];
   mpr_thresh = [ <=10, <=10 ];


That does not include support for definitions relative to a mean or
standard deviation value, but you may find this helpful.

Thanks,
John

------------------------------------------------
Subject: Filtering Data
From: robert.craig.2 at us.af.mil
Time: Thu May 20 12:41:10 2021

Excellent, that should be helpful.

Thanks
Bob

-----Original Message-----
From: John Halley Gotway via RT <met_help at ucar.edu>
Sent: Thursday, May 20, 2021 1:30 PM
To: CRAIG, ROBERT J GS-12 USAF ACC 16 WS/WXD
<robert.craig.2 at us.af.mil>
Subject: Re: [Non-DoD Source] Re: [rt.rap.ucar.edu #99919] Filtering
Data

Bob,

Actually, yes, we added new configuration options to met-10.0.0 named
mpr_column and mpr_thresh. Here's the issue that describes that
change:
https://github.com/dtcenter/MET/issues/1575

And here's what you get if you search for mpr_thresh on this page of
the user's guide:
https://met.readthedocs.io/en/latest/Users_Guide/config_options.html#settings-
common-to-multiple-tools


   -

   The “mpr_column” and “mpr_thresh” entries are arrays of strings and
   thresholds to specify which matched pairs should be included in the
   statistics. These options apply to the Point-Stat and Grid-Stat
tools. They
   are parsed separately for each “obs.field” array entry. The
“mpr_column”
   strings specify MPR column names (“FCST”, “OBS”, “CLIMO_MEAN”,
   “CLIMO_STDEV”, or “CLIMO_CDF”), differences of columns (“FCST-
OBS”), or the
   absolute value of those differences (“ABS(FCST-OBS)”). The number
of
   “mpr_thresh” thresholds must match the number of “mpr_column”
entries, and
   the n-th threshold is applied to the n-th column. Any matched pairs
which
   do not meet any of the specified thresholds are excluded from the
analysis.
   For example, the following settings exclude matched pairs where the
   observation value differs from the forecast or climatological mean
values
   by more than 10:

   mpr_column = [ "ABS(OBS-FCST)", "ABS(OBS-CLIMO_MEAN)" ];
   mpr_thresh = [ <=10, <=10 ];


That does not include support for definitions relative to a mean or
standard deviation value, but you may find this helpful.

Thanks,
John


------------------------------------------------


More information about the Met_help mailing list