[Shake-dev] regression distances and plotregr

Bruce Worden bruce at gps.caltech.edu
Tue Mar 6 23:39:35 GMT 2007


Hi Pete,

I think the problem is that Small_Seg.pm cheats a little bit in a  
couple of ways (though I blame myself for not making the rules more  
explicit).  First, it is using more than one distance measure within  
the same module, something that isn't anticipated by the system (and  
which will not work correctly as grind is currently written).   
Second, it isn't admitting that it uses anything other than Rjb.

As Kris points out, a module that uses distance-to-fault should set  
its "dist" element to either dist_hypo or dist_rrupt, and it should  
assume that it will be given that distance in subs "maximum()" and  
"random()" if those functions are called with a distance.  See subs  
new() and maximum() in Youngs97.pm for an example.

The implementation here is that estimates (and the bias) use a lat  
and lon to get a distance from the regression-supplied distance  
function (dist_rjb by default).  That dist may then be modified by  
the uncertainty estimate.  The resulting distance is given back to  
the regression, which returns an amplitude(s) for the point.

Changing the code to accommodate modules that use different distance  
measures for different ground motion parameters would be a  
considerable undertaking and involve a not-insignificant performance  
hit, and I'm not sure that it will ever be required for any modules  
other than Small_Seg and Large_Seg. (Dave?  Vince?)

I imagine this situation has caused some discrepancy between your  
estimates and your data, especially near the epicenter of small, deep  
events.  But it is hard to say how much your maps are affected in  
general.  I believe you are using HazusPGV for your larger events, so  
that should not be an issue.

In the short term, I suggest you switch to Vince's Small.pm module,  
which should work fairly well for N Cal.  In the near future we are  
all (at least in the US) going to have to switch to NGA regressions  
(probably BA_oct06 for N and S CA), which are calibrated down to  
about M4.0, so this will become even less of an issue.

Bruce


On Mar 3, 2007, at 3:45 PM, Peter Lombard wrote:

> Bruce,
>
> I have found a problem in plotregr that I really don't know how to  
> solve. It
> may also be a problem in grind; you will have to evaluate that!
>
> When I wrote plotregr, I intended it to plot the data values so  
> that they
> could be directly compared with the regression for the event  
> magnitude. That
> means that the event data should be plotted at the distance that the
> regression module uses when it computes the regression values.
>
> Actual event data shows I have not achieved my goal. In NC, we use the
> Small_Seg regression, which uses hypocentral distance for PGA and  
> PGV. A
> recent event here had a hypocentral depth of 16.6 Km. A regression  
> plot
> (attached) shows one station plotted at less than 4 km distance.  
> That's not
> what I want.
>
> <pga_regr.gif>
>
> In plotregr, I try to use the distance function used by the  
> regression, using
> the following code (borrowed from grind):
>      
> #--------------------------------------------------------------------- 
> --
>     # Determine which regression to use, load it and create an object
>     # Get functions for $DIST and $CUSTOM_SITECORR (custom distance  
> and
>     # site correction functions)
>      
> #--------------------------------------------------------------------- 
> --
>     my $regress = get_regression($src,$faultcoords);
>     %amp_sd = $regress->sd();
>
>     $DIST = \&dist_rjb;
>     $CUSTOM_SITECORR = undef;
>
>     if (defined $regress->{dist}) {
> 	print "Using custom distance formula\n";
> 	$DIST = $regress->{dist};
>     }
>
> The problem is that most regressions don't provide access to the  
> function that
> is used by the regression to compute distance. Some regression  
> modules use
> different distance measures for the different PGA, PGV, PSA values.  
> Thus the
> regressions' distance function needs an argument to specify for which
> regression variable the distance is to be calculated.
>
> For the plotregr program, this leads to misleading plots at near  
> distances.
>
> Is this a problem for grind? Does it mean that the "wrong" distance  
> is being
> used when comparing station data against the regression for the bias
> computation?
>
> Or is am I mistaken in my understanding of how ShakeMap works?
>
> Pete_______________________________________________
> Shake-dev mailing list
> Shake-dev at scsnmail.gps.caltech.edu
> http://unix1.gps.caltech.edu/mailman/listinfo/shake-dev




More information about the Shake-dev mailing list