Skip to content
Snippets Groups Projects
Commit 99dcde0b authored by Hal Simpson's avatar Hal Simpson
Browse files

Changed url code to use timeseriesfactory, removed unused write_file function,...

Changed url code to use timeseriesfactory, removed unused write_file function, added post_process function
parent 34ab74db
No related branches found
No related tags found
No related merge requests found
...@@ -5,8 +5,9 @@ import numpy ...@@ -5,8 +5,9 @@ import numpy
from .. import ChannelConverter from .. import ChannelConverter
from ..TimeseriesFactory import TimeseriesFactory from ..TimeseriesFactory import TimeseriesFactory
from ..TimeseriesFactoryException import TimeseriesFactoryException from ..TimeseriesFactoryException import TimeseriesFactoryException
from ..Url import URL from ..Util import read_url
from IMFV283Parser import IMFV283Parser from IMFV283Parser import IMFV283Parser
from ..ObservatoryMetadata import ObservatoryMetadata
class IMFV283Factory(TimeseriesFactory): class IMFV283Factory(TimeseriesFactory):
...@@ -24,9 +25,10 @@ class IMFV283Factory(TimeseriesFactory): ...@@ -24,9 +25,10 @@ class IMFV283Factory(TimeseriesFactory):
""" """
def __init__(self, urlTemplate, observatory=None, channels=None, type=None, def __init__(self, urlTemplate, observatory=None, channels=None, type=None,
interval=None): interval=None, observatoryMetadata=None):
TimeseriesFactory.__init__(self, observatory, channels, type, interval) TimeseriesFactory.__init__(self, observatory, channels, type,
self.urlTemplate = urlTemplate interval, urlTemplate)
self.observatoryMetadata = observatoryMetadata or ObservatoryMetadata()
def get_timeseries(self, starttime, endtime, observatory=None, def get_timeseries(self, starttime, endtime, observatory=None,
channels=None, type='variation', interval='minute'): channels=None, type='variation', interval='minute'):
...@@ -61,16 +63,16 @@ class IMFV283Factory(TimeseriesFactory): ...@@ -61,16 +63,16 @@ class IMFV283Factory(TimeseriesFactory):
type = type or self.type type = type or self.type
interval = interval or self.interval interval = interval or self.interval
timeseries = obspy.core.Stream() timeseries = obspy.core.Stream()
url = URL(self.urlTemplate) url_id = self._get_url(observatory, obspy.core.UTCDateTime(),
url_id = url.get_url(observatory, obspy.core.UTCDateTime(),
type, interval) type, interval)
imfV283File = url.read_url(url_id) imfV283File = read_url(url_id)
timeseries += self.parse_string(imfV283File) timeseries += self.parse_string(imfV283File)
# merge channel traces for multiple days # merge channel traces for multiple days
timeseries.merge() timeseries.merge()
# trim to requested start/end time # trim to requested start/end time
timeseries.trim(starttime, endtime) timeseries.trim(starttime, endtime)
self._post_process(timeseries)
if observatory is not None: if observatory is not None:
timeseries = timeseries.select(station=observatory) timeseries = timeseries.select(station=observatory)
return timeseries.select(station=observatory) return timeseries.select(station=observatory)
...@@ -105,15 +107,8 @@ class IMFV283Factory(TimeseriesFactory): ...@@ -105,15 +107,8 @@ class IMFV283Factory(TimeseriesFactory):
return stream return stream
def write_file(self, fh, timeseries, channels): def _post_process(self, timeseries):
"""writes timeseries data to the given file object. for trace in timeseries:
stats = trace.stats
Parameters self.observatoryMetadata.set_metadata(stats, stats.station,
---------- stats.channel, 'variation', 'minute')
fh: file object
timeseries : obspy.core.Stream
stream containing traces to store.
channels : array_like
list of channels to store
"""
raise TimeseriesFactoryException('IAF write_file not implemented.')
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