Ejemplo n.º 1
0
def test():
    fault_text = """30.979788       103.454422      1
31.691615       104.419160      1
31.723569       104.374760      1
32.532213       105.220821      1
32.641450       105.135050      20
31.846790       104.246202      20
31.942158       104.205286      20
31.290105       103.284388      20
30.979788       103.454422      1"""
    event_text = """<?xml version="1.0" encoding="US-ASCII" standalone="yes"?>
<earthquake id="2008ryan" lat="30.9858" lon="103.3639" mag="7.9" year="2008" month="05" day="12" hour="06" minute="28" second="01" timezone="GMT" depth="19.0" locstring="EASTERN SICHUAN, CHINA" created="1211173621" otime="1210573681" type="" />
    """
    print('Testing creation of source object...')
    source_text = """mech=RS"""
    ffile = io.StringIO(fault_text)
    efile = io.StringIO(event_text)
    sfile = io.StringIO(source_text)
    source = Source.readFromFile(efile, faultfile=ffile, sourcefile=sfile)
    print('Passed creation of source object.')

    print('Testing creation of RuptureContext object...')
    gmpe = abrahamson_2014.AbrahamsonEtAl2014()
    rupture = source.getRuptureContext([gmpe])
    testdict = {
        'mag': 7.9,
        'strike': -133.083550974,
        'dip': 49.8524115024,
        'rake': 45.0,
        'ztor': 0.999999999995,
        'hypo_lon': 103.3639,
        'hypo_lat': 30.9858,
        'hypo_depth': 19.0,
        'width': 27.8623813381
    }
    for key in testdict.keys():
        value = eval('rupture.%s' % key)
        np.testing.assert_almost_equal(testdict[key], value)
    print('Passed creation of RuptureContext object...')

    print('Test setting mechanism and rake/dip...')
    mech = 'RS'
    exp_dip = 40
    exp_rake = 90
    source.setMechanism(mech)
    assert source.getEventParam('dip') == exp_dip
    assert source.getEventParam('rake') == exp_rake
    source.setMechanism('ALL', dip=45, rake=315)
    assert source.getEventParam('rake') == -45
    #this should raise an exception
    try:
        source.setMechanism('ALL', dip=110)
    except ShakeMapException as sme:
        print('Exception raised appropriately for dip greater than 90.')
    #this should raise an exception
    try:
        source.setMechanism('ALL', rake=370)
    except ShakeMapException as sme:
        print('Exception raised appropriately for rake greater than 360.')
    print('Test setting mechanism and rake/dip...')
Ejemplo n.º 2
0
def test():
    fault_text = """30.979788       103.454422      1
31.691615       104.419160      1
31.723569       104.374760      1
32.532213       105.220821      1
32.641450       105.135050      20
31.846790       104.246202      20
31.942158       104.205286      20
31.290105       103.284388      20
30.979788       103.454422      1"""
    event_text = """<?xml version="1.0" encoding="US-ASCII" standalone="yes"?>
<earthquake id="2008ryan" lat="30.9858" lon="103.3639" mag="7.9" year="2008" month="05" day="12" hour="06" minute="28" second="01" timezone="GMT" depth="19.0" locstring="EASTERN SICHUAN, CHINA" created="1211173621" otime="1210573681" type="" />
    """
    print('Testing creation of source object...')
    source_text = """mech=RS"""
    ffile = io.StringIO(fault_text)
    efile = io.StringIO(event_text)
    sfile = io.StringIO(source_text)
    source = Source.readFromFile(efile,faultfile=ffile,sourcefile=sfile)
    print('Passed creation of source object.')

    print('Testing creation of RuptureContext object...')
    gmpe = abrahamson_2014.AbrahamsonEtAl2014()
    rupture = source.getRuptureContext([gmpe])
    testdict = {'mag':7.9,
                'strike': -133.083550974,
                'dip': 49.8524115024,
                'rake': 45.0,
                'ztor':0.999999999995,
                'hypo_lon':103.3639,
                'hypo_lat':30.9858,
                'hypo_depth':19.0,
                'width':27.8623813381}
    for key in testdict.keys():
        value = eval('rupture.%s' % key)
        np.testing.assert_almost_equal(testdict[key],value)
    print('Passed creation of RuptureContext object...')
    
    print('Test setting mechanism and rake/dip...')
    mech = 'RS'
    exp_dip = 40
    exp_rake = 90
    source.setMechanism(mech)
    assert source.getEventParam('dip') == exp_dip
    assert source.getEventParam('rake') == exp_rake
    source.setMechanism('ALL',dip=45,rake=315)
    assert source.getEventParam('rake') == -45
    #this should raise an exception
    try:
        source.setMechanism('ALL',dip=110)
    except ShakeMapException as sme:
        print('Exception raised appropriately for dip greater than 90.')
    #this should raise an exception
    try:
        source.setMechanism('ALL',rake=370)
    except ShakeMapException as sme:
        print('Exception raised appropriately for rake greater than 360.')
    print('Test setting mechanism and rake/dip...')
