[Shake-dev] developing new GMPE module for ShakeMap v3.5

Georgia Cua georgia.cua at sed.ethz.ch
Tue Dec 21 10:41:31 UTC 2010


Hi Bruce,

Thanks. I will try that flavor (BA08 with Youngs97). I really just want to do the type of default site corrections (Borcherdt) that version 3.2 was doing. So I do think Youngs97 is the way to go. (I had the earlier misconception that Hazus involved the generic site amplification approach, and if one had a GMPE that did not have a GMPE-specific site correction approach, then one should use Hazus.) 

I'll let you all know how it goes.

Thanks again!
Georgia


On Dec 20, 2010, at 5:15 PM, Bruce Worden wrote:

> Hi Georgia,
> 
> Another option would be to start with BA08, which uses Rjb already. It is a fairly simple module, except for the site corrections (which are wildly complicated), but you can just toss that code and use the Youngs97 approach of forcing Borcherdt-style site corrections, or the MA2005 approach of using another module's site corrections.
> 
> Bruce
> 
> On Dec 20, 2010, at 7:03 AM, Georgia Cua wrote:
> 
>> Hi Bruce,
>> 
>> Thanks very much for your pointers. I'll take a closer look at my _makeAmps() subroutine. (I copied what is currently there from Small.pm). I'll probably start over with MA2005 as my starting template and just modify the regression calculation as the first step, then switch from using hypocentral distance to Rjb as a separate step.
>> 
>> Thanks again!
>> Georgia
>> 
>> 
>> On Dec 18, 2010, at 10:29 PM, Bruce Worden wrote:
>> 
>>> Hi Georgia,
>>> 
>>> Sorry about the late response. The problem you are having is with your calls to _makeAmps(). Note that in MA2005 they supply the full compliment of arguments, but your calls have a truncated list. When _makeAmps calls siteCorrectList, some of the args are undefined, resulting in the error you are seeing.
>>> 
>>> Picking a prototype GMPE module can be tricky. I've implemented most, but not all, to make some attempt to produce ground motions to the ShakeMap default Vs30. But some modules don't have native site corrections, so I cheat a bit and use something related. In other cases, I use the native correction, but since that correction is relative to the no-correction value, I have to first remove the SM default correction and then apply the site-specific correction.
>>> 
>>> In any event, you do not need to implement a GMPE-native site correction function. You can do what Youngs97 does, and just refuse to allow grind to run with -gmpesc or -nativesc. In this case you just configure your Borcherdt tables to be relative to the base rock type that your GMPE assumes.
>>> 
>>> Bruce
>>> 
>>> 
>>> On Dec 15, 2010, at 5:57 AM, Georgia Cua wrote:
>>> 
>>>> Dear Bruce,
>>>> 
>>>> I'm trying to code a new GMPE module for our ShakeMap v3.5 installation in Switzerland. It has the functional form of Cua and Heaton (unpublished) constrained with Swiss weak motion data and NGA strong motion data, and should be valid in the magnitude range 2 <= M <= 8.
>>>> 
>>>> I have written the new module (SwissNGA.pm) based on Small.pm (because it uses Rjb as a distance measure) and MA2005.pm (because it does not have a GMPE-spefic site amplification approach, and should thus use the Hazus module).
>>>> 
>>>> Essentially the new module is Small.pm with a few lines/subroutines replaced with portions of MA2005.pm (from Constructor, and subroutines siteCorrectGrd, siteCorrectList), and of course, changing the calculation of the regression equation.
>>>> 
>>>> In theory, should this result in a working module, or is the basic approach flawed?
>>>> 
>>>> I have installed the new module and tried running it on a scenario event (just event information, no PGM observations), resulting in the following error
>>>> 
>>>> shake at phantom:~/opt/shakemap/bin$ ./shake -event newtest -verbose
>>>> shake: Running: '/rdsk/projects/shake/opt/shakemap-3.5-vanilla/bin/../bin/grind -event newtest -qtm -lonspan 5.5 -boundcheck -xml -lonspan 5.5 -psa'
>>>> grind: Predictive map: no data in '/rdsk/projects/shake/opt/shakemap-3.5-vanilla/bin/../data/newtest/input'
>>>> grind: Using fixed boundary 5.6 45.6 10.8 47.8
>>>> grind: 47.8:45.6:10.8:5.6
>>>> grind:
>>>> 
>>>> arg <lons> must be an array ref at /rdsk/projects/shake/opt/shakemap-3.5-vanilla/bin/../perl/lib/Shake/GMPE/SwissNGA.pm line 306
>>>> shake: Error in grind: 65280
>>>> 
>>>> Is the approach of basing the new module primarily on Small.pm (with portions from MA2005.pm) a valid approach, or are there some subtleties that I am completely bulldozing over? Do you have any more detailed documentation/instructions for writing new modules?
>>>> 
>>>> Sorry if this is not the type of question to be sending to the developer list!
>>>> 
>>>> Thanks,
>>>> Georgia
>>>> 
>>>> PS. the new module SwissNGA.pm is attached
>>>> 
>>>> <SwissNGA.pm><ATT00001.html>
>>>> _______________________________________________
>>>> Shake-dev mailing list
>>>> Shake-dev at geohazards.usgs.gov
>>>> https://geohazards.usgs.gov/mailman/listinfo/shake-dev
>>> 
>> 
>> 
>> 
>> -----------------------------
>> Dr. Georgia Cua
>> Swiss Seismological Service
>> Institute of Geophysics
>> ETH Zurich, NO H61
>> Sonneggstr 5
>> CH-8092 Zurich
>> Switzerland
>> 
>> Tel:  +41-44-633-7574
>> Fax: +41-44-633-1065
>> 
>> georgia.cua at sed.ethz.ch
>> -----------------------------
>> 
>> 
>> 
> 



-----------------------------
Dr. Georgia Cua
Swiss Seismological Service
Institute of Geophysics
ETH Zurich, NO H61
Sonneggstr 5
CH-8092 Zurich
Switzerland

Tel:  +41-44-633-7574   
Fax: +41-44-633-1065   

georgia.cua at sed.ethz.ch
-----------------------------



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://geohazards.usgs.gov/pipermail/shake-dev/attachments/20101221/b946e095/attachment-0001.html>


More information about the Shake-dev mailing list