diff --git a/geomagio/pcdcp/PCDCPParser.py b/geomagio/pcdcp/PCDCPParser.py
index 676b31d93f1a4a7309a4aa10216e27bad08f14fa..dfdde37c4a32cab4a1625c03108f5bacf2e2cf24 100644
--- a/geomagio/pcdcp/PCDCPParser.py
+++ b/geomagio/pcdcp/PCDCPParser.py
@@ -79,7 +79,8 @@ class PCDCPParser(object):
             zip(self.header_fields, line.split(None, len(self.header_fields)))
         )
 
-        self.resolution = float(self.header["resolution"].split("nT")[0])
+        if "nT" in self.header["resolution"]:
+            self.resolution = float(self.header["resolution"].split("nT")[0])
 
         return
 
diff --git a/geomagio/processing/magproc.py b/geomagio/processing/magproc.py
index eaff131644486b83c0121168f687aed5e7bab7d4..9865fc9b8520de3d5955f53d482a221f4c2bc45a 100644
--- a/geomagio/processing/magproc.py
+++ b/geomagio/processing/magproc.py
@@ -46,23 +46,26 @@ def prepfiles(
         observatory=observatory,
         template="file://" + os.path.join(calibration_path, CAL_TEMPLATE),
     )
-    # Variation data
-    write_variation_data(
-        host=edge_host,
-        starttime=UTCDateTime(month_start),
-        endtime=UTCDateTime(month_end),
-        observatory=observatory,
-        second_template="file://" + os.path.join(second_path, PCDCP_TEMPLATE),
-        minute_template="file://" + os.path.join(minute_path, PCDCP_TEMPLATE),
-    )
-    # Temperature data
-    write_temperature_data(
-        host=edge_host,
-        starttime=UTCDateTime(month_start),
-        endtime=UTCDateTime(month_end),
-        observatory=observatory,
-        template="file://" + os.path.join(temperature_path, PCDCP_TEMPLATE),
-    )
+
+    intervals = get_intervals(UTCDateTime(month_start), UTCDateTime(month_end))
+    for interval in intervals:
+        # Variation data
+        write_variation_data(
+            host=edge_host,
+            starttime=interval["start"],
+            endtime=interval["end"],
+            observatory=observatory,
+            second_template="file://" + os.path.join(second_path, PCDCP_TEMPLATE),
+            minute_template="file://" + os.path.join(minute_path, PCDCP_TEMPLATE),
+        )
+        # Temperature data
+        write_temperature_data(
+            host=edge_host,
+            starttime=interval["start"],
+            endtime=interval["end"],
+            observatory=observatory,
+            template="file://" + os.path.join(temperature_path, PCDCP_TEMPLATE),
+        )
 
 
 def write_cal_file(
@@ -112,38 +115,35 @@ def write_temperature_data(
     algorithm = FilterAlgorithm(input_sample_period=60.0, output_sample_period=3600.0)
     factory = EdgeFactory(host=host)
     # load minute temperature data
-    intervals = get_intervals(starttime, endtime)
-    for interval in intervals:
-        starttime, endtime = interval["start"], interval["end"]
-        f_starttime, f_endtime = algorithm.get_input_interval(starttime, endtime)
-        print(
-            f"Loading minute temperature data for {observatory} [{f_starttime}, {f_endtime}]",
-            file=sys.stderr,
-        )
-        timeseries_temp = factory.get_timeseries(
-            starttime=f_starttime,
-            endtime=f_endtime,
-            observatory=observatory,
-            channels=["UK1", "UK2", "UK3", "UK4"],
-            type="variation",
-            interval="minute",
-        )
-        # filter to one hour
-        print(
-            f"Generating hourly temperature data for {observatory} [{starttime}, {endtime}]",
-            file=sys.stderr,
-        )
-        timeseries_temperature = algorithm.process(timeseries_temp)
-        # write data
-        write_pcdcp_file(
-            starttime=starttime,
-            endtime=endtime,
-            timeseries=timeseries_temperature,
-            observatory=observatory,
-            interval="hourly",
-            channels=["UK1", "UK2", "UK3", "UK4"],
-            template=template,
-        )
+    f_starttime, f_endtime = algorithm.get_input_interval(starttime, endtime)
+    print(
+        f"Loading minute temperature data for {observatory} [{f_starttime}, {f_endtime}]",
+        file=sys.stderr,
+    )
+    timeseries_temp = factory.get_timeseries(
+        starttime=f_starttime,
+        endtime=f_endtime,
+        observatory=observatory,
+        channels=["UK1", "UK2", "UK3", "UK4"],
+        type="variation",
+        interval="minute",
+    )
+    # filter to one hour
+    print(
+        f"Generating hourly temperature data for {observatory} [{starttime}, {endtime}]",
+        file=sys.stderr,
+    )
+    timeseries_temperature = algorithm.process(timeseries_temp)
+    # write data
+    write_pcdcp_file(
+        starttime=starttime,
+        endtime=endtime,
+        timeseries=timeseries_temperature,
+        observatory=observatory,
+        interval="hourly",
+        channels=["UK1", "UK2", "UK3", "UK4"],
+        template=template,
+    )
 
 
 def write_variation_data(
@@ -156,45 +156,42 @@ def write_variation_data(
 ):
     algorithm = FilterAlgorithm(input_sample_period=1.0, output_sample_period=60.0)
     factory = EdgeFactory(host=host)
-    intervals = get_intervals(starttime, endtime)
-    for interval in intervals:
-        starttime, endtime = interval["start"], interval["end"]
-        # load second data
-        f_starttime, f_endtime = algorithm.get_input_interval(starttime, endtime)
-        print(
-            f"Loading second variation data for {observatory} [{f_starttime}, {f_endtime}]",
-            file=sys.stderr,
-        )
-        timeseries_second = factory.get_timeseries(
-            starttime=f_starttime,
-            endtime=f_endtime,
-            observatory=observatory,
-            channels=["H", "E", "Z", "F"],
-            type="variation",
-            interval="second",
-        )
-        # filter to one minute
-        print(
-            f"Generating one minute variation data for {observatory} [{starttime}, {endtime}]",
-            file=sys.stderr,
-        )
-        timeseries_minute = algorithm.process(timeseries_second)
-        # write files
-        write_pcdcp_file(
-            starttime=starttime,
-            endtime=endtime,
-            timeseries=timeseries_second.trim(starttime, endtime),
-            observatory=observatory,
-            interval="second",
-            channels=["H", "E", "Z", "F"],
-            template=second_template,
-        )
-        write_pcdcp_file(
-            starttime=starttime,
-            endtime=endtime,
-            timeseries=timeseries_minute,
-            observatory=observatory,
-            interval="minute",
-            channels=["H", "E", "Z", "F"],
-            template=minute_template,
-        )
+    # load second data
+    f_starttime, f_endtime = algorithm.get_input_interval(starttime, endtime)
+    print(
+        f"Loading second variation data for {observatory} [{f_starttime}, {f_endtime}]",
+        file=sys.stderr,
+    )
+    timeseries_second = factory.get_timeseries(
+        starttime=f_starttime,
+        endtime=f_endtime,
+        observatory=observatory,
+        channels=["H", "E", "Z", "F"],
+        type="variation",
+        interval="second",
+    )
+    # filter to one minute
+    print(
+        f"Generating one minute variation data for {observatory} [{starttime}, {endtime}]",
+        file=sys.stderr,
+    )
+    timeseries_minute = algorithm.process(timeseries_second)
+    # write files
+    write_pcdcp_file(
+        starttime=starttime,
+        endtime=endtime,
+        timeseries=timeseries_second.trim(starttime, endtime),
+        observatory=observatory,
+        interval="second",
+        channels=["H", "E", "Z", "F"],
+        template=second_template,
+    )
+    write_pcdcp_file(
+        starttime=starttime,
+        endtime=endtime,
+        timeseries=timeseries_minute,
+        observatory=observatory,
+        interval="minute",
+        channels=["H", "E", "Z", "F"],
+        template=minute_template,
+    )