Ejemplo n.º 3
0
def _test_northridge():
    fault_text = """
    # Source: Wald, D. J., T. H. Heaton, and K. W. Hudnut (1996). The Slip History of the 1994 Northridge, California, Earthquake Determined from Strong-Motion, Teleseismic, GPS, and Leveling Data, Bull. Seism. Soc. Am. 86, S49-S70.
    34.315 -118.421 5.000
    34.401 -118.587 5.000
    34.261 -118.693 20.427
    34.175 -118.527 20.427
    34.315 -118.421 5.000
    """
    event_text = """<?xml version="1.0" encoding="US-ASCII" standalone="yes"?>
<earthquake id="blah" lat="34.213" lon="-118.537" mag="7.9" year="1994" month="01" day="17" hour="12" minute="30" second="55" timezone="GMT" depth="18.4" locstring="NORTHRIDGE" created="1211173621" otime="1210573681" type="" />
    """
    source_text = """mech=RS"""
    ffile = io.StringIO(fault_text)
    efile = io.StringIO(event_text)
    sfile = io.StringIO(source_text)
    source = Source.readFromFile(efile,faultfile=ffile,sourcefile=sfile)
    gmpe = abrahamson_2014.AbrahamsonEtAl2014()
    rupture = source.getRuptureContext(gmpe)
    mapwidth = 2.0
    latmin = rupture.hypo_lat - mapwidth
    latmax = rupture.hypo_lat + mapwidth
    lonmin = rupture.hypo_lon - mapwidth
    lonmax = rupture.hypo_lon + mapwidth
    dim = 0.02
    lats = np.arange(latmin,latmax,dim)
    lons = np.arange(lonmin,lonmax,dim)
    lon,lat = np.meshgrid(lons,lats)
    dep = np.zeros_like(lon)
    mesh = Mesh(lon,lat,dep)
    distances = source.getDistanceContext(gmpe,mesh)
    rupture = source.getRuptureContext(gmpe)
    for key in rupture._slots_:
        try:
            value = eval('rupture.%s' % key)
        except:
            print('No value set for %s' % key)
            continue
        print('%s = %s' % (key,str(value)))    

    cbuf = io.StringIO(fault_text)
    fault = Fault.readFaultFile(cbuf)
Ejemplo n.º 4
0
def _test_northridge():
    fault_text = """
    # Source: Wald, D. J., T. H. Heaton, and K. W. Hudnut (1996). The Slip History of the 1994 Northridge, California, Earthquake Determined from Strong-Motion, Teleseismic, GPS, and Leveling Data, Bull. Seism. Soc. Am. 86, S49-S70.
    34.315 -118.421 5.000
    34.401 -118.587 5.000
    34.261 -118.693 20.427
    34.175 -118.527 20.427
    34.315 -118.421 5.000
    """
    event_text = """<?xml version="1.0" encoding="US-ASCII" standalone="yes"?>
<earthquake id="blah" lat="34.213" lon="-118.537" mag="7.9" year="1994" month="01" day="17" hour="12" minute="30" second="55" timezone="GMT" depth="18.4" locstring="NORTHRIDGE" created="1211173621" otime="1210573681" type="" />
    """
    source_text = """mech=RS"""
    ffile = io.StringIO(fault_text)
    efile = io.StringIO(event_text)
    sfile = io.StringIO(source_text)
    source = Source.readFromFile(efile, faultfile=ffile, sourcefile=sfile)
    gmpe = abrahamson_2014.AbrahamsonEtAl2014()
    rupture = source.getRuptureContext(gmpe)
    mapwidth = 2.0
    latmin = rupture.hypo_lat - mapwidth
    latmax = rupture.hypo_lat + mapwidth
    lonmin = rupture.hypo_lon - mapwidth
    lonmax = rupture.hypo_lon + mapwidth
    dim = 0.02
    lats = np.arange(latmin, latmax, dim)
    lons = np.arange(lonmin, lonmax, dim)
    lon, lat = np.meshgrid(lons, lats)
    dep = np.zeros_like(lon)
    mesh = Mesh(lon, lat, dep)
    distances = source.getDistanceContext(gmpe, mesh)
    rupture = source.getRuptureContext(gmpe)
    for key in rupture._slots_:
        try:
            value = eval('rupture.%s' % key)
        except:
            print('No value set for %s' % key)
            continue
        print('%s = %s' % (key, str(value)))

    cbuf = io.StringIO(fault_text)
    fault = Fault.readFaultFile(cbuf)