Skip to content
Snippets Groups Projects

SNCL/SNCLFactory

All threads resolved!
5 files
+ 36
400
Compare changes
  • Side-by-side
  • Inline
Files
5
+ 0
182
@@ -278,188 +278,6 @@ class EdgeFactory(TimeseriesFactory):
trace.data = numpy.ma.masked_invalid(trace.data)
return stream
def _get_edge_channel(self, observatory, channel, type, interval):
"""get edge channel.
Parameters
----------
observatory : str
observatory code
channel : str
single character channel {H, E, D, Z, F, X, Y, G} or
any appropriate edge channel, ie MSD, MGD, HGD.
type : str
data type {definitive, quasi-definitive, variation}
interval : str
interval length {minute, second}
Returns
-------
edge_channel
{MVH, MVE, MVD, MGD etc}
"""
edge_interval_code = self._get_interval_code(interval)
edge_channel = None
# If form is chan.loc, return chan (left) portion.
# Allows specific chan/loc selection.
if channel.find(".") >= 0:
tmplist = channel.split(".")
return tmplist[0].strip()
if channel == "D":
edge_channel = edge_interval_code + "VD"
elif channel == "E":
edge_channel = edge_interval_code + "VE"
elif channel == "F":
edge_channel = edge_interval_code + "SF"
elif channel == "H":
edge_channel = edge_interval_code + "VH"
elif channel == "Z":
edge_channel = edge_interval_code + "VZ"
elif channel == "G":
edge_channel = edge_interval_code + "SG"
elif channel == "X":
edge_channel = edge_interval_code + "VX"
elif channel == "Y":
edge_channel = edge_interval_code + "VY"
elif channel == "E-E":
edge_channel = edge_interval_code + "QE"
elif channel == "E-N":
edge_channel = edge_interval_code + "QN"
elif channel == "DIST":
edge_channel = edge_interval_code + "DT"
elif channel == "DST":
edge_channel = edge_interval_code + "GD"
elif channel == "SQ":
edge_channel = edge_interval_code + "SQ"
elif channel == "SV":
edge_channel = edge_interval_code + "SV"
else:
edge_channel = channel
return edge_channel
def _get_edge_location(self, observatory, channel, type, interval):
"""get edge location.
The edge location code is currently determined by the type
passed in.
Parameters
----------
observatory : str
observatory code
channel : str
single character channel {H, E, D, Z, F}
type : str
data type {definitive, quasi-definitive, variation}
interval : str
interval length {minute, second}
Returns
-------
location
returns an edge location code
"""
location = None
# If form is chan.loc, return loc (right) portion
# Allows specific chan/loc selection.
if channel.find(".") >= 0:
tmplist = channel.split(".")
return tmplist[1].strip()
if self.locationCode is not None:
location = self.locationCode
else:
if type == "variation" or type == "reported":
location = "R0"
elif type == "adjusted" or type == "provisional":
location = "A0"
elif type == "quasi-definitive":
location = "Q0"
elif type == "definitive":
location = "D0"
elif len(type) == 2:
location = type
return location
def _get_edge_network(self, observatory, channel, type, interval):
"""get edge network code.
Parameters
----------
observatory : str
observatory code
channel : str
single character channel {H, E, D, Z, F}
type : str
data type {definitive, quasi-definitive, variation}
interval : str
interval length {minute, second}
Returns
-------
network
always NT
"""
return "NT"
def _get_edge_station(self, observatory, channel, type, interval):
"""get edge station.
Parameters
----------
observatory : str
observatory code
channel : str
single character channel {H, E, D, Z, F}
type : str
data type {definitive, quasi-definitive, variation}
interval : str
interval length {minute, second}
Returns
-------
station
the observatory is returned as the station
"""
return observatory
def _get_interval_code(self, interval):
"""get edge interval code.
Converts the metadata interval string, into an edge single character
edge code.
Parameters
----------
observatory : str
observatory code
channel : str
single character channel {H, E, D, Z, F}
type : str
data type {definitive, quasi-definitive, variation}
interval : str
interval length {minute, second}
Returns
-------
interval type
"""
interval_code = None
if interval == "day":
interval_code = "D"
elif interval == "hour":
interval_code = "H"
elif interval == "minute":
interval_code = "M"
elif interval == "second":
interval_code = "S"
else:
raise TimeseriesFactoryException('Unexpected interval "%s"' % interval)
return interval_code
def _get_timeseries(self, starttime, endtime, observatory, channel, type, interval):
"""get timeseries data for a single channel.
Loading