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
Example #3
0
def test__parse_header():
    """geomagio.pcdcp.PCDCPParser_test.test_parse_header()

    Call the _parse_header method with a header.
    Verify the header name and value are split at the correct column.
    """
    parser = PCDCPParser()
    parser._parse_header('BOU  2015  001  01-Jan-15  HEZF  0.01nT' +
                         '  File Version 2.00')

    assert_equals(parser.header['date'], '01-Jan-15')
    assert_equals(parser.header['station'], 'BOU')
    assert_equals(parser.header['year'], '2015')
    assert_equals(parser.header['yearday'], '001')
def test__parse_header():
    """geomagio.pcdcp.PCDCPParser_test.test_parse_header()

    Call the _parse_header method with a header.
    Verify the header name and value are split at the correct column.
    """
    parser = PCDCPParser()
    parser._parse_header('BOU  2015  001  01-Jan-15  HEZF  0.01nT' +
            '  File Version 2.00')

    assert_equals(parser.header['date'], '01-Jan-15')
    assert_equals(parser.header['station'], 'BOU')
    assert_equals(parser.header['year'], '2015')
    assert_equals(parser.header['yearday'], '001')