def writeSAC(stream, filename, **kwargs): # @UnusedVariable """ Writes a SAC file. .. warning:: This function should NOT be called directly, it registers via the the :meth:`~obspy.core.stream.Stream.write` method of an ObsPy :class:`~obspy.core.stream.Stream` object, call this instead. :type stream: :class:`~obspy.core.stream.Stream` :param stream: The ObsPy Stream object to write. :type filename: str :param filename: Name of file to write. .. rubric:: Example >>> from obspy import read >>> st = read() >>> st.write("test.sac", format="SAC") #doctest: +SKIP """ # Translate the common (renamed) entries base, ext = os.path.splitext(filename) for i, trace in enumerate(stream): t = SacIO(trace) if len(stream) != 1: filename = "%s%02d%s" % (base, i + 1, ext) t.WriteSacBinary(filename) return
def writeSAC(stream, filename, byteorder="<", **kwargs): # @UnusedVariable """ Writes a SAC file. .. warning:: This function should NOT be called directly, it registers via the the :meth:`~obspy.core.stream.Stream.write` method of an ObsPy :class:`~obspy.core.stream.Stream` object, call this instead. :type stream: :class:`~obspy.core.stream.Stream` :param stream: The ObsPy Stream object to write. :type filename: str :param filename: Name of file to write. :type byteorder: int or str, optional :param byteorder: Must be either ``0`` or ``'<'`` for LSBF or little-endian, ``1`` or ``'>'`` for MSBF or big-endian. Defaults to little endian. .. rubric:: Example >>> from obspy import read >>> st = read() >>> st.write("test.sac", format="SAC") #doctest: +SKIP """ if byteorder in ("<", 0, "0"): byteorder = 0 elif byteorder in (">", 1, "1"): byteorder = 1 else: msg = "Invalid byte order. It must be either '<', '>', 0 or 1" raise ValueError(msg) # Translate the common (renamed) entries base, ext = os.path.splitext(filename) for i, trace in enumerate(stream): t = SacIO(trace) if len(stream) != 1: filename = "%s%02d%s" % (base, i + 1, ext) if (byteorder == 1 and t.byteorder == 'little') or \ (byteorder == 0 and t.byteorder == 'big'): t.swap_byte_order() t.WriteSacBinary(filename) return