def __init__(self, req, ro, rs, fileName): self.req = req self.ro = ro self.rs = rs # keep a reference to avoid crash self.rsInput = RecordInput(rs, Array.INT, Record.SAVE_RAW) self.fileName = fileName self.written = 0
def input(self): fastsdsPrefix = 'fastsds://' if self.__url.startswith(fastsdsPrefix): fastsds = SDS(self.__url[len(fastsdsPrefix):]) else: fastsds = None for (net, sta, loc, cha, startt, endt, restricted, archNet) in self.__tw: if not archNet: archNet = net size = 0 if fastsds: start = dateutil.parser.parse( startt.iso()).replace(tzinfo=None) end = dateutil.parser.parse(endt.iso()).replace(tzinfo=None) for data in fastsds.getRawBytes(start, end, archNet, sta, loc, cha, self.__bufferSize): size += len(data) if archNet == net: yield data else: try: yield self.__override_network(data, net) except Exception as e: Logging.error( "could not override network code: %s" % str(e)) else: rs = RecordStream.Open(self.__url) if rs is None: Logging.error("could not open record stream") break rs.addStream(archNet, sta, loc, cha, startt, endt) rsInput = RecordInput(rs, Array.INT, Record.SAVE_RAW) eof = False while not eof: data = b"" while len(data) < self.__bufferSize: try: rec = rsInput.next() except Exception as e: Logging.error("%s" % str(e)) eof = True break if rec is None: eof = True break data += rec.raw().str() if data: size += len(data) if archNet == net: yield data else: try: yield self.__override_network(data, net) except Exception as e: Logging.error("could not override network " \ "code: %s" % str(e)) for tracker in self.__trackerList: net_class = 't' if net[0] in "0123456789XYZ" else 'p' if size == 0: tracker.line_status(startt, endt, net, sta, cha, loc, restricted, net_class, True, [], "fdsnws", "NODATA", 0, "") else: tracker.line_status(startt, endt, net, sta, cha, loc, restricted, net_class, True, [], "fdsnws", "OK", size, "")
def input(self): fastsdsPrefix = 'fastsds://' if self.__url.startswith(fastsdsPrefix): fastsds = SDS(self.__url[len(fastsdsPrefix):]) else: fastsds = None for (net, sta, loc, cha, startt, endt, restricted, archNet) in self.__tw: if not archNet: archNet = net size = 0 if fastsds: start = dateutil.parser.parse( startt.iso()).replace(tzinfo=None) end = dateutil.parser.parse(endt.iso()).replace(tzinfo=None) for data in fastsds.getRawBytes(start, end, archNet, sta, loc, cha, self.__bufferSize): size += len(data) if archNet == net: yield data else: try: yield self.__override_network(data, net) except Exception, e: Logging.error( "could not override network code: %s" % str(e)) else: rs = RecordStream.Open(self.__url) if rs is None: Logging.error("could not open record stream") break rs.addStream(archNet, sta, loc, cha, startt, endt) rsInput = RecordInput(rs, Array.INT, Record.SAVE_RAW) eof = False while not eof: data = "" while len(data) < self.__bufferSize: try: rec = rsInput.next() except Exception, e: Logging.error("%s" % str(e)) eof = True break if rec is None: eof = True break data += rec.raw().str() if data: size += len(data) if archNet == net: yield data else: try: yield self.__override_network(data, net) except Exception, e: Logging.error( "could not override network code: %s" % str(e))