Exemple #1
0
    def test_scenario_event_II(self):
        eqrm_flags = DummyEventSet()
        eqrm_flags.scenario_latitude = [-30., -32.]
        eqrm_flags.scenario_longitude = [150., -151.]
        eqrm_flags.scenario_azimuth = [340, 330]
        eqrm_flags.dip = [37, 30]
        eqrm_flags.scenario_magnitude = [8, 7.5]
        eqrm_flags.scenario_max_width = [15, 7]
        eqrm_flags.scenario_depth = [11.5, 11.0]
        eqrm_flags.scenario_number_of_events = 1  # If this is 2 it fails

        event_set = Event_Set.create_scenario_events(
            rupture_centroid_lat=eqrm_flags.scenario_latitude,
            rupture_centroid_lon=eqrm_flags.scenario_longitude,
            azimuth=eqrm_flags.scenario_azimuth,
            dip=eqrm_flags.dip,
            Mw=eqrm_flags.scenario_magnitude,
            fault_width=eqrm_flags.scenario_max_width,
            depth=eqrm_flags.scenario_depth,
            scenario_number_of_events=eqrm_flags.scenario_number_of_events)

        answer = array(eqrm_flags.scenario_latitude)
        self.assert_(allclose(event_set.rupture_centroid_lat, answer))

        answer = array(eqrm_flags.scenario_longitude)
        self.assert_(allclose(event_set.rupture_centroid_lon, answer))

        answer = array(eqrm_flags.scenario_azimuth)
        self.assert_(allclose(event_set.azimuth, answer))

        answer = array(eqrm_flags.dip)
        self.assert_(allclose(event_set.dip, answer))

        answer = array(eqrm_flags.scenario_magnitude)
        self.assert_(allclose(event_set.Mw, answer))

        answer = array(eqrm_flags.scenario_depth)
        self.assert_(allclose(event_set.depth, answer))

        self.assert_(eqrm_flags.scenario_number_of_events, len(event_set.Mw))

        area = array((conversions.modified_Wells_and_Coppersmith_94_area(
            eqrm_flags.scenario_magnitude[0]),
                      conversions.modified_Wells_and_Coppersmith_94_area(
                          eqrm_flags.scenario_magnitude[1])))

        width = array(
            conversions.modified_Wells_and_Coppersmith_94_width(
                eqrm_flags.dip, eqrm_flags.scenario_magnitude, area,
                eqrm_flags.scenario_max_width))
        self.assert_(allclose(event_set.width, width))

        answer = area / width
        self.assert_(allclose(event_set.length, answer))
Exemple #2
0
    def test_scenario_event_II(self):
        eqrm_flags = DummyEventSet()
        eqrm_flags.scenario_latitude = [-30., -32.]
        eqrm_flags.scenario_longitude = [150., -151.]
        eqrm_flags.scenario_azimuth = [340, 330]
        eqrm_flags.dip = [37, 30]
        eqrm_flags.scenario_magnitude = [8, 7.5]
        eqrm_flags.scenario_max_width = [15, 7]
        eqrm_flags.scenario_depth = [11.5, 11.0]
        eqrm_flags.scenario_number_of_events = 1 # If this is 2 it fails
        
        event_set = Event_Set.create_scenario_events(
            rupture_centroid_lat=eqrm_flags.scenario_latitude,
            rupture_centroid_lon=eqrm_flags.scenario_longitude,
            azimuth=eqrm_flags.scenario_azimuth,
            dip=eqrm_flags.dip,
            Mw=eqrm_flags.scenario_magnitude,
            fault_width=eqrm_flags.scenario_max_width,
            depth=eqrm_flags.scenario_depth,
            scenario_number_of_events=eqrm_flags.scenario_number_of_events)
    
        answer = array(eqrm_flags.scenario_latitude)
        self.assert_(allclose(event_set.rupture_centroid_lat, answer))
        
        answer = array(eqrm_flags.scenario_longitude)
        self.assert_(allclose(event_set.rupture_centroid_lon, answer))
        
        answer = array(eqrm_flags.scenario_azimuth)
        self.assert_(allclose(event_set.azimuth, answer))
        
        answer = array(eqrm_flags.dip)
        self.assert_(allclose(event_set.dip, answer))
        
        answer = array(eqrm_flags.scenario_magnitude)
        self.assert_(allclose(event_set.Mw, answer))
        
        answer = array(eqrm_flags.scenario_depth)
        self.assert_(allclose(event_set.depth, answer))
        
        self.assert_(eqrm_flags.scenario_number_of_events, len(event_set.Mw))

        area = array((conversions.modified_Wells_and_Coppersmith_94_area(
            eqrm_flags.scenario_magnitude[0]),
            conversions.modified_Wells_and_Coppersmith_94_area(
            eqrm_flags.scenario_magnitude[1])))

        width = array(conversions.modified_Wells_and_Coppersmith_94_width(
            eqrm_flags.dip, eqrm_flags.scenario_magnitude, area,
            eqrm_flags.scenario_max_width ))
        self.assert_(allclose(event_set.width, width))
        
        answer = area/width 
        self.assert_(allclose(event_set.length, answer))
