diff --git a/geomagio/edge/EdgeFactory.py b/geomagio/edge/EdgeFactory.py index 6ec9d05e375e544460631dab4a95a42aaf2225d6..2857910a2236cb45356d40874802cdb4daab5401 100644 --- a/geomagio/edge/EdgeFactory.py +++ b/geomagio/edge/EdgeFactory.py @@ -60,8 +60,6 @@ class EdgeFactory(TimeseriesFactory): channel, type, interval) timeseries += data - timeseries.merge() - return timeseries def put_timeseries(self, starttime, endtime, observatory=None, @@ -96,29 +94,6 @@ class EdgeFactory(TimeseriesFactory): """ raise NotImplementedError('"put_timeseries" not implemented') - def get_type_from_edge(self, location): - """Get type from edge location - - Parameters - ---------- - location: {R0, R1, Q0, D0} - the edge location code. - - Returns - ------- - type: {variation, quasi-definitive, definitive} - the type of data - """ - type = None - print location - if location == 'R0' or location == 'R1': - type = 'variation' - elif location == 'Q0': - type = 'quasi-definitive' - elif location == 'D0': - type = 'definitive' - return type - def _get_edge_network(self, observatory, channel, type, interval): """get edge network code. @@ -126,10 +101,10 @@ class EdgeFactory(TimeseriesFactory): ---------- observatory : str observatory code - channels : array_like - list of single character channels {H, E, D, Z, F} + channel : str + single character channel {H, E, D, Z, F} type : str - data type {Definitive, Quasi-definitive, Variation} + data type {definitive, quasi-definitive, variation} interval : str interval length {minute, second} @@ -147,10 +122,10 @@ class EdgeFactory(TimeseriesFactory): ---------- observatory : str observatory code - channels : array_like - list of single character channels {H, E, D, Z, F} + channel : str + single character channel {H, E, D, Z, F} type : str - data type {Definitive, Quasi-definitive, Variation} + data type {definitive, quasi-definitive, variation} interval : str interval length {minute, second} @@ -168,10 +143,10 @@ class EdgeFactory(TimeseriesFactory): ---------- observatory : str observatory code - channels : array_like - list of single character channels {H, E, D, Z, F} + channel : str + single character channel {H, E, D, Z, F} type : str - data type {Definitive, Quasi-definitive, Variation} + data type {definitive, quasi-definitive, variation} interval : str interval length {minute, second} @@ -207,10 +182,10 @@ class EdgeFactory(TimeseriesFactory): ---------- observatory : str observatory code - channels : array_like - list of single character channels {H, E, D, Z, F} + channel : str + single character channel {H, E, D, Z, F} type : str - data type {Definitive, Quasi-definitive, Variation} + data type {definitive, quasi-definitive, variation} interval : str interval length {minute, second} @@ -228,37 +203,6 @@ class EdgeFactory(TimeseriesFactory): location = 'D0' return location - def _get_interval_from_code(self, interval): - """get interval from edge Code. - - The first character of an Edge code represents the interval. - Currently minute and second are represented. - - Parameters - ---------- - observatory : str - observatory code - channels : array_like - list of single character channels {H, E, D, Z, F} - type : str - data type {Definitive, Quasi-definitive, Variation} - interval : str - interval length {minute, second} - - Returns - ------- - interval type - """ - interval_code = None - if interval == 'M': - interval_code = 'minute' - elif interval == 'S': - interval_code = 'second' - else: - raise TimeseriesFactoryException( - 'Unexpected interval code "%s' % interval) - return interval_code - def _get_interval_code(self, interval): """get edge interval code. @@ -269,10 +213,10 @@ class EdgeFactory(TimeseriesFactory): ---------- observatory : str observatory code - channels : array_like - list of single character channels {H, E, D, Z, F} + channel : str + single character channel {H, E, D, Z, F} type : str - data type {Definitive, Quasi-definitive, Variation} + data type {definitive, quasi-definitive, variation} interval : str interval length {minute, second} @@ -306,10 +250,10 @@ class EdgeFactory(TimeseriesFactory): the endtime of the requested data observatory : str observatory code - channels : array_like - list of single character channels {H, E, D, Z, F} + channel : str + single character channel {H, E, D, Z, F} type : str - data type {Definitive, Quasi-definitive, Variation} + data type {definitive, quasi-definitive, variation} interval : str interval length {minute, second} @@ -328,18 +272,25 @@ class EdgeFactory(TimeseriesFactory): type, interval) data = self.client.getWaveform(network, station, location, edge_channel, starttime, endtime) - # stats = obspy.core.Stats(data[0].stats) + data.merge() self._set_metadata(data, observatory, channel, type, interval) - # data[0].stats = stats return data def _set_metadata(self, stream, observatory, channel, type, interval): - """set metadata for a given stream/channel """ - print 'channel' - print channel + """set metadata for a given stream/channel + Parameters + ---------- + observatory : str + observatory code + channel : str + edge channel code {MVH, MVE, MVD, ...} + type : str + data type {definitive, quasi-definitive, variation} + interval : str + interval length {minute, second} + """ + for trace in stream: - trace.stats['channel'] = channel - trace.stats['data_interval'] = interval - trace.stats['data_type'] = type - self.observatoryMetadata.set_metadata(trace.stats, observatory) + self.observatoryMetadata.set_metadata(trace.stats, observatory, + channel, type, interval)