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

Bruce Worden cbworden at caltech.edu
Mon Dec 20 16:15:11 UTC 2010


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
> -----------------------------
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://geohazards.usgs.gov/pipermail/shake-dev/attachments/20101220/89f10cdf/attachment.html>


More information about the Shake-dev mailing list