Exemple #3
0
    def test_scenario_event_max_width(self):
        eqrm_flags = DummyEventSet()
        eqrm_flags.scenario_latitude = -32.95
        eqrm_flags.scenario_longitude = 151.61
        eqrm_flags.scenario_azimuth = 340
        eqrm_flags.dip = 35
        eqrm_flags.scenario_magnitude = 8
        eqrm_flags.scenario_max_width = None
        eqrm_flags.scenario_depth = 11.5
        eqrm_flags.scenario_number_of_events = 1

        event_set = Event_Set.create_scenario_events(
            rupture_centroid_lat=[eqrm_flags.scenario_latitude],
            rupture_centroid_lon=[eqrm_flags.scenario_longitude],
            azimuth=[eqrm_flags.scenario_azimuth],
            dip=[eqrm_flags.dip],
            Mw=[eqrm_flags.scenario_magnitude],
            fault_width=eqrm_flags.scenario_max_width,
            depth=[eqrm_flags.scenario_depth],
            scenario_number_of_events=eqrm_flags.scenario_number_of_events)

        #print "event_set.rupture_centroid_lat", event_set.rupture_centroid_lat
        answer = array(eqrm_flags.scenario_latitude)
        self.assert_(allclose(event_set.rupture_centroid_lat, answer))

        answer = array(eqrm_flags.scenario_longitude)
        self.assert_(allclose(event_set.rupture_centroid_lon, answer))

        answer = array(eqrm_flags.scenario_azimuth)
        self.assert_(allclose(event_set.azimuth, answer))

        answer = array(eqrm_flags.dip)
        self.assert_(allclose(event_set.dip, answer))

        answer = array(eqrm_flags.scenario_magnitude)
        self.assert_(allclose(event_set.Mw, answer))

        answer = array(eqrm_flags.scenario_depth)
        self.assert_(allclose(event_set.depth, answer))

        self.assert_(eqrm_flags.scenario_number_of_events, len(event_set.Mw))

        area = array(
            conversions.modified_Wells_and_Coppersmith_94_area(
                eqrm_flags.scenario_magnitude))

        width = array(
            conversions.modified_Wells_and_Coppersmith_94_width(
                eqrm_flags.dip, eqrm_flags.scenario_magnitude, area,
                eqrm_flags.scenario_max_width))
        self.assert_(allclose(event_set.width, width))

        answer = area / width
        self.assert_(allclose(event_set.length, answer))
