diff --git a/geomagio/edge/EdgeFactory.py b/geomagio/edge/EdgeFactory.py
index 87e254c221ce136080be47bc41bf64c74954d30e..c85aba4a2673d5c368cf588540a1751aa193b28a 100644
--- a/geomagio/edge/EdgeFactory.py
+++ b/geomagio/edge/EdgeFactory.py
@@ -24,6 +24,7 @@ from ..TimeseriesFactory import TimeseriesFactory
 from ..TimeseriesFactoryException import TimeseriesFactoryException
 from ..ObservatoryMetadata import ObservatoryMetadata
 from .RawInputClient import RawInputClient
+from .SNCL import SNCL
 from .LegacySNCL import LegacySNCL
 
 
@@ -64,6 +65,9 @@ class EdgeFactory(TimeseriesFactory):
         all data written to edge (via raw input client) will be scaled
         by this integer prior to write; all data read from edge will be
         will be divided by this integer after read; default = 1000
+    snclMapper: {'default','legacy','iris'}
+        a mapper of common channel names to SEED SNCL codes (that is,
+        station, network, channel, location codes); default = legacy
 
     See Also
     --------
@@ -91,6 +95,7 @@ class EdgeFactory(TimeseriesFactory):
         observatoryMetadata: Optional[ObservatoryMetadata] = None,
         locationCode: Optional[str] = None,
         scaleFactor: int = 1000,
+        snclMapper: str = "legacy",
     ):
         TimeseriesFactory.__init__(self, observatory, channels, type, interval)
         if port == 2060:
@@ -108,6 +113,12 @@ class EdgeFactory(TimeseriesFactory):
         self.observatoryMetadata = observatoryMetadata or ObservatoryMetadata()
         self.locationCode = locationCode
         self.scaleFactor = scaleFactor
+        if snclMapper == "legacy":
+            self.get_sncl = LegacySNCL.get_sncl
+        elif snclMapper == "geomag":
+            self.get_sncl = SNCL.get_sncl
+        else:
+            raise TimeseriesFactoryException("Unrecognized SNCL mapper")
 
     def get_timeseries(
         self,
@@ -329,7 +340,7 @@ class EdgeFactory(TimeseriesFactory):
         data: Trace
             timeseries trace of the requested channel data
         """
-        sncl = LegacySNCL.get_sncl(
+        sncl = self.get_sncl(
             station=observatory,
             data_type=type,
             interval=interval,
@@ -440,7 +451,7 @@ class EdgeFactory(TimeseriesFactory):
         -----
         RawInputClient seems to only work when sockets are
         """
-        sncl = LegacySNCL.get_sncl(
+        sncl = self.get_sncl(
             station=observatory,
             data_type=type,
             interval=interval,