Пример #1
0
    def distances_from_event_set(self, event_set, event_set_trace_starts=True):
        """
        The distance from self.sites to event_set.centroids.
        A big array-like object.
        """

        if event_set_trace_starts:
            return Distances(self.latitude,
                             self.longitude,
                             event_set.rupture_centroid_lat,
                             event_set.rupture_centroid_lon,
                             event_set.length,
                             event_set.azimuth,
                             event_set.width,
                             event_set.dip,
                             event_set.depth,
                             event_set.depth_to_top,
                             projection,
                             trace_start_lat=event_set.trace_start_lat,
                             trace_start_lon=event_set.trace_start_lon,
                             rupture_centroid_x=event_set.rupture_centroid_x,
                             rupture_centroid_y=event_set.rupture_centroid_y)
        else:
            return Distances(
                self.latitude, self.longitude, event_set.rupture_centroids_lat,
                event_set.rupture_centroids_lon, event_set.lengths,
                event_set.azimuths, event_set.widths, event_set.dips,
                event_set.depths, event_set.depths_to_top, projection)
Пример #2
0
    def test_mendez_distances(self):
        dist = Distances(None, None, None, None, None, None, None, None, None,
                         None, None)

        rupture_centroid_lat = asarray((-31.0, -33, -36))
        rupture_centroid_lon = asarray((116.0, 118, 222))

        site_lat = asarray((-31, -32, -33, -34))
        site_lon = asarray((116.0, 116.0, 116.0, 116.0))

        distance1 = dist.raw_distances(site_lat, site_lon,
                                       rupture_centroid_lat,
                                       rupture_centroid_lon, lengths, azimuths,
                                       widths, dips, depths, depths_to_top,
                                       'Epicentral', projection)

        distance2 = dist.raw_distances(site_lat,
                                       site_lon,
                                       rupture_centroid_lat,
                                       rupture_centroid_lon,
                                       lengths,
                                       azimuths,
                                       widths,
                                       dips,
                                       depths,
                                       depths_to_top,
                                       'Obsolete_Mendez_epicentral',
                                       projection,
                                       trace_start_lat=rupture_centroid_lat,
                                       trace_start_lon=rupture_centroid_lon,
                                       rupture_centroid_x=0.0,
                                       rupture_centroid_y=0.0)

        assert allclose(distance1, distance2)
Пример #3
0
    def test_Epicentral2(self):
        dist = Distances(None, None, None, None, None, None, None, None, None,
                         None, None)

        distance_type = 'Epicentral'
        rupture_centroid_lat = asarray((-31.0, -33, -36))
        rupture_centroid_lon = asarray((116.0, 118, 222))

        site_lat = asarray((-31, -32, -33, -34))
        site_lon = asarray((116.0, 116.0, 116.0, 116.0))

        distance = dist.raw_distances(site_lat, site_lon, rupture_centroid_lat,
                                      rupture_centroid_lon, lengths, azimuths,
                                      widths, dips, depths, depths_to_top,
                                      distance_type, projection)

        d = As_The_Cockey_Flies(rupture_centroid_lat, rupture_centroid_lon,
                                site_lat, site_lon)

        assert allclose(d, distance, rtol=0.1)
Пример #4
0
    def test_Epicentral(self):
        dist = Distances(None, None, None, None, None, None, None, None, None,
                         None, None)

        distance_type = 'Epicentral'

        rupture_centroid_lat = asarray((-31.0))
        rupture_centroid_lon = asarray((116.0))

        site_lat = asarray((-31, -32, -33, -34))
        site_lon = asarray((116.0, 116.0, 116.0, 116.0))

        distance = dist.raw_distances(site_lat, site_lon, rupture_centroid_lat,
                                      rupture_centroid_lon, lengths, azimuths,
                                      widths, dips, depths, depths_to_top,
                                      distance_type, projection)

        d = asarray((0, 1, 2, 3)) * (1.852 * 60)
        d = d[:, newaxis]
        d2 = As_The_Cockey_Flies(rupture_centroid_lat, rupture_centroid_lon,
                                 site_lat, site_lon)

        assert allclose(d, distance, rtol=0.001)
        assert allclose(d, d2)
Пример #5
0
    def test_Hypocentral(self):
        dist = Distances(None, None, None, None, None, None, None, None, None,
                         None, None)

        distance_type = 'Hypocentral'
        depths = 10.0
        rupture_centroid_lat = asarray((-31.0, -33, -36))
        rupture_centroid_lon = asarray((116.0, 118, 222))

        site_lat = asarray((-31, -32, -33, -34))
        site_lon = asarray((116.0, 116.0, 116.0, 116.0))

        d = dist.raw_distances(site_lat, site_lon, rupture_centroid_lat,
                               rupture_centroid_lon, lengths, azimuths, widths,
                               dips, depths, depths_to_top, 'Epicentral',
                               projection)

        distance = dist.raw_distances(site_lat, site_lon, rupture_centroid_lat,
                                      rupture_centroid_lon, lengths, azimuths,
                                      widths, dips, depths, depths_to_top,
                                      distance_type, projection)

        d = sqrt(d * d + depths * depths)
        assert allclose(d, distance)