Exemple #1
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, 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))
Exemple #2
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, 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))