From 99eeb2f4a16cb2f72afc9943198e3ea05b50f3f3 Mon Sep 17 00:00:00 2001 From: pcain <pcain@usgs.gov> Date: Wed, 25 Aug 2021 09:30:23 -0600 Subject: [PATCH 1/5] return desired channels when no channels are found --- geomagio/DerivedTimeseriesFactory.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/geomagio/DerivedTimeseriesFactory.py b/geomagio/DerivedTimeseriesFactory.py index 273b18dd2..94abbe596 100644 --- a/geomagio/DerivedTimeseriesFactory.py +++ b/geomagio/DerivedTimeseriesFactory.py @@ -204,4 +204,6 @@ class DerivedTimeseriesFactory(TimeseriesFactory): def get_missing(input: Stream, desired: List[str]) -> List[str]: """Return missing channels from input""" present = TimeseriesUtility.get_channels(stream=input) + if present is None: + return desired return list(set(desired).difference(set(present))) -- GitLab From c866429c663cf65ea19141969bb5ce9009236e1e Mon Sep 17 00:00:00 2001 From: pcain <pcain@usgs.gov> Date: Wed, 25 Aug 2021 10:01:43 -0600 Subject: [PATCH 2/5] add test for handling empty stream --- test/DerivedTimeseriesFactory_test.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/test/DerivedTimeseriesFactory_test.py b/test/DerivedTimeseriesFactory_test.py index 5a8eeaea9..debb0b213 100644 --- a/test/DerivedTimeseriesFactory_test.py +++ b/test/DerivedTimeseriesFactory_test.py @@ -2,8 +2,9 @@ from typing import List from obspy import Stream -from geomagio import DerivedTimeseriesFactory, TimeseriesUtility +from geomagio import TimeseriesUtility from geomagio.algorithm import Algorithm, DeltaFAlgorithm, XYZAlgorithm +from geomagio.DerivedTimeseriesFactory import DerivedTimeseriesFactory, get_missing from geomagio.iaga2002 import StreamIAGA2002Factory from geomagio.edge import EdgeFactory @@ -91,6 +92,17 @@ def test_get_timeseries(): assert set(TimeseriesUtility.get_channels(timeseries)) == set(["H", "D"]) +def test_get_missing(): + """test.DerivedTimeseriesFactory_test.test_get_missing()""" + desired = ["X", "Y", "D", "G"] + assert set(get_missing(input=Stream(), desired=desired)) == set(desired) + desired = ["H", "E", "Z", "F"] + timeseries = get_derived_timeseries( + "etc/filter/BOU20200101vsec.sec", desired, "variation", "second" + ) + assert get_missing(input=timeseries, desired=desired) == [] + + def get_derived_timeseries( url: str, channels: List[str], data_type: str, interval: str ) -> Stream: -- GitLab From fe4e6fc827e63dd1f8cdedca0b80fad59b941b43 Mon Sep 17 00:00:00 2001 From: pcain <pcain@usgs.gov> Date: Wed, 25 Aug 2021 15:15:14 -0600 Subject: [PATCH 3/5] add empty list as default --- geomagio/DerivedTimeseriesFactory.py | 2 -- geomagio/TimeseriesUtility.py | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/geomagio/DerivedTimeseriesFactory.py b/geomagio/DerivedTimeseriesFactory.py index 94abbe596..273b18dd2 100644 --- a/geomagio/DerivedTimeseriesFactory.py +++ b/geomagio/DerivedTimeseriesFactory.py @@ -204,6 +204,4 @@ class DerivedTimeseriesFactory(TimeseriesFactory): def get_missing(input: Stream, desired: List[str]) -> List[str]: """Return missing channels from input""" present = TimeseriesUtility.get_channels(stream=input) - if present is None: - return desired return list(set(desired).difference(set(present))) diff --git a/geomagio/TimeseriesUtility.py b/geomagio/TimeseriesUtility.py index e0729c21b..79cc48263 100644 --- a/geomagio/TimeseriesUtility.py +++ b/geomagio/TimeseriesUtility.py @@ -304,7 +304,7 @@ def get_channels(stream): channel = trace.stats.channel if channel: channels[channel] = True - return [ch for ch in channels] + return [ch for ch in channels] or [] def get_trace_value(traces, time, default=None): -- GitLab From 8410e9581d7b9dde6ed60a7d9aa9f1de5e2ecba0 Mon Sep 17 00:00:00 2001 From: pcain <pcain@usgs.gov> Date: Wed, 25 Aug 2021 15:17:27 -0600 Subject: [PATCH 4/5] bump algorithms version --- code.json | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code.json b/code.json index fe72c15a4..f7ea8ea37 100644 --- a/code.json +++ b/code.json @@ -3,7 +3,7 @@ "name": "geomag-algorithms", "organization": "U.S. Geological Survey", "description": "Library for processing Geomagnetic timeseries data.", - "version": "1.4.0", + "version": "1.4.1", "status": "Development", "permissions": { diff --git a/pyproject.toml b/pyproject.toml index a404d487e..7849afdf0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,7 @@ packages = [ {include = "geomagio" } ] repository="https://code.usgs.gov/ghsc/geomag/geomag-algorithms" -version = "1.4.0" +version = "1.4.1" [tool.poetry.dependencies] -- GitLab From dad3c0a384336a2685780eb9eac5287e0d325ff7 Mon Sep 17 00:00:00 2001 From: pcain <pcain@usgs.gov> Date: Wed, 25 Aug 2021 15:51:24 -0600 Subject: [PATCH 5/5] revert get channels method --- geomagio/TimeseriesUtility.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geomagio/TimeseriesUtility.py b/geomagio/TimeseriesUtility.py index 79cc48263..e0729c21b 100644 --- a/geomagio/TimeseriesUtility.py +++ b/geomagio/TimeseriesUtility.py @@ -304,7 +304,7 @@ def get_channels(stream): channel = trace.stats.channel if channel: channels[channel] = True - return [ch for ch in channels] or [] + return [ch for ch in channels] def get_trace_value(traces, time, default=None): -- GitLab