Exemple #4
0
    def test_scenario_event_max_width(self):
        eqrm_flags = DummyEventSet()
        eqrm_flags.scenario_latitude = -32.95
        eqrm_flags.scenario_longitude = 151.61
        eqrm_flags.scenario_azimuth = 340
        eqrm_flags.dip = 35
        eqrm_flags.scenario_magnitude = 8
        eqrm_flags.scenario_max_width = None
        eqrm_flags.scenario_depth = 11.5
        eqrm_flags.scenario_number_of_events = 1
        
        event_set = Event_Set.create_scenario_events(
            rupture_centroid_lat=[eqrm_flags.scenario_latitude],
            rupture_centroid_lon=[eqrm_flags.scenario_longitude],
            azimuth=[eqrm_flags.scenario_azimuth],
            dip=[eqrm_flags.dip],
            Mw=[eqrm_flags.scenario_magnitude],
            fault_width=eqrm_flags.scenario_max_width,
            depth=[eqrm_flags.scenario_depth],
            scenario_number_of_events=eqrm_flags.scenario_number_of_events)

        #print "event_set.rupture_centroid_lat", event_set.rupture_centroid_lat
        answer = array(eqrm_flags.scenario_latitude)
        self.assert_(allclose(event_set.rupture_centroid_lat, answer))
        
        answer = array(eqrm_flags.scenario_longitude)
        self.assert_(allclose(event_set.rupture_centroid_lon, answer))
        
        answer = array(eqrm_flags.scenario_azimuth)
        self.assert_(allclose(event_set.azimuth, answer))
        
        answer = array(eqrm_flags.dip)
        self.assert_(allclose(event_set.dip, answer))
        
        answer = array(eqrm_flags.scenario_magnitude)
        self.assert_(allclose(event_set.Mw, answer))
        
        answer = array(eqrm_flags.scenario_depth)
        self.assert_(allclose(event_set.depth, answer))
        
        self.assert_(eqrm_flags.scenario_number_of_events, len(event_set.Mw))

        area = array(conversions.modified_Wells_and_Coppersmith_94_area(
            eqrm_flags.scenario_magnitude))

        width = array(conversions.modified_Wells_and_Coppersmith_94_width(
            eqrm_flags.dip,
            eqrm_flags.scenario_magnitude, area, eqrm_flags.scenario_max_width ))
        self.assert_ (allclose(event_set.width, width))
        
        answer = area/width 
        self.assert_(allclose(event_set.length, answer))
Exemple #5
0
    def test_scenario_event_5(self):

        eqrm_flags = DummyEventSet()
        eqrm_flags.scenario_latitude = [0.]
        eqrm_flags.scenario_longitude = [150.]
        eqrm_flags.scenario_azimuth = [0]
        eqrm_flags.dip = [45]
        eqrm_flags.scenario_magnitude = [6.02]
        eqrm_flags.scenario_max_width = [4]
        eqrm_flags.scenario_depth = [7]
        eqrm_flags.scenario_number_of_events = 1

        event_set = Event_Set.create_scenario_events(
            rupture_centroid_lat=eqrm_flags.scenario_latitude,
            rupture_centroid_lon=eqrm_flags.scenario_longitude,
            azimuth=eqrm_flags.scenario_azimuth,
            dip=eqrm_flags.dip,
            Mw=eqrm_flags.scenario_magnitude,
            fault_width=eqrm_flags.scenario_max_width,
            depth=eqrm_flags.scenario_depth,
            scenario_number_of_events=eqrm_flags.scenario_number_of_events)


        answer = array(eqrm_flags.scenario_max_width)
        self.assert_ (allclose(event_set.width, answer))

        area = array((conversions.modified_Wells_and_Coppersmith_94_area(
            eqrm_flags.scenario_magnitude[0])))
        self.assert_ (allclose(100., area))

        width = array(
            conversions.modified_Wells_and_Coppersmith_94_width(
            eqrm_flags.dip, eqrm_flags.scenario_magnitude,
            area, eqrm_flags.scenario_max_width ))
        self.assert_ (allclose(4., width))
        self.assert_ (allclose(event_set.width, width))

        self.assert_ (allclose(event_set.length, 25.))

        self.assert_ (allclose(event_set.rupture_centroid_x, 12.5))

        # Due to the 45 deg dip
        self.assert_ (allclose(event_set.rupture_centroid_y, event_set.depth))

        # When the Azimuth is 0 increasing length moves the start trace lower
        # , southward, for 45 deg dips
        #event_set.trace_start_lat [0]
        #event_set.trace_start_lon [ 150]

        km_per_degree = 111.125113474
        # trace start lat = 0 -12.5/111.125 = -0.1124859392575928
        # trace start long = 150 - 7/111.125 = 149.937


        # print "event_set.trace_start_lat", event_set.trace_start_lat
        # print "event_set.trace_start_lon", event_set.trace_start_lon
        self.assert_ (allclose(event_set.trace_start_lon, 149.937))
        self.assert_ (allclose(event_set.trace_start_lat, -0.1124859))

        eqrm_flags.scenario_depth = [km_per_degree]

        event_set = Event_Set.create_scenario_events(
            rupture_centroid_lat=eqrm_flags.scenario_latitude,
            rupture_centroid_lon=eqrm_flags.scenario_longitude,
            azimuth=eqrm_flags.scenario_azimuth,
            dip=eqrm_flags.dip,
            Mw=eqrm_flags.scenario_magnitude,
            fault_width=eqrm_flags.scenario_max_width,
            depth=eqrm_flags.scenario_depth,
            scenario_number_of_events=eqrm_flags.scenario_number_of_events)

        # trace start lon = 150 - 111.125/111.125  = 149

        # print "event_set.trace_start_lat", event_set.trace_start_lat
        # print "event_set.trace_start_lon", event_set.trace_start_lon
        self.assert_ (allclose(event_set.trace_start_lon, 149.0))
        self.assert_ (allclose(event_set.trace_start_lat, -0.1124859))
