[Met_help] [rt.rap.ucar.edu #39090] History for question about MODE intensity thresholds

RAL HelpDesk {for John Halley Gotway} met_help at ucar.edu
Mon Jul 12 11:36:15 MDT 2010


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

Hi,

I am currently using MODE to compare 6-hrly precip objects from 10 different assimilation forecast runs but am not sure what the best way is to go about selecting specific thresholds for parameters in the WrfModeConfig file.  In particular, I do not understand what the forecast intensity percentage and threshold does:

//
// Define an intensity percentile for fcst and obs objects.  The
// percentile values must be between 0 and 102.  Values between
// 0 and 100 indicate the corresponding intensity percentile.  A value
// of 101 indicates that the mean of the intensities should be used.
// A value of 102 indicates that the sum of the intensities should be
// used.  Apply a threshold to the percentile value chosen for the fcst
// and obs objects using the threshold values below.  Discard objects
// which do not meet the intensity percentile threshold criteria.  The
// threshold values are specified as "xxT" where T is the threshold
// value and xx is one of:
//    'lt' for less than, 'le' for less than or equal to,
//    'eq' for equal to, 'ne' for not equal to,
//    'gt' for greater than, and 'ge' for greater than or equal to
//
fcst_inten_perc        = 100;
fcst_inten_perc_thresh = "ge0.0";
obs_inten_perc         = 100;
obs_inten_perc_thresh  = "ge0.0";


My data has large variations in intensity during the consecutive 6hr periods with the primary feature being a training squall line.  The parameters that I am currently using are merging many objects together, but the interest scores are not what I would expect when comparing the multiple runs.  So I suppose I am also quite confused as to how to select complimentary interest threshold values for the different subcategories:

//
// Weight for the distance (grid squares) between centroids
//
centroid_dist_weight      = 0.0;

//
// Weight for the minimum distance (grid squares) between objects
//
boundary_dist_weight      = 10.0;

//
// Weight for the minimum distance (grid squares) between the convex
// hulls of the objects
//
convex_hull_dist_weight   = 7.0;

//
// Weight for the difference in orientation angles (degrees) between
// objects.  The difference will be between 0 and 90 degrees.
//
angle_diff_weight         = 5.0;

//
// Weight for the ratio of the objects' areas.  Area is defined as a
// count of grid squares.
//
area_ratio_weight         = 5.0;

//
// Weight for the ratio of the objects' intersection divided by the
// minimum of the areas of the two objects.
//
int_area_ratio_weight     = 7.0;

//
// Weight for the ratio of the objects' complexities.  Complexity of an
// object is defined as:
// (Area of Convex Hull - Area of Object)/(Area of Convex Hull)
//
complexity_ratio_weight   = 2.0;

//
// Percentile to be used in computing the intensity ratio attribute
// below.  Percentile value must be between 0 and 100.
//
intensity_percentile      = 25;

//
// Weight for the ratio of the percentile intensities of the raw data
// inside each object.
//
intensity_ratio_weight    = 7.0;

////////////////////////////////////////////////////////////////////////
//
// Attribute interest maps:
// The following interest functions are piecewise linear functions
// defined by their significant points.  An interest function is
// defined for each of the weights listed above.
//
////////////////////////////////////////////////////////////////////////

centroid_dist_if = {
  (   0.0,          1.0 )
  (  60.0/grid_res, 1.0 )
  ( 400.0/grid_res, 0.6 )
  ( 600.0/grid_res, 0.2 ) 
  };

boundary_dist_if = {
  (   0.0,          1.0 )
  ( 400.0/grid_res, 0.0 )
};

convex_hull_dist_if = {
  (   0.0,          1.0 )
  ( 400.0/grid_res, 0.0 )
};

angle_diff_if = {
   (  0.0, 1.0 )
   ( 30.0, 0.5 )
   ( 90.0, 0.0 )
};

corner = 0.5;
ratio_if = {
   ( 0.0,    0.0 )
   ( corner, 0.7 )
   ( 1.0,    1.0 )
};

area_ratio_if(x) = ratio_if(x);

int_area_ratio_if = {
   ( 0.00, 0.00 )
   ( 0.10, 0.25 )
   ( 0.25, 0.75 )
   ( 1.00, 1.00 )
};

complexity_ratio_if(x) = ratio_if(x);

intensity_ratio_if(x) = ratio_if(x);


Thank you so much for any help!
-Dan




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

Subject: Re: [rt.rap.ucar.edu #39090] question about MODE intensity thresholds
From: John Halley Gotway
Time: Fri Jul 09 13:15:04 2010

Dan,

Sorry for the delay in getting back to you.

I see that you're running MODE on the output of 10 different model
runs for 6-hour precip and have questions about setting parameters for
MODE.  One of the advantages of using MODE is how configurable
it is, but in some respects that can be a disadvantage as well - as
you're finding.

Since you're dealing with precip, I'd suggest starting with one of the
sample MODE configuration files:
   METv2.0/scripts/config/WrfModeConfig_APCP_12

I'd suggest configuring MODE in multiple phases:

Phase 1: Define objects to match the scale of the analysis you're
studying:
   - Set the convolution radii to make objects more/less smooth.
   - Set the convolution thresholds to make the objects
bigger/smaller.
   - Set the area thresholds to throw away objects that are too small.
   - Set the intensity thresholds to throw away objects that don't
meet some intensity criteria.

Phase 2: Address how objects are merged together in the same field:
   - Set the merge flags to determine which logic is used to perform
merging in the same field.
   - For double thresholding, set the merge thresholds to allow for
more/less merging.

Phase 3: Address how objects are matched from one field to the other:
   - Set the max_centroid_dist parameter to determine how close
objects centroids need to be to be considered for a match.
   - Play with the weight values to assign more/less relative
importance to each object pair measurement (i.e. boundary distance,
area ratio,...)
   - Generally, most users won't want to adjust the interest functions
that are used in computing the total interest value unless you're very
practiced in using MODE.

Please note that by default, the "max_centroid_dist" and a few
interest functions are defined in terms of the "grid_res" parameter.
Set this to the nominal spacing of your grid in kilometers (e.g.
grid_res = 40 for a domain with 40-km grid spacing).

Let me answer your specific question about "fcst_inten_perc" and
"fcst_inten_perc_thresh".  These are only used to throw away objects
that don't meet some intensity criteria.  For example, suppose
you're only interested in looking at precip objects that contain 6-
hour accumulations of at least 20mm.  You could set:
   fcst_inten_perc        = 100;
   fcst_inten_perc_thresh = "ge20.0";
That way, you'd only keep objects whose maximum (i.e. 100th
percentile) raw intensity value is at least 20mm.  We imagine that
most users will NOT use these parameters.  So just set them to
something
that will allow all objects to be retained.

A couple more pieces of a advice - you should choose a set of
parameters that generally do what you want and then apply them to all
fields.  Changing the parameters for each different model is kind of
cheating!  Also, we often set up two or three different MODE
configurations to look at different scales.

Clear as mud?

Thanks,
John Halley Gotway
met_help at ucar.edu

RAL HelpDesk {for Dan Hartung} wrote:
> Wed Jul 07 13:24:55 2010: Request 39090 was acted upon.
> Transaction: Ticket created by daniel.hartung at ssec.wisc.edu
>        Queue: met_help
>      Subject: question about MODE intensity thresholds
>        Owner: Nobody
>   Requestors: daniel.hartung at ssec.wisc.edu
>       Status: new
>  Ticket <URL:
https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=39090 >
>
>
> Hi,
>
> I am currently using MODE to compare 6-hrly precip objects from 10
different assimilation forecast runs but am not sure what the best way
is to go about selecting specific thresholds for parameters in the
WrfModeConfig file.  In particular, I do not understand what the
forecast intensity percentage and threshold does:
>
> //
> // Define an intensity percentile for fcst and obs objects.  The
> // percentile values must be between 0 and 102.  Values between
> // 0 and 100 indicate the corresponding intensity percentile.  A
value
> // of 101 indicates that the mean of the intensities should be used.
> // A value of 102 indicates that the sum of the intensities should
be
> // used.  Apply a threshold to the percentile value chosen for the
fcst
> // and obs objects using the threshold values below.  Discard
objects
> // which do not meet the intensity percentile threshold criteria.
The
> // threshold values are specified as "xxT" where T is the threshold
> // value and xx is one of:
> //    'lt' for less than, 'le' for less than or equal to,
> //    'eq' for equal to, 'ne' for not equal to,
> //    'gt' for greater than, and 'ge' for greater than or equal to
> //
> fcst_inten_perc        = 100;
> fcst_inten_perc_thresh = "ge0.0";
> obs_inten_perc         = 100;
> obs_inten_perc_thresh  = "ge0.0";
>
>
> My data has large variations in intensity during the consecutive 6hr
periods with the primary feature being a training squall line.  The
parameters that I am currently using are merging many objects
together, but the interest scores are not what I would expect when
comparing the multiple runs.  So I suppose I am also quite confused as
to how to select complimentary interest threshold values for the
different subcategories:
>
> //
> // Weight for the distance (grid squares) between centroids
> //
> centroid_dist_weight      = 0.0;
>
> //
> // Weight for the minimum distance (grid squares) between objects
> //
> boundary_dist_weight      = 10.0;
>
> //
> // Weight for the minimum distance (grid squares) between the convex
> // hulls of the objects
> //
> convex_hull_dist_weight   = 7.0;
>
> //
> // Weight for the difference in orientation angles (degrees) between
> // objects.  The difference will be between 0 and 90 degrees.
> //
> angle_diff_weight         = 5.0;
>
> //
> // Weight for the ratio of the objects' areas.  Area is defined as a
> // count of grid squares.
> //
> area_ratio_weight         = 5.0;
>
> //
> // Weight for the ratio of the objects' intersection divided by the
> // minimum of the areas of the two objects.
> //
> int_area_ratio_weight     = 7.0;
>
> //
> // Weight for the ratio of the objects' complexities.  Complexity of
an
> // object is defined as:
> // (Area of Convex Hull - Area of Object)/(Area of Convex Hull)
> //
> complexity_ratio_weight   = 2.0;
>
> //
> // Percentile to be used in computing the intensity ratio attribute
> // below.  Percentile value must be between 0 and 100.
> //
> intensity_percentile      = 25;
>
> //
> // Weight for the ratio of the percentile intensities of the raw
data
> // inside each object.
> //
> intensity_ratio_weight    = 7.0;
>
>
////////////////////////////////////////////////////////////////////////
> //
> // Attribute interest maps:
> // The following interest functions are piecewise linear functions
> // defined by their significant points.  An interest function is
> // defined for each of the weights listed above.
> //
>
////////////////////////////////////////////////////////////////////////
>
> centroid_dist_if = {
>   (   0.0,          1.0 )
>   (  60.0/grid_res, 1.0 )
>   ( 400.0/grid_res, 0.6 )
>   ( 600.0/grid_res, 0.2 )
>   };
>
> boundary_dist_if = {
>   (   0.0,          1.0 )
>   ( 400.0/grid_res, 0.0 )
> };
>
> convex_hull_dist_if = {
>   (   0.0,          1.0 )
>   ( 400.0/grid_res, 0.0 )
> };
>
> angle_diff_if = {
>    (  0.0, 1.0 )
>    ( 30.0, 0.5 )
>    ( 90.0, 0.0 )
> };
>
> corner = 0.5;
> ratio_if = {
>    ( 0.0,    0.0 )
>    ( corner, 0.7 )
>    ( 1.0,    1.0 )
> };
>
> area_ratio_if(x) = ratio_if(x);
>
> int_area_ratio_if = {
>    ( 0.00, 0.00 )
>    ( 0.10, 0.25 )
>    ( 0.25, 0.75 )
>    ( 1.00, 1.00 )
> };
>
> complexity_ratio_if(x) = ratio_if(x);
>
> intensity_ratio_if(x) = ratio_if(x);
>
>
> Thank you so much for any help!
> -Dan
>
>

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


More information about the Met_help mailing list