def parse_string(self, pcdcpString): """Parse the contents of a string in the format of a pcdcp file. Parameters ---------- pcdcpString : str String containing PCDCP content. Returns ------- obspy.core.Stream Parsed data. """ parser = PCDCPParser() parser.parse(pcdcpString) year = parser.header['year'] yearday = parser.header['yearday'] begin = int(parser.times[0]) startHour = str(int(begin / 60.0)) startMinute = str(int(begin % 60.0)) ending = int(parser.times[-1]) endHour = str(int(ending / 60.0)) endMinute = str(int(ending % 60.0)) start = year + yearday + "T" + startHour + ":" + \ startMinute + ":" + "00.0" end = year + yearday + "T" + endHour + ":" + endMinute + ":" + "00.0" starttime = obspy.core.UTCDateTime(start) endtime = obspy.core.UTCDateTime(end) data = parser.data length = len(data[data.keys()[0]]) rate = (length - 1) / (endtime - starttime) stream = obspy.core.Stream() for channel in data.keys(): stats = obspy.core.Stats() stats.network = 'NT' stats.station = parser.header['station'] stats.starttime = starttime stats.sampling_rate = rate stats.npts = length stats.channel = channel if channel == 'D': data[channel] = ChannelConverter.get_radians_from_minutes( data[channel]) stream += obspy.core.Trace(data[channel], stats) return stream
def parse_string(self, data, **kwargs): """Parse the contents of a string in the format of a pcdcp file. Parameters ---------- data : str String containing PCDCP content. Returns ------- obspy.core.Stream Parsed data. """ parser = PCDCPParser() parser.parse(data) yr = int(parser.header['year']) yrday = int(parser.header['yearday']) begin = int(parser.times[0]) startHour = int(begin / 60.0) startMinute = int(begin % 60.0) ending = int(parser.times[-1]) endHour = int(ending / 60.0) endMinute = int(ending % 60.0) starttime = obspy.core.UTCDateTime(year=yr, julday=yrday, hour=startHour, minute=startMinute) endtime = obspy.core.UTCDateTime(year=yr, julday=yrday, hour=endHour, minute=endMinute) data = parser.data length = len(data[data.keys()[0]]) rate = (length - 1) / (endtime - starttime) stream = obspy.core.Stream() for channel in data.keys(): stats = obspy.core.Stats() stats.network = 'NT' stats.station = parser.header['station'] stats.starttime = starttime stats.sampling_rate = rate stats.npts = length stats.channel = channel if channel == 'D': data[channel] = ChannelConverter.get_radians_from_minutes( data[channel]) stream += obspy.core.Trace(data[channel], stats) return stream