Exemple #6
0
    def test_scenario_event_4(self):
        
        eqrm_flags = DummyEventSet()
        eqrm_flags.scenario_latitude = [-30.]
        eqrm_flags.scenario_longitude = [150.]
        eqrm_flags.scenario_azimuth = [0]
        eqrm_flags.dip = [45]
        eqrm_flags.scenario_magnitude = [6.02]
        eqrm_flags.scenario_max_width = [5]
        eqrm_flags.scenario_depth = [7]
        eqrm_flags.scenario_number_of_events = 1
        
        event_set = Event_Set.create_scenario_events(
            rupture_centroid_lat=eqrm_flags.scenario_latitude,
            rupture_centroid_lon=eqrm_flags.scenario_longitude,
            azimuth=eqrm_flags.scenario_azimuth,
            dip=eqrm_flags.dip,
            Mw=eqrm_flags.scenario_magnitude,
            fault_width=eqrm_flags.scenario_max_width,
            depth=eqrm_flags.scenario_depth,
            scenario_number_of_events=eqrm_flags.scenario_number_of_events)

    
        answer = array(eqrm_flags.scenario_max_width)
        self.assert_ (allclose(event_set.width, answer))
        
        area = array((conversions.modified_Wells_and_Coppersmith_94_area(
            eqrm_flags.scenario_magnitude[0])))
        self.assert_ (allclose(100., area))

        width = array(
            conversions.modified_Wells_and_Coppersmith_94_width(
            eqrm_flags.dip, eqrm_flags.scenario_magnitude,
            area, eqrm_flags.scenario_max_width ))
        self.assert_ (allclose(5., width))
        self.assert_ (allclose(event_set.width, width))
        
        self.assert_ (allclose(event_set.length, 20.))
        
        self.assert_ (allclose(event_set.rupture_centroid_x, 10.))

        # Due to the 45 deg dip
        self.assert_ (allclose(event_set.rupture_centroid_y, event_set.depth))

        #event_set.trace_start_lat [-30.09]
        #event_set.trace_start_lon [ 149.93]

        
        # Zone:   56 
        #Easting:  210590.347  Northing: 6677424.096 
        #Latitude:   -30  0 ' 0.00000 ''  Longitude: 150  0 ' 0.00000 ''
        
        # start
        # Easting:  203590.347
        # Northing: 6667424.096
        # Latitude:   -30 5 ' 18.39181 ''  Longitude: 149 55 ' 29.06358
        # -30.08
        # 149.92
        
        # End 
        # Easting:  203583.347
        # Northing: 6687424.096
        # Latitude:   -29 54 ' 29.55723 ''  Longitude: 149 55 ' 49.06877 ''
        # -29.90
        # 149.92

        self.assert_ (allclose(event_set.trace_start_lat, -30.08,0.001))
        self.assert_ (allclose(event_set.trace_start_lon, 149.9,0.001))
        
        repr = event_set.__repr__()
        repr_list = repr.split('\n')
        results = repr_list[1].split(':')
        self.assert_ (int(results[1]) == 1)
        results = repr_list[2].split(':')
        self.assert_ (float(results[1].strip('[]')) == \
                      eqrm_flags.scenario_latitude[0])
        results = repr_list[3].split(':')
        self.assert_ (float(results[1].strip('[]')) == \
                      eqrm_flags.scenario_longitude[0])
        results = repr_list[4].split(':')
        self.assert_ (float(results[1].strip('[]')) == \
                      eqrm_flags.scenario_magnitude [0])
        self.assert_ (len(event_set) == 1)
