def test_get_obs_from_mag(): """geomag.StreamConverter_test.test_get_obs_from_mag() The magnetic stream containing the traces ''h'', ''d'', ''z'', and ''f'' converts to the observatory stream containing the traces ''h'', ''e'' and/or ''d'', ''z'', and ''f'' """ mag = obspy.core.Stream() # Call get_obs_from_mag using a decbas of 15, a H stream of [1,1], # and a D stream of [30 degrees, 45 degrees]. Expect a H stream # of [cos(15), cos(30)], a D stream of [30 degrees, 45 degrees], # and a E stream of [sin(15), sin(30)] DECBAS = 15 * D2I mag += __create_trace('H', [1, 1], DECBAS) mag += __create_trace('D', [30 * D2R, 45 * D2R], DECBAS) mag += __create_trace('Z', [1, 1], DECBAS) mag += __create_trace('F', [1, 1], DECBAS) obs = StreamConverter.get_obs_from_mag(mag, True) H = obs.select(channel='H')[0].data D = obs.select(channel='D')[0].data E = obs.select(channel='E')[0].data assert_almost_equal(H, [cos(15 * D2R), cos(30 * D2R)], 9, 'Expect H to equal [cos(15), cos(30)', True) assert_almost_equal(D, [15 * D2R, 30 * D2R], 9, 'Expect D to equal [15 degrees, 30 degrees', True) assert_almost_equal(E, [sin(15 * D2R), sin(30 * D2R)], 9, 'Expect E to equal [sin(15), sin(30)', True)
def process(self, timeseries): """converts a timeseries stream into a different coordinate system Parameters ---------- informat: string indicates the input coordinate system. outformat: string indicates the output coordinate system. out_stream: obspy.core.Stream new stream object containing the converted coordinates. """ self.check_stream(timeseries) out_stream = None if self.outformat == 'geo': if self.informat == 'geo': out_stream = timeseries elif self.informat == 'mag': out_stream = StreamConverter.get_geo_from_mag(timeseries) elif self.informat == 'obs' or self.informat == 'obsd': out_stream = StreamConverter.get_geo_from_obs(timeseries) elif self.outformat == 'mag': if self.informat == 'geo': out_stream = StreamConverter.get_mag_from_geo(timeseries) elif self.informat == 'mag': out_stream = timeseries elif self.informat == 'obs' or self.informat == 'obsd': out_stream = StreamConverter.get_mag_from_obs(timeseries) elif self.outformat == 'obs': if self.informat == 'geo': out_stream = StreamConverter.get_obs_from_geo(timeseries) elif self.informat == 'mag': out_stream = StreamConverter.get_obs_from_mag(timeseries) elif self.informat == 'obs' or self.informat == 'obsd': out_stream = StreamConverter.get_obs_from_obs(timeseries, include_e=True) elif self.outformat == 'obsd': if self.informat == 'geo': out_stream = StreamConverter.get_obs_from_geo(timeseries, include_d=True) elif self.informat == 'mag': out_stream = StreamConverter.get_obs_from_mag(timeseries, include_d=True) elif self.informat == 'obs' or self.informat == 'obsd': out_stream = StreamConverter.get_obs_from_obs(timeseries, include_d=True) return out_stream