diff --git a/geomagio/ImagCDFFactory.py b/geomagio/ImagCDFFactory.py
index 9644c23e3823ec671fa0a394adeca0038b64eb1e..157ad0cf0546c7e804183978424de1600214ce0a 100644
--- a/geomagio/ImagCDFFactory.py
+++ b/geomagio/ImagCDFFactory.py
@@ -19,6 +19,7 @@ from typing import List, Optional, Union
 from datetime import datetime, timezone
 import numpy as np
 from obspy import Stream, Trace, UTCDateTime
+from sqlalchemy import true
 
 from geomagio.TimeseriesFactory import TimeseriesFactory
 from geomagio.api.ws.Element import TEMPERATURE_ELEMENTS_ID
@@ -87,6 +88,8 @@ class ImagCDFFactory(TimeseriesFactory):
     This class extends the TimeseriesFactory to support writing geomagnetic
     time series data to files in the ImagCDF format using the cdflib library.
     """
+    
+    isUniqueTimes=True #used to determine depend_0 and CDF Time Variable Name
 
     def __init__(
         self,
@@ -138,7 +141,7 @@ class ImagCDFFactory(TimeseriesFactory):
             cdf_writer.write_globalattrs(global_attrs)
 
             # Time variables
-            time_vars = self._create_time_stamp_variables(timeseries)
+            time_vars = self._create_time_stamp_variables(timeseries) #modifies self.isUniqueTimes
             for ts_name, ts_data in time_vars.items():
                 # Define time variable specification
                 var_spec = {
@@ -186,8 +189,7 @@ class ImagCDFFactory(TimeseriesFactory):
                     'Compress': 6,
                     'Pad': None,
                 }
-
-                var_attrs = self._create_var_attrs(trace, temperature_index)
+                var_attrs = self._create_var_attrs(trace, temperature_index, self.isUniqueTimes)
 
                 # Write data variable
                 cdf_writer.write_var(var_spec, var_attrs, trace.data)
@@ -409,7 +411,15 @@ class ImagCDFFactory(TimeseriesFactory):
             time_vars['GeomagneticScalarTimes'] = scalar_times
         if temperature_times:
             time_vars.update(temperature_times)
-        return time_vars
+            
+        last_times = []
+        self.isUniqueTimes = len(time_vars) == 1 #true if only one set of times, else default to false.
+        for index, times in enumerate(time_vars.values()):
+            if index > 0:
+                self.isUniqueTimes = not np.array_equal(last_times, times)
+            last_times = times
+        
+        return time_vars if self.isUniqueTimes else {"DataTimes": last_times}
 
 
     def _create_var_spec(
@@ -455,7 +465,7 @@ class ImagCDFFactory(TimeseriesFactory):
         }
         return var_spec
 
-    def _create_var_attrs(self, trace: Trace, temperature_index: Optional[int] = None) -> dict:
+    def _create_var_attrs(self, trace: Trace, temperature_index: Optional[int] = None, isUniqueTimes: Optional[bool] = True) -> dict:
         channel = trace.stats.channel
         fieldnam = f"Geomagnetic Field Element {channel}" # “Geomagnetic Field Element ” + the element code or “Temperature ” + the name of the location where the temperature was recorded.
         units = '' # Must be one of “nT”, “Degrees of arc” or “Celsius”
@@ -496,7 +506,7 @@ class ImagCDFFactory(TimeseriesFactory):
             'FILLVAL': 99999.0,
             'VALIDMIN': validmin,
             'VALIDMAX': validmax,
-            'DEPEND_0': depend_0,
+            'DEPEND_0': depend_0 if isUniqueTimes else "DataTimes",
             'DISPLAY_TYPE': 'time_series',
             'LABLAXIS': channel,
         }