From d9a5ba870e9a48996d97f4ee44724ba35fe9082e Mon Sep 17 00:00:00 2001
From: pcain-usgs <pcain@usgs.gov>
Date: Tue, 6 Apr 2021 14:20:48 -0600
Subject: [PATCH] Convert output miniseed data to float32

---
 geomagio/TimeseriesUtility.py    | 6 ++++--
 geomagio/edge/MiniSeedFactory.py | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/geomagio/TimeseriesUtility.py b/geomagio/TimeseriesUtility.py
index 459287dbe..d372cd7d9 100644
--- a/geomagio/TimeseriesUtility.py
+++ b/geomagio/TimeseriesUtility.py
@@ -395,13 +395,15 @@ def mask_stream(stream):
     return masked
 
 
-def unmask_stream(stream):
+def unmask_stream(stream, float_type=numpy.float64):
     """Convert stream traces to unmasked arrays.
 
     Parameters
     ----------
     stream : obspy.core.Stream
         stream to unmask
+    float_type: type
+        floating point precision for stream data
 
     Returns
     -------
@@ -414,7 +416,7 @@ def unmask_stream(stream):
         unmasked += obspy.core.Trace(
             trace.data.filled(fill_value=numpy.nan)
             if isinstance(trace.data, numpy.ma.MaskedArray)
-            else trace.data,
+            else trace.data.astype(float_type),
             trace.stats,
         )
     return unmasked
diff --git a/geomagio/edge/MiniSeedFactory.py b/geomagio/edge/MiniSeedFactory.py
index 99c3b9eec..163cd6d46 100644
--- a/geomagio/edge/MiniSeedFactory.py
+++ b/geomagio/edge/MiniSeedFactory.py
@@ -664,7 +664,7 @@ class MiniSeedFactory(TimeseriesFactory):
         to_write = timeseries.select(channel=channel)
         to_write = TimeseriesUtility.mask_stream(to_write)
         to_write = to_write.split()
-        to_write = TimeseriesUtility.unmask_stream(to_write)
+        to_write = TimeseriesUtility.unmask_stream(to_write, float_type=numpy.float32)
         # relabel channels from internal to edge conventions
         station = self._get_edge_station(observatory, channel, type, interval)
         location = self._get_edge_location(observatory, channel, type, interval)
-- 
GitLab