Exemple #7
0
    def test_scenario_event_5(self):

        eqrm_flags = DummyEventSet()
        eqrm_flags.scenario_latitude = [0.]
        eqrm_flags.scenario_longitude = [150.]
        eqrm_flags.scenario_azimuth = [0]
        eqrm_flags.dip = [45]
        eqrm_flags.scenario_magnitude = [6.02]
        eqrm_flags.scenario_max_width = [4]
        eqrm_flags.scenario_depth = [7]
        eqrm_flags.scenario_number_of_events = 1

        event_set = Event_Set.create_scenario_events(
            rupture_centroid_lat=eqrm_flags.scenario_latitude,
            rupture_centroid_lon=eqrm_flags.scenario_longitude,
            azimuth=eqrm_flags.scenario_azimuth,
            dip=eqrm_flags.dip,
            Mw=eqrm_flags.scenario_magnitude,
            fault_width=eqrm_flags.scenario_max_width,
            depth=eqrm_flags.scenario_depth,
            scenario_number_of_events=eqrm_flags.scenario_number_of_events)

        answer = array(eqrm_flags.scenario_max_width)
        self.assert_(allclose(event_set.width, answer))

        area = array((conversions.modified_Wells_and_Coppersmith_94_area(
            eqrm_flags.scenario_magnitude[0])))
        self.assert_(allclose(100., area))

        width = array(
            conversions.modified_Wells_and_Coppersmith_94_width(
                eqrm_flags.dip, eqrm_flags.scenario_magnitude, area,
                eqrm_flags.scenario_max_width))
        self.assert_(allclose(4., width))
        self.assert_(allclose(event_set.width, width))

        self.assert_(allclose(event_set.length, 25.))

        self.assert_(allclose(event_set.rupture_centroid_x, 12.5))

        # Due to the 45 deg dip
        self.assert_(allclose(event_set.rupture_centroid_y, event_set.depth))

        # When the Azimuth is 0 increasing length moves the start trace lower
        # , southward, for 45 deg dips
        #event_set.trace_start_lat [0]
        #event_set.trace_start_lon [ 150]

        km_per_degree = 111.125113474
        # trace start lat = 0 -12.5/111.125 = -0.1124859392575928
        # trace start long = 150 - 7/111.125 = 149.937

        # print "event_set.trace_start_lat", event_set.trace_start_lat
        # print "event_set.trace_start_lon", event_set.trace_start_lon
        self.assert_(allclose(event_set.trace_start_lon, 149.937))
        self.assert_(allclose(event_set.trace_start_lat, -0.1124859))

        eqrm_flags.scenario_depth = [km_per_degree]

        event_set = Event_Set.create_scenario_events(
            rupture_centroid_lat=eqrm_flags.scenario_latitude,
            rupture_centroid_lon=eqrm_flags.scenario_longitude,
            azimuth=eqrm_flags.scenario_azimuth,
            dip=eqrm_flags.dip,
            Mw=eqrm_flags.scenario_magnitude,
            fault_width=eqrm_flags.scenario_max_width,
            depth=eqrm_flags.scenario_depth,
            scenario_number_of_events=eqrm_flags.scenario_number_of_events)

        # trace start lon = 150 - 111.125/111.125  = 149

        # print "event_set.trace_start_lat", event_set.trace_start_lat
        # print "event_set.trace_start_lon", event_set.trace_start_lon
        self.assert_(allclose(event_set.trace_start_lon, 149.0))
        self.assert_(allclose(event_set.trace_start_lat, -0.1124859))
