Source code for obspy.io.kinemetrics.core

# -*- coding: utf-8 -*-
"""
Evt (Kinemetrics files) bindings to ObsPy's core classes.

:copyright:
    The ObsPy Development Team (devs@obspy.org)
:license:
    GNU Lesser General Public License, Version 3
    (https://www.gnu.org/copyleft/lesser.html)
"""
from . import evt
from .evt_base import EvtBaseError


[docs]def is_evt(filename_or_object): """ Checks whether a file is Evt or not. :type filename_or_object: str or file-like object :param filename_or_object: Evt file to be checked :rtype: bool :return: ``True`` if a Evt file, ``False`` otherwise """ if hasattr(filename_or_object, "seek") and \ hasattr(filename_or_object, "tell") and \ hasattr(filename_or_object, "read"): is_fileobject = True pos = filename_or_object.tell() else: is_fileobject = False tag = evt.EvtTag() if is_fileobject: try: tag.read(filename_or_object) if tag.verify(verbose=False) is False: return False return True except EvtBaseError: return False finally: filename_or_object.seek(pos, 0) else: with open(filename_or_object, "rb") as file_obj: try: tag.read(file_obj) if tag.verify(verbose=False) is False: return False return True except (EvtBaseError, IOError): return False
[docs]def read_evt(filename_or_object, **kwargs): """ Reads a Evt file and returns a Stream object. .. warning:: This function should NOT be called directly, it registers via the ObsPy :func:`~obspy.core.stream.read` function, call this instead :type filename_or_object: str or file-like object :param filename_or_object: Evt file to be read :rtype: :class:`~obspy.core.stream.Stream` :return: Stream object containing header and data """ evt_obj = evt.Evt() stream = evt_obj.read_file(filename_or_object, **kwargs) return stream