From dcdba08d43512204da9e7d2d6bef253debdd8596 Mon Sep 17 00:00:00 2001
From: Jeremy Fee <jmfee@usgs.gov>
Date: Wed, 11 May 2016 12:11:13 -0600
Subject: [PATCH] Update pcdcp factories to use generic _get_timeseries method

---
 geomagio/pcdcp/PCDCPFactory.py       | 32 ++++++++--------------------
 geomagio/pcdcp/StreamPCDCPFactory.py |  6 ++----
 test/pcdcp_test/PCDCPFactory_test.py |  2 +-
 3 files changed, 12 insertions(+), 28 deletions(-)

diff --git a/geomagio/pcdcp/PCDCPFactory.py b/geomagio/pcdcp/PCDCPFactory.py
index 4760b94a2..a293ec770 100644
--- a/geomagio/pcdcp/PCDCPFactory.py
+++ b/geomagio/pcdcp/PCDCPFactory.py
@@ -4,7 +4,6 @@ import obspy.core
 from .. import ChannelConverter
 from ..TimeseriesFactory import TimeseriesFactory
 from ..TimeseriesFactoryException import TimeseriesFactoryException
-from ..Util import read_url
 from PCDCPParser import PCDCPParser
 from PCDCPWriter import PCDCPWriter
 
@@ -35,10 +34,8 @@ class PCDCPFactory(TimeseriesFactory):
     PCDCPParser
     """
 
-    def __init__(self, urlTemplate, observatory=None, channels=None, type=None,
-            interval=None):
-        TimeseriesFactory.__init__(self, observatory, channels, type,
-                interval, urlTemplate)
+    def __init__(self, **kwargs):
+        TimeseriesFactory.__init__(self, **kwargs)
 
     def get_timeseries(self, starttime, endtime, observatory=None,
             channels=None, type=None, interval=None):
@@ -68,24 +65,13 @@ class PCDCPFactory(TimeseriesFactory):
             If invalid values are requested, or errors occur while
             retrieving timeseries.
         """
-        observatory = observatory or self.observatory
-        channels = channels or self.channels
-        type = type or self.type
-        interval = interval or self.interval
-        days = self._get_days(starttime, endtime)
-        timeseries = obspy.core.Stream()
-        for day in days:
-            url_id = self._get_url(observatory, day, type, interval)
-            pcdcpFile = read_url(url_id)
-            timeseries += self.parse_string(pcdcpFile)
-
-        # merge channel traces for multiple days
-        timeseries.merge()
-
-        # trim to requested start/end time
-        timeseries.trim(starttime, endtime)
-
-        return timeseries
+        return self._get_timeseries(
+                starttime=starttime,
+                endtime=endtime,
+                observatory=observatory,
+                channels=channels,
+                type=type,
+                interval=interval)
 
     def parse_string(self, pcdcpString):
         """Parse the contents of a string in the format of a pcdcp file.
diff --git a/geomagio/pcdcp/StreamPCDCPFactory.py b/geomagio/pcdcp/StreamPCDCPFactory.py
index 2204fb473..2aee680d9 100644
--- a/geomagio/pcdcp/StreamPCDCPFactory.py
+++ b/geomagio/pcdcp/StreamPCDCPFactory.py
@@ -17,10 +17,8 @@ class StreamPCDCPFactory(PCDCPFactory):
     PCDCPFactory
     Timeseriesfactory
     """
-    def __init__(self, stream, observatory=None, channels=None,
-            type=None, interval=None):
-        PCDCPFactory.__init__(self, None, observatory, channels,
-            type, interval)
+    def __init__(self, stream, **kwargs):
+        PCDCPFactory.__init__(self, **kwargs)
         self._stream = stream
 
     def get_timeseries(self, starttime, endtime, observatory=None,
diff --git a/test/pcdcp_test/PCDCPFactory_test.py b/test/pcdcp_test/PCDCPFactory_test.py
index f03fc65e2..7466a0f10 100644
--- a/test/pcdcp_test/PCDCPFactory_test.py
+++ b/test/pcdcp_test/PCDCPFactory_test.py
@@ -20,7 +20,7 @@ def test_parse_string():
     Send a PCDCP file string in to parse_string to make sure a well formed
     stream is created with proper values.
     """
-    stream = PCDCPFactory('').parse_string(pcdcpString)
+    stream = PCDCPFactory().parse_string(pcdcpString)
 
     assert_equals(type(stream), Stream)
     assert_equals(stream[0].stats.network, 'NT')
-- 
GitLab