Exemple #8
0
    def test_scenario_event_4(self):

        eqrm_flags = DummyEventSet()
        eqrm_flags.scenario_latitude = [-30.]
        eqrm_flags.scenario_longitude = [150.]
        eqrm_flags.scenario_azimuth = [0]
        eqrm_flags.dip = [45]
        eqrm_flags.scenario_magnitude = [6.02]
        eqrm_flags.scenario_max_width = [5]
        eqrm_flags.scenario_depth = [7]
        eqrm_flags.scenario_number_of_events = 1

        event_set = Event_Set.create_scenario_events(
            rupture_centroid_lat=eqrm_flags.scenario_latitude,
            rupture_centroid_lon=eqrm_flags.scenario_longitude,
            azimuth=eqrm_flags.scenario_azimuth,
            dip=eqrm_flags.dip,
            Mw=eqrm_flags.scenario_magnitude,
            fault_width=eqrm_flags.scenario_max_width,
            depth=eqrm_flags.scenario_depth,
            scenario_number_of_events=eqrm_flags.scenario_number_of_events)

        answer = array(eqrm_flags.scenario_max_width)
        self.assert_(allclose(event_set.width, answer))

        area = array((conversions.modified_Wells_and_Coppersmith_94_area(
            eqrm_flags.scenario_magnitude[0])))
        self.assert_(allclose(100., area))

        width = array(
            conversions.modified_Wells_and_Coppersmith_94_width(
                eqrm_flags.dip, eqrm_flags.scenario_magnitude, area,
                eqrm_flags.scenario_max_width))
        self.assert_(allclose(5., width))
        self.assert_(allclose(event_set.width, width))

        self.assert_(allclose(event_set.length, 20.))

        self.assert_(allclose(event_set.rupture_centroid_x, 10.))

        # Due to the 45 deg dip
        self.assert_(allclose(event_set.rupture_centroid_y, event_set.depth))

        #event_set.trace_start_lat [-30.09]
        #event_set.trace_start_lon [ 149.93]

        # Zone:   56
        #Easting:  210590.347  Northing: 6677424.096
        #Latitude:   -30  0 ' 0.00000 ''  Longitude: 150  0 ' 0.00000 ''

        # start
        # Easting:  203590.347
        # Northing: 6667424.096
        # Latitude:   -30 5 ' 18.39181 ''  Longitude: 149 55 ' 29.06358
        # -30.08
        # 149.92

        # End
        # Easting:  203583.347
        # Northing: 6687424.096
        # Latitude:   -29 54 ' 29.55723 ''  Longitude: 149 55 ' 49.06877 ''
        # -29.90
        # 149.92

        self.assert_(allclose(event_set.trace_start_lat, -30.08, 0.001))
        self.assert_(allclose(event_set.trace_start_lon, 149.9, 0.001))

        repr = event_set.__repr__()
        repr_list = repr.split('\n')
        results = repr_list[1].split(':')
        self.assert_(int(results[1]) == 1)
        results = repr_list[2].split(':')
        self.assert_ (float(results[1].strip('[]')) == \
                      eqrm_flags.scenario_latitude[0])
        results = repr_list[3].split(':')
        self.assert_ (float(results[1].strip('[]')) == \
                      eqrm_flags.scenario_longitude[0])
        results = repr_list[4].split(':')
        self.assert_ (float(results[1].strip('[]')) == \
                      eqrm_flags.scenario_magnitude [0])
        self.assert_(len(event_set) == 1)