Skip to content
Snippets Groups Projects
Commit ffed3674 authored by Cain, Payton David's avatar Cain, Payton David Committed by Jeremy M Fee
Browse files

Add controller arguments, change interval to period, and reformat interval method

parent 5aa97805
No related branches found
No related tags found
No related merge requests found
from .Algorithm import Algorithm
from ..TimeseriesUtility import create_empty_trace, get_interval_from_delta
from ..TimeseriesUtility import (
create_empty_trace,
get_interval_from_delta,
get_delta_from_interval,
)
import numpy as np
from obspy.core import Stream, Stats
class DbDtAlgorithm(Algorithm):
def __init__(self, inchannels=None, outchannels=None, interval=None):
def __init__(self, inchannels=None, outchannels=None, period=None):
"""
Derivative algorithm that takes derivative of timeseries using second order central differences(numpy.gradient)
"""
Algorithm.__init__(self, inchannels=None, outchannels=None)
self.inchannels = inchannels
self.outchannels = outchannels
self.interval = interval
self.period = period
def process(self, stream):
"""
......@@ -32,9 +36,9 @@ class DbDtAlgorithm(Algorithm):
for trace in stream:
dbdt = np.diff(trace.data)
stats = Stats(trace.stats)
stats.channel = "{}__DDT".format(stats.channel)
stats.channel = "{}_DDT".format(stats.channel)
trace_out = create_empty_trace(
starttime=stats.starttime + self.interval,
starttime=stats.starttime + self.period,
endtime=stats.endtime,
observatory=stats.station,
type=stats.location,
......@@ -48,17 +52,30 @@ class DbDtAlgorithm(Algorithm):
out += trace_out
return out
def get_interval(self, start):
def get_input_interval(self, start, end, observatory=None, channels=None):
"""
Adjust time interval for input data.
Parameters
----------
start : obspy.core.UTCDatetime
input starttime
end : obspy.core.UTCDatetime
input endtime
Returns
-------
start : obspy.core.UTCDatetime
output starttime
end : obspy.core.UTCDatetime
output endtime
"""
start -= self.interval
return start
start -= self.period
return (start, end)
def configure(self, arguments):
"""Configure algorithm using comand line arguments.
Parameters
----------
arguments: Namespace
parsed command line arguments
"""
self.period = get_delta_from_interval(arguments.interval)
from .Algorithm import Algorithm
from ..TimeseriesUtility import create_empty_trace, get_interval_from_delta
import numpy as np
from obspy.core import Stream, Stats
class DbDtAlgorithm(Algorithm):
def __init__(self, inchannels=None, outchannels=None, interval=None):
"""
Derivative algorithm that takes derivative of timeseries using second order central differences(numpy.gradient)
"""
Algorithm.__init__(self, inchannels=None, outchannels=None)
self.inchannels = inchannels
self.outchannels = outchannels
self.interval = interval
def process(self, stream):
"""
Run algorithm for a stream.
Processes all traces in the stream.
Parameters
----------
stream : obspy.core.Stream
stream of data to process
Returns
-------
out : obspy.core.Stream
stream containing 1 trace per original trace.
"""
out = Stream()
for trace in stream:
dbdt = np.diff(trace.data)
stats = Stats(trace.stats)
stats.channel = "{}__DDT".format(stats.channel)
trace_out = create_empty_trace(
starttime=stats.starttime,
endtime=stats.endtime,
observatory=stats.station,
type=stats.location,
interval=get_interval_from_delta(stats.delta),
channel=stats.channel,
network=stats.network,
station=stats.station,
location=stats.location,
)
trace_out.data = dbdt
out += trace_out
return out
def get_interval(self, end):
"""
Adjust time interval for input data.
Parameters
----------
end : obspy.core.UTCDatetime
input endtime
Returns
-------
end : obspy.core.UTCDatetime
output endtime
"""
end += self.interval
return end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment