Tujuan: Memperkenalkan cara membaca dan mengolah sederhana data rekaman gempa
\n",
"
Keluaran: Peserta dapat memahami cara pengolahan sederhana data rekaman gempa
\n",
"
Sesi Materi
\n",
"
Waktu/Tempat: Sabtu, 25 September 2021/ Zoom
\n",
"
\n",
"
"
]
},
{
"cell_type": "markdown",
"id": "41088dd6",
"metadata": {},
"source": [
"## Membaca data rekaman gempa\n",
"\n",
"Modul `obspy` memungkinkan kita membaca data rekaman dalam berbagai macam format seperti `miniseed`,`SAC`, dan yang lain. Pada materi ini kita akan berikan contoh membaca data rekaman gempa dari stasiun GSI jaringan GE yang merekam gempa Mamuju M 6,2. Cara membaca data rekaman ini menggunakan fungsi `read`:"
]
},
{
"cell_type": "code",
"execution_count": 74,
"id": "2b7e8bf0",
"metadata": {},
"outputs": [],
"source": [
"from obspy import read\n",
"st=read(\"data/2021-01-14-mww62-sulawesi-indonesia-4.miniseed\")"
]
},
{
"cell_type": "markdown",
"id": "b9022151",
"metadata": {},
"source": [
"Informasi mengenai data dapat kita lihat dengan fungsi `print`:"
]
},
{
"cell_type": "code",
"execution_count": 75,
"id": "1ffc57a9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3 Trace(s) in Stream:\n",
"GE.GSI..BHE | 2021-01-14T18:32:06.369538Z - 2021-01-14T18:53:16.819538Z | 20.0 Hz, 25410 samples\n",
"GE.GSI..BHN | 2021-01-14T18:31:56.619538Z - 2021-01-14T18:53:18.469538Z | 20.0 Hz, 25638 samples\n",
"GE.GSI..BHZ | 2021-01-14T18:31:58.219538Z - 2021-01-14T18:53:14.769538Z | 20.0 Hz, 25532 samples\n"
]
}
],
"source": [
"print(st)"
]
},
{
"cell_type": "markdown",
"id": "8b529928",
"metadata": {},
"source": [
"Dari informasi tentang data rekaman kita dapat melihat ada 3 `trace` dengan komponen BHE,BHN, dan BH dengan frekuensi sampling 20 Hz\n",
"\n",
"Hasil pembacaan berupa obyek `Stream` yang kita beri nama `st`, untuk melihat metode apa saja yang bisa dilakukan kita bisa melihat petunjuknya:"
]
},
{
"cell_type": "code",
"execution_count": 76,
"id": "53f7e470",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Help on Stream in module obspy.core.stream object:\n",
"\n",
"class Stream(builtins.object)\n",
" | Stream(traces=None)\n",
" | \n",
" | List like object of multiple ObsPy Trace objects.\n",
" | \n",
" | :type traces: list of :class:`~obspy.core.trace.Trace`, optional\n",
" | :param traces: Initial list of ObsPy :class:`~obspy.core.trace.Trace`\n",
" | objects.\n",
" | \n",
" | .. rubric:: Basic Usage\n",
" | \n",
" | >>> trace1 = Trace()\n",
" | >>> trace2 = Trace()\n",
" | >>> stream = Stream(traces=[trace1, trace2])\n",
" | >>> print(stream) # doctest: +ELLIPSIS\n",
" | 2 Trace(s) in Stream:\n",
" | ...\n",
" | \n",
" | .. rubric:: Supported Operations\n",
" | \n",
" | ``stream = streamA + streamB``\n",
" | Merges all traces within the two Stream objects ``streamA`` and\n",
" | ``streamB`` into the new Stream object ``stream``.\n",
" | See also: :meth:`Stream.__add__`.\n",
" | ``stream += streamA``\n",
" | Extends the Stream object ``stream`` with all traces from ``streamA``.\n",
" | See also: :meth:`Stream.__iadd__`.\n",
" | ``len(stream)``\n",
" | Returns the number of Traces in the Stream object ``stream``.\n",
" | See also: :meth:`Stream.__len__`.\n",
" | ``str(stream)``\n",
" | Contains the number of traces in the Stream object and returns the\n",
" | value of each Trace's __str__ method.\n",
" | See also: :meth:`Stream.__str__`.\n",
" | \n",
" | Methods defined here:\n",
" | \n",
" | __add__(self, other)\n",
" | Add two streams or a stream with a single trace.\n",
" | \n",
" | :type other: :class:`~obspy.core.stream.Stream` or\n",
" | :class:`~obspy.core.trace.Trace`\n",
" | :param other: Stream or Trace object to add.\n",
" | :rtype: :class:`~obspy.core.stream.Stream`\n",
" | :returns: New Stream object containing references to the traces of the\n",
" | original streams\n",
" | \n",
" | .. rubric:: Examples\n",
" | \n",
" | 1. Adding two Streams\n",
" | \n",
" | >>> st1 = Stream([Trace(), Trace(), Trace()])\n",
" | >>> len(st1)\n",
" | 3\n",
" | >>> st2 = Stream([Trace(), Trace()])\n",
" | >>> len(st2)\n",
" | 2\n",
" | >>> stream = st1 + st2\n",
" | >>> len(stream)\n",
" | 5\n",
" | \n",
" | 2. Adding Stream and Trace\n",
" | \n",
" | >>> stream2 = st1 + Trace()\n",
" | >>> len(stream2)\n",
" | 4\n",
" | \n",
" | __delitem__(self, index)\n",
" | Passes on the __delitem__ method to the underlying list of traces.\n",
" | \n",
" | __eq__(self, other)\n",
" | Implements rich comparison of Stream objects for \"==\" operator.\n",
" | \n",
" | Trace order does not effect the comparison because the traces are\n",
" | sorted beforehand.\n",
" | \n",
" | This function strictly compares the data and stats objects of each\n",
" | trace contained by the streams. If less strict behavior is desired,\n",
" | which may be the case for testing, consider using the\n",
" | :func:`~obspy.core.util.testing.stream_almost_equal` function.\n",
" | \n",
" | :type other: :class:`~obspy.core.stream.Stream`\n",
" | :param other: Stream object for comparison.\n",
" | :rtype: bool\n",
" | :return: ``True`` if both Streams contain the same traces, i.e. after a\n",
" | sort operation going through both streams every trace should be\n",
" | equal according to Trace's\n",
" | :meth:`~obspy.core.trace.Trace.__eq__` operator.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read()\n",
" | >>> st2 = st.copy()\n",
" | >>> st is st2\n",
" | False\n",
" | >>> st == st2\n",
" | True\n",
" | \n",
" | __ge__(self, other)\n",
" | Too ambiguous, throw an Error.\n",
" | \n",
" | __getitem__(self, index)\n",
" | __getitem__ method of obspy.Stream objects.\n",
" | \n",
" | :return: Trace objects\n",
" | \n",
" | __getslice__(self, i, j, k=1)\n",
" | __getslice__ method of obspy.Stream objects.\n",
" | \n",
" | :return: Stream object\n",
" | \n",
" | __gt__(self, other)\n",
" | Too ambiguous, throw an Error.\n",
" | \n",
" | __iadd__(self, other)\n",
" | Add two streams with self += other.\n",
" | \n",
" | It will extend the current Stream object with the traces of the given\n",
" | Stream. Traces will not be copied but references to the original traces\n",
" | will be appended.\n",
" | \n",
" | :type other: :class:`~obspy.core.stream.Stream` or\n",
" | :class:`~obspy.core.trace.Trace`\n",
" | :param other: Stream or Trace object to add.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> stream = Stream([Trace(), Trace(), Trace()])\n",
" | >>> len(stream)\n",
" | 3\n",
" | \n",
" | >>> stream += Stream([Trace(), Trace()])\n",
" | >>> len(stream)\n",
" | 5\n",
" | \n",
" | >>> stream += Trace()\n",
" | >>> len(stream)\n",
" | 6\n",
" | \n",
" | __init__(self, traces=None)\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __iter__(self)\n",
" | Return a robust iterator for stream.traces.\n",
" | \n",
" | Doing this it is safe to remove traces from streams inside of\n",
" | for-loops using stream's :meth:`~obspy.core.stream.Stream.remove`\n",
" | method. Actually this creates a new iterator every time a trace is\n",
" | removed inside the for-loop.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import Stream\n",
" | >>> st = Stream()\n",
" | >>> for component in [\"1\", \"Z\", \"2\", \"3\", \"Z\", \"N\", \"E\", \"4\", \"5\"]:\n",
" | ... channel = \"EH\" + component\n",
" | ... tr = Trace(header={'station': 'TEST', 'channel': channel})\n",
" | ... st.append(tr) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 9 Trace(s) in Stream:\n",
" | .TEST..EH1 | 1970-01-01T00:00:00.000000Z - ... | 1.0 Hz, 0 samples\n",
" | .TEST..EHZ | 1970-01-01T00:00:00.000000Z - ... | 1.0 Hz, 0 samples\n",
" | .TEST..EH2 | 1970-01-01T00:00:00.000000Z - ... | 1.0 Hz, 0 samples\n",
" | .TEST..EH3 | 1970-01-01T00:00:00.000000Z - ... | 1.0 Hz, 0 samples\n",
" | .TEST..EHZ | 1970-01-01T00:00:00.000000Z - ... | 1.0 Hz, 0 samples\n",
" | .TEST..EHN | 1970-01-01T00:00:00.000000Z - ... | 1.0 Hz, 0 samples\n",
" | .TEST..EHE | 1970-01-01T00:00:00.000000Z - ... | 1.0 Hz, 0 samples\n",
" | .TEST..EH4 | 1970-01-01T00:00:00.000000Z - ... | 1.0 Hz, 0 samples\n",
" | .TEST..EH5 | 1970-01-01T00:00:00.000000Z - ... | 1.0 Hz, 0 samples\n",
" | \n",
" | >>> for tr in st:\n",
" | ... if tr.stats.channel[-1] not in [\"Z\", \"N\", \"E\"]:\n",
" | ... st.remove(tr) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 4 Trace(s) in Stream:\n",
" | .TEST..EHZ | 1970-01-01T00:00:00.000000Z - ... | 1.0 Hz, 0 samples\n",
" | .TEST..EHZ | 1970-01-01T00:00:00.000000Z - ... | 1.0 Hz, 0 samples\n",
" | .TEST..EHN | 1970-01-01T00:00:00.000000Z - ... | 1.0 Hz, 0 samples\n",
" | .TEST..EHE | 1970-01-01T00:00:00.000000Z - ... | 1.0 Hz, 0 samples\n",
" | \n",
" | __le__(self, other)\n",
" | Too ambiguous, throw an Error.\n",
" | \n",
" | __len__(self)\n",
" | Return the number of Traces in the Stream object.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> stream = Stream([Trace(), Trace(), Trace()])\n",
" | >>> len(stream)\n",
" | 3\n",
" | \n",
" | __lt__(self, other)\n",
" | Too ambiguous, throw an Error.\n",
" | \n",
" | __mul__(self, num)\n",
" | Create a new Stream containing num copies of this stream.\n",
" | \n",
" | :rtype num: int\n",
" | :param num: Number of copies.\n",
" | :returns: New ObsPy Stream object.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read()\n",
" | >>> len(st)\n",
" | 3\n",
" | >>> st2 = st * 5\n",
" | >>> len(st2)\n",
" | 15\n",
" | \n",
" | __ne__(self, other)\n",
" | Implements rich comparison of Stream objects for \"!=\" operator.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read()\n",
" | >>> st2 = st.copy()\n",
" | >>> st is st2\n",
" | False\n",
" | >>> st != st2\n",
" | False\n",
" | \n",
" | __nonzero__(self)\n",
" | A Stream is considered zero if has no Traces.\n",
" | \n",
" | __setitem__(self, index, trace)\n",
" | __setitem__ method of obspy.Stream objects.\n",
" | \n",
" | __str__(self, extended=False)\n",
" | Return short summary string of the current stream.\n",
" | \n",
" | It will contain the number of Traces in the Stream and the return value\n",
" | of each Trace's :meth:`~obspy.core.trace.Trace.__str__` method.\n",
" | \n",
" | :type extended: bool, optional\n",
" | :param extended: This method will show only 20 traces by default.\n",
" | Enable this option to show all entries.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> stream = Stream([Trace(), Trace()])\n",
" | >>> print(stream) # doctest: +ELLIPSIS\n",
" | 2 Trace(s) in Stream:\n",
" | ...\n",
" | \n",
" | append(self, trace)\n",
" | Append a single Trace object to the current Stream object.\n",
" | \n",
" | :param trace: :class:`~obspy.core.stream.Trace` object.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import read, Trace\n",
" | >>> st = read()\n",
" | >>> tr = Trace()\n",
" | >>> tr.stats.station = 'TEST'\n",
" | >>> st.append(tr) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 4 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | .TEST.. | 1970-01-01T00:00:00.000000Z ... | 1.0 Hz, 0 samples\n",
" | \n",
" | attach_response(self, inventories)\n",
" | Search for and attach channel response to each trace as\n",
" | trace.stats.response. Does not raise an exception but shows a warning\n",
" | if response information can not be found for all traces. Returns a\n",
" | list of traces for which no response could be found.\n",
" | To subsequently deconvolve the instrument response use\n",
" | :meth:`Stream.remove_response`.\n",
" | \n",
" | >>> from obspy import read, read_inventory\n",
" | >>> st = read()\n",
" | >>> inv = read_inventory()\n",
" | >>> st.attach_response(inv)\n",
" | []\n",
" | >>> tr = st[0]\n",
" | >>> print(tr.stats.response) # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE\n",
" | Channel Response\n",
" | From M/S (Velocity in Meters per Second) to COUNTS (Digital Counts)\n",
" | Overall Sensitivity: 2.5168e+09 defined at 0.020 Hz\n",
" | 4 stages:\n",
" | Stage 1: PolesZerosResponseStage from M/S to V, gain: 1500\n",
" | Stage 2: CoefficientsTypeResponseStage from V to COUNTS, ...\n",
" | Stage 3: FIRResponseStage from COUNTS to COUNTS, gain: 1\n",
" | Stage 4: FIRResponseStage from COUNTS to COUNTS, gain: 1\n",
" | \n",
" | :type inventories: :class:`~obspy.core.inventory.inventory.Inventory`\n",
" | or :class:`~obspy.core.inventory.network.Network` or a list\n",
" | containing objects of these types.\n",
" | :param inventories: Station metadata to use in search for response for\n",
" | each trace in the stream.\n",
" | :rtype: list of :class:`~obspy.core.trace.Trace`\n",
" | :returns: list of traces for which no response information could be\n",
" | found.\n",
" | \n",
" | clear(self)\n",
" | Clear trace list (convenience method).\n",
" | \n",
" | Replaces Stream's trace list by an empty one creating an empty\n",
" | Stream object. Useful if there are references to the current\n",
" | Stream object that should not break. Otherwise simply use a new\n",
" | Stream() instance.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read()\n",
" | >>> len(st)\n",
" | 3\n",
" | >>> st.clear() # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> st.traces\n",
" | []\n",
" | \n",
" | copy(self)\n",
" | Return a deepcopy of the Stream object.\n",
" | \n",
" | :rtype: :class:`~obspy.core.stream.Stream`\n",
" | :return: Copy of current stream.\n",
" | \n",
" | .. rubric:: Examples\n",
" | \n",
" | 1. Create a Stream and copy it\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read()\n",
" | >>> st2 = st.copy()\n",
" | \n",
" | The two objects are not the same:\n",
" | \n",
" | >>> st is st2\n",
" | False\n",
" | \n",
" | But they have equal data (before applying further processing):\n",
" | \n",
" | >>> st == st2\n",
" | True\n",
" | \n",
" | 2. The following example shows how to make an alias but not copy the\n",
" | data. Any changes on ``st3`` would also change the contents of\n",
" | ``st``.\n",
" | \n",
" | >>> st3 = st\n",
" | >>> st is st3\n",
" | True\n",
" | >>> st == st3\n",
" | True\n",
" | \n",
" | count = __len__(self)\n",
" | \n",
" | cutout(self, starttime, endtime)\n",
" | Cut the given time range out of all traces of this Stream object.\n",
" | \n",
" | :type starttime: :class:`~obspy.core.utcdatetime.UTCDateTime`\n",
" | :param starttime: Start of time span to remove from stream.\n",
" | :type endtime: :class:`~obspy.core.utcdatetime.UTCDateTime`\n",
" | :param endtime: End of time span to remove from stream.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> st = read()\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | >>> t1 = UTCDateTime(\"2009-08-24T00:20:06\")\n",
" | >>> t2 = UTCDateTime(\"2009-08-24T00:20:11\")\n",
" | >>> st.cutout(t1, t2) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 6 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 301 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 301 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 301 samples\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:11.000000Z ... | 100.0 Hz, 2200 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:11.000000Z ... | 100.0 Hz, 2200 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:11.000000Z ... | 100.0 Hz, 2200 samples\n",
" | \n",
" | decimate(self, factor, no_filter=False, strict_length=False)\n",
" | Downsample data in all traces of stream by an integer factor.\n",
" | \n",
" | :type factor: int\n",
" | :param factor: Factor by which the sampling rate is lowered by\n",
" | decimation.\n",
" | :type no_filter: bool, optional\n",
" | :param no_filter: Deactivates automatic filtering if set to ``True``.\n",
" | Defaults to ``False``.\n",
" | :type strict_length: bool, optional\n",
" | :param strict_length: Leave traces unchanged for which end time of\n",
" | trace would change. Defaults to ``False``.\n",
" | \n",
" | Currently a simple integer decimation is implemented.\n",
" | Only every decimation_factor-th sample remains in the trace, all other\n",
" | samples are thrown away. Prior to decimation a lowpass filter is\n",
" | applied to ensure no aliasing artifacts are introduced. The automatic\n",
" | filtering can be deactivated with ``no_filter=True``.\n",
" | \n",
" | If the length of the data array modulo ``decimation_factor`` is not\n",
" | zero then the end time of the trace is changing on sub-sample scale. To\n",
" | abort downsampling in case of changing end times set\n",
" | ``strict_length=True``.\n",
" | \n",
" | .. note::\n",
" | \n",
" | The :class:`~Stream` object has three different methods to change\n",
" | the sampling rate of its data: :meth:`~.resample`,\n",
" | :meth:`~.decimate`, and :meth:`~.interpolate`\n",
" | \n",
" | Make sure to choose the most appropriate one for the problem at\n",
" | hand.\n",
" | \n",
" | .. note::\n",
" | \n",
" | This operation is performed in place on the actual data arrays. The\n",
" | raw data is not accessible anymore afterwards. To keep your\n",
" | original data, use :meth:`~obspy.core.stream.Stream.copy` to create\n",
" | a copy of your stream object.\n",
" | This also makes an entry with information on the applied processing\n",
" | in ``stats.processing`` of every trace.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | For the example we switch off the automatic pre-filtering so that\n",
" | the effect of the downsampling routine becomes clearer.\n",
" | \n",
" | >>> from obspy import Trace, Stream\n",
" | >>> tr = Trace(data=np.arange(10))\n",
" | >>> st = Stream(traces=[tr])\n",
" | >>> tr.stats.sampling_rate\n",
" | 1.0\n",
" | >>> tr.data\n",
" | array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])\n",
" | >>> st.decimate(4, strict_length=False, no_filter=True)\n",
" | ... # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> tr.stats.sampling_rate\n",
" | 0.25\n",
" | >>> tr.data\n",
" | array([0, 4, 8])\n",
" | \n",
" | detrend(self, type='simple', **options)\n",
" | Remove a trend from all traces.\n",
" | \n",
" | For details on supported methods and parameters see the corresponding\n",
" | :meth:`~obspy.core.trace.Trace.detrend` method of\n",
" | :class:`~obspy.core.trace.Trace`.\n",
" | \n",
" | .. note::\n",
" | \n",
" | This operation is performed in place on the actual data arrays. The\n",
" | raw data will no longer be accessible afterwards. To keep your\n",
" | original data, use :meth:`~obspy.core.stream.Stream.copy` to create\n",
" | a copy of your stream object.\n",
" | \n",
" | differentiate(self, method='gradient')\n",
" | Differentiate all traces with respect to time.\n",
" | \n",
" | :type method: str, optional\n",
" | :param method: Method to use for differentiation. Defaults to\n",
" | ``'gradient'``. See the `Supported Methods`_ section below for\n",
" | further details.\n",
" | \n",
" | .. note::\n",
" | \n",
" | This operation is performed in place on the actual data arrays. The\n",
" | raw data is not accessible anymore afterwards. To keep your\n",
" | original data, use :meth:`~obspy.core.stream.Stream.copy` to create\n",
" | a copy of your stream object.\n",
" | This also makes an entry with information on the applied processing\n",
" | in ``stats.processing`` of every trace.\n",
" | \n",
" | .. rubric:: _`Supported Methods`\n",
" | \n",
" | ``'gradient'``\n",
" | The gradient is computed using central differences in the interior\n",
" | and first differences at the boundaries. The returned gradient\n",
" | hence has the same shape as the input array. (uses\n",
" | :func:`numpy.gradient`)\n",
" | \n",
" | extend(self, trace_list)\n",
" | Extend the current Stream object with a list of Trace objects.\n",
" | \n",
" | :param trace_list: list of :class:`~obspy.core.trace.Trace` objects or\n",
" | :class:`~obspy.core.stream.Stream`.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import read, Trace\n",
" | >>> st = read()\n",
" | >>> tr1 = Trace()\n",
" | >>> tr1.stats.station = 'TEST1'\n",
" | >>> tr2 = Trace()\n",
" | >>> tr2.stats.station = 'TEST2'\n",
" | >>> st.extend([tr1, tr2]) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 5 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | .TEST1.. | 1970-01-01T00:00:00.000000Z ... | 1.0 Hz, 0 samples\n",
" | .TEST2.. | 1970-01-01T00:00:00.000000Z ... | 1.0 Hz, 0 samples\n",
" | \n",
" | filter(self, type, **options)\n",
" | Filter the data of all traces in the Stream.\n",
" | \n",
" | :type type: str\n",
" | :param type: String that specifies which filter is applied (e.g.\n",
" | ``\"bandpass\"``). See the `Supported Filter`_ section below for\n",
" | further details.\n",
" | :param options: Necessary keyword arguments for the respective filter\n",
" | that will be passed on. (e.g. ``freqmin=1.0``, ``freqmax=20.0`` for\n",
" | ``\"bandpass\"``)\n",
" | \n",
" | .. note::\n",
" | \n",
" | This operation is performed in place on the actual data arrays. The\n",
" | raw data is not accessible anymore afterwards. To keep your\n",
" | original data, use :meth:`~obspy.core.stream.Stream.copy` to create\n",
" | a copy of your stream object.\n",
" | This also makes an entry with information on the applied processing\n",
" | in ``stats.processing`` of every trace.\n",
" | \n",
" | .. rubric:: _`Supported Filter`\n",
" | \n",
" | ``'bandpass'``\n",
" | Butterworth-Bandpass (uses :func:`obspy.signal.filter.bandpass`).\n",
" | \n",
" | ``'bandstop'``\n",
" | Butterworth-Bandstop (uses :func:`obspy.signal.filter.bandstop`).\n",
" | \n",
" | ``'lowpass'``\n",
" | Butterworth-Lowpass (uses :func:`obspy.signal.filter.lowpass`).\n",
" | \n",
" | ``'highpass'``\n",
" | Butterworth-Highpass (uses :func:`obspy.signal.filter.highpass`).\n",
" | \n",
" | ``'lowpass_cheby_2'``\n",
" | Cheby2-Lowpass (uses :func:`obspy.signal.filter.lowpass_cheby_2`).\n",
" | \n",
" | ``'lowpass_fir'`` (experimental)\n",
" | FIR-Lowpass (uses :func:`obspy.signal.filter.lowpass_fir`).\n",
" | \n",
" | ``'remez_fir'`` (experimental)\n",
" | Minimax optimal bandpass using Remez algorithm (uses\n",
" | :func:`obspy.signal.filter.remez_fir`).\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read()\n",
" | >>> st.filter(\"highpass\", freq=1.0) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> st.plot() # doctest: +SKIP\n",
" | \n",
" | .. plot::\n",
" | \n",
" | from obspy import read\n",
" | st = read()\n",
" | st.filter(\"highpass\", freq=1.0)\n",
" | st.plot()\n",
" | \n",
" | get_gaps(self, min_gap=None, max_gap=None)\n",
" | Determine all trace gaps/overlaps of the Stream object.\n",
" | \n",
" | :param min_gap: All gaps smaller than this value will be omitted. The\n",
" | value is assumed to be in seconds. Defaults to None.\n",
" | :param max_gap: All gaps larger than this value will be omitted. The\n",
" | value is assumed to be in seconds. Defaults to None.\n",
" | \n",
" | The returned list contains one item in the following form for each gap/\n",
" | overlap: [network, station, location, channel, starttime of the gap,\n",
" | end time of the gap, duration of the gap, number of missing samples]\n",
" | \n",
" | Please be aware that no sorting and checking of stations, channels, ...\n",
" | is done. This method only compares the start and end times of the\n",
" | Traces and the start and end times of segments within Traces that\n",
" | contain masked arrays (i.e., Traces that were merged without a fill\n",
" | value).\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | Our example stream has no gaps:\n",
" | \n",
" | >>> from obspy import read, UTCDateTime\n",
" | >>> st = read()\n",
" | >>> st.get_gaps()\n",
" | []\n",
" | >>> st.print_gaps() # doctest: +ELLIPSIS\n",
" | Source Last Sample ...\n",
" | Total: 0 gap(s) and 0 overlap(s)\n",
" | \n",
" | So let's make a copy of the first trace and cut both so that we end up\n",
" | with a gappy stream:\n",
" | \n",
" | >>> tr = st[0].copy()\n",
" | >>> t = UTCDateTime(\"2009-08-24T00:20:13.0\")\n",
" | >>> st[0].trim(endtime=t) # doctest: +ELLIPSIS\n",
" | <...Trace object at 0x...>\n",
" | >>> tr.trim(starttime=t + 1) # doctest: +ELLIPSIS\n",
" | <...Trace object at 0x...>\n",
" | >>> st.append(tr) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> st.get_gaps()[0] # doctest: +SKIP\n",
" | [['BW', 'RJOB', '', 'EHZ', UTCDateTime(2009, 8, 24, 0, 20, 13),\n",
" | UTCDateTime(2009, 8, 24, 0, 20, 14), 1.0, 99]]\n",
" | >>> st.print_gaps() # doctest: +ELLIPSIS\n",
" | Source Last Sample ...\n",
" | BW.RJOB..EHZ 2009-08-24T00:20:13.000000Z ...\n",
" | Total: 1 gap(s) and 0 overlap(s)\n",
" | \n",
" | insert(self, position, object)\n",
" | Insert either a single Trace or a list of Traces before index.\n",
" | \n",
" | :param position: The Trace will be inserted at position.\n",
" | :param object: Single Trace object or list of Trace objects.\n",
" | \n",
" | integrate(self, method='cumtrapz', **options)\n",
" | Integrate all traces with respect to time.\n",
" | \n",
" | For details see the corresponding\n",
" | :meth:`~obspy.core.trace.Trace.integrate` method of\n",
" | :class:`~obspy.core.trace.Trace`.\n",
" | \n",
" | :type method: str, optional\n",
" | :param type: Method to use for integration. Defaults to\n",
" | ``'cumtrapz'``. See :meth:`~obspy.core.trace.Trace.integrate` for\n",
" | further details.\n",
" | \n",
" | .. note::\n",
" | \n",
" | This operation is performed in place on the actual data arrays. The\n",
" | raw data is not accessible anymore afterwards. To keep your\n",
" | original data, use :meth:`~obspy.core.stream.Stream.copy` to create\n",
" | a copy of your stream object.\n",
" | This also makes an entry with information on the applied processing\n",
" | in ``stats.processing`` of every trace.\n",
" | \n",
" | interpolate(self, *args, **kwargs)\n",
" | Interpolate all Traces in a Stream.\n",
" | \n",
" | For details see the corresponding\n",
" | :meth:`~obspy.core.trace.Trace.interpolate` method of\n",
" | :class:`~obspy.core.trace.Trace`.\n",
" | \n",
" | .. note::\n",
" | \n",
" | The :class:`~Stream` object has three different methods to change\n",
" | the sampling rate of its data: :meth:`~.resample`,\n",
" | :meth:`~.decimate`, and :meth:`~.interpolate`\n",
" | \n",
" | Make sure to choose the most appropriate one for the problem at\n",
" | hand.\n",
" | \n",
" | .. note::\n",
" | \n",
" | This operation is performed in place on the actual data arrays. The\n",
" | raw data will no longer be accessible afterwards. To keep your\n",
" | original data, use :meth:`~obspy.core.stream.Stream.copy` to create\n",
" | a copy of your stream object.\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read()\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03... - ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03... - ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03... - ... | 100.0 Hz, 3000 samples\n",
" | >>> st.interpolate(sampling_rate=111.1) # doctest: +ELLIPSIS\n",
" | \n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03... - ... | 111.1 Hz, 3332 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03... - ... | 111.1 Hz, 3332 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03... - ... | 111.1 Hz, 3332 samples\n",
" | \n",
" | max(self)\n",
" | Get the values of the absolute maximum amplitudes of all traces in the\n",
" | stream. See :meth:`~obspy.core.trace.Trace.max`.\n",
" | \n",
" | :return: List of values of absolute maxima of all traces\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import Trace, Stream\n",
" | >>> tr1 = Trace(data=np.array([0, -3, 9, 6, 4]))\n",
" | >>> tr2 = Trace(data=np.array([0, -3, -9, 6, 4]))\n",
" | >>> tr3 = Trace(data=np.array([0.3, -3.5, 9.0, 6.4, 4.3]))\n",
" | >>> st = Stream(traces=[tr1, tr2, tr3])\n",
" | >>> st.max()\n",
" | [9, -9, 9.0]\n",
" | \n",
" | merge(self, method=0, fill_value=None, interpolation_samples=0, **kwargs)\n",
" | Merge ObsPy Trace objects with same IDs.\n",
" | \n",
" | :type method: int, optional\n",
" | :param method: Methodology to handle overlaps/gaps of traces. Defaults\n",
" | to ``0``.\n",
" | See :meth:`obspy.core.trace.Trace.__add__` for details on\n",
" | methods ``0`` and ``1``,\n",
" | see :meth:`obspy.core.stream.Stream._cleanup` for details on\n",
" | method ``-1``. Any merge operation performs a cleanup merge as\n",
" | a first step (method ``-1``).\n",
" | :type fill_value: int, float, str or ``None``, optional\n",
" | :param fill_value: Fill value for gaps. Defaults to ``None``. Traces\n",
" | will be converted to NumPy masked arrays if no value is given and\n",
" | gaps are present. The value ``'latest'`` will use the latest value\n",
" | before the gap. If value ``'interpolate'`` is provided, missing\n",
" | values are linearly interpolated (not changing the data\n",
" | type e.g. of integer valued traces). Not used for ``method=-1``.\n",
" | :type interpolation_samples: int, optional\n",
" | :param interpolation_samples: Used only for ``method=1``. It specifies\n",
" | the number of samples which are used to interpolate between\n",
" | overlapping traces. Default to ``0``. If set to ``-1`` all\n",
" | overlapping samples are interpolated.\n",
" | \n",
" | Importing waveform data containing gaps or overlaps results into\n",
" | a :class:`~obspy.core.stream.Stream` object with multiple traces having\n",
" | the same identifier. This method tries to merge such traces inplace,\n",
" | thus returning nothing. Merged trace data will be converted into a\n",
" | NumPy :class:`~numpy.ma.MaskedArray` type if any gaps are present. This\n",
" | behavior may be prevented by setting the ``fill_value`` parameter.\n",
" | The ``method`` argument controls the handling of overlapping data\n",
" | values.\n",
" | \n",
" | normalize(self, global_max=False)\n",
" | Normalize all Traces in the Stream.\n",
" | \n",
" | By default all traces are normalized separately to their respective\n",
" | absolute maximum. By setting ``global_max=True`` all traces get\n",
" | normalized to the global maximum of all traces.\n",
" | \n",
" | :param global_max: If set to ``True``, all traces are normalized with\n",
" | respect to the global maximum of all traces in the stream\n",
" | instead of normalizing every trace separately.\n",
" | \n",
" | .. note::\n",
" | If ``data.dtype`` of a trace was integer it is changing to float.\n",
" | \n",
" | .. note::\n",
" | \n",
" | This operation is performed in place on the actual data arrays. The\n",
" | raw data is not accessible anymore afterwards. To keep your\n",
" | original data, use :meth:`~obspy.core.stream.Stream.copy` to create\n",
" | a copy of your stream object.\n",
" | This also makes an entry with information on the applied processing\n",
" | in ``stats.processing`` of every trace.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | Make a Stream with two Traces:\n",
" | \n",
" | >>> from obspy import Trace, Stream\n",
" | >>> tr1 = Trace(data=np.array([0, -3, 9, 6, 4]))\n",
" | >>> tr2 = Trace(data=np.array([0.3, -0.5, -0.8, 0.4, 0.3]))\n",
" | >>> st = Stream(traces=[tr1, tr2])\n",
" | \n",
" | All traces are normalized to their absolute maximum and processing\n",
" | information is added:\n",
" | \n",
" | >>> st.normalize() # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> st[0].data # doctest: +ELLIPSIS\n",
" | array([ 0. , -0.33333333, 1. , 0.66666667, ...])\n",
" | >>> print(st[0].stats.processing[0]) # doctest: +ELLIPSIS\n",
" | ObsPy ... normalize(norm=None)\n",
" | >>> st[1].data\n",
" | array([ 0.375, -0.625, -1. , 0.5 , 0.375])\n",
" | >>> print(st[1].stats.processing[0]) # doctest: +ELLIPSIS\n",
" | ObsPy ...: normalize(norm=None)\n",
" | \n",
" | Now let's do it again normalize all traces to the stream's global\n",
" | maximum:\n",
" | \n",
" | >>> tr1 = Trace(data=np.array([0, -3, 9, 6, 4]))\n",
" | >>> tr2 = Trace(data=np.array([0.3, -0.5, -0.8, 0.4, 0.3]))\n",
" | >>> st = Stream(traces=[tr1, tr2])\n",
" | \n",
" | >>> st.normalize(global_max=True) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> st[0].data # doctest: +ELLIPSIS\n",
" | array([ 0. , -0.33333333, 1. , 0.66666667, ...])\n",
" | >>> print(st[0].stats.processing[0]) # doctest: +ELLIPSIS\n",
" | ObsPy ...: normalize(norm=9)\n",
" | >>> st[1].data # doctest: +ELLIPSIS\n",
" | array([ 0.03333333, -0.05555556, -0.08888889, 0.04444444, ...])\n",
" | >>> print(st[1].stats.processing[0]) # doctest: +ELLIPSIS\n",
" | ObsPy ...: normalize(norm=9)\n",
" | \n",
" | plot(self, *args, **kwargs)\n",
" | Create a waveform plot of the current ObsPy Stream object.\n",
" | \n",
" | :param outfile: Output file string. Also used to automatically\n",
" | determine the output format. Supported file formats depend on your\n",
" | matplotlib backend. Most backends support png, pdf, ps, eps and\n",
" | svg. Defaults to ``None``.\n",
" | :param format: Format of the graph picture. If no format is given the\n",
" | outfile parameter will be used to try to automatically determine\n",
" | the output format. If no format is found it defaults to png output.\n",
" | If no outfile is specified but a format is, than a binary\n",
" | imagestring will be returned.\n",
" | Defaults to ``None``.\n",
" | :param starttime: Start time of the graph as a\n",
" | :class:`~obspy.core.utcdatetime.UTCDateTime` object. If not set\n",
" | the graph will be plotted from the beginning.\n",
" | Defaults to ``None``.\n",
" | :param endtime: End time of the graph as a\n",
" | :class:`~obspy.core.utcdatetime.UTCDateTime` object. If not set\n",
" | the graph will be plotted until the end.\n",
" | Defaults to ``None``.\n",
" | :param fig: Use an existing matplotlib figure instance.\n",
" | Defaults to ``None``.\n",
" | :param automerge: If automerge is True, Traces with the same id will be\n",
" | merged.\n",
" | Defaults to ``True``.\n",
" | :param size: Size tuple in pixel for the output file. This corresponds\n",
" | to the resolution of the graph for vector formats.\n",
" | Defaults to ``(800, 250)`` pixel per channel for ``type='normal'``\n",
" | or ``type='relative'``, ``(800, 600)`` for ``type='dayplot'``, and\n",
" | ``(1000, 600)`` for ``type='section'``.\n",
" | :param dpi: Dots per inch of the output file. This also affects the\n",
" | size of most elements in the graph (text, linewidth, ...).\n",
" | Defaults to ``100``.\n",
" | :param color: Color of the graph as a matplotlib color string as\n",
" | described below. If ``type='dayplot'`` a list/tuple of color\n",
" | strings is expected that will be periodically repeated for each\n",
" | line plotted. If ``type='section'`` then the values ``'network'``,\n",
" | ``'station'`` or ``'channel'`` are also accepted, and traces will\n",
" | be uniquely colored by the given information.\n",
" | Defaults to ``'black'`` or to ``('#B2000F', '#004C12', '#847200',\n",
" | '#0E01FF')`` for ``type='dayplot'``.\n",
" | :param bgcolor: Background color of the graph.\n",
" | Defaults to ``'white'``.\n",
" | :param face_color: Face color of the matplotlib canvas.\n",
" | Defaults to ``'white'``.\n",
" | :param transparent: Make all backgrounds transparent (True/False). This\n",
" | will override the ``bgcolor`` and ``face_color`` arguments.\n",
" | Defaults to ``False``.\n",
" | :param number_of_ticks: The number of ticks on the x-axis.\n",
" | Defaults to ``4``.\n",
" | :param tick_format: The way the time axis is formatted.\n",
" | Defaults to ``'%H:%M:%S'`` or ``'%.2f'`` if ``type='relative'``.\n",
" | :param tick_rotation: Tick rotation in degrees.\n",
" | Defaults to ``0``.\n",
" | :param handle: Whether or not to return the matplotlib figure instance\n",
" | after the plot has been created.\n",
" | Defaults to ``False``.\n",
" | :param method: By default, all traces with more than 400,000 samples\n",
" | will be plotted with a fast method that cannot be zoomed.\n",
" | Setting this argument to ``'full'`` will straight up plot the data.\n",
" | This results in a potentially worse performance but the interactive\n",
" | matplotlib view can be used properly.\n",
" | Defaults to 'fast'.\n",
" | :param type: Type may be set to either: ``'normal'`` to produce the\n",
" | standard plot; ``'dayplot'`` to create a one-day plot for a single\n",
" | Trace; ``'relative'`` to convert all date/time information to a\n",
" | relative scale starting the seismogram at 0 seconds; ``'section'``\n",
" | to plot all seismograms in a single coordinate system shifted\n",
" | according to their distance from a reference point. Defaults to\n",
" | ``'normal'``.\n",
" | :param equal_scale: If enabled all plots are equally scaled.\n",
" | Defaults to ``True``.\n",
" | :param show: If True, show the plot interactively after plotting. This\n",
" | is ignored if any of ``outfile``, ``format``, ``handle``, or\n",
" | ``fig`` are specified.\n",
" | Defaults to ``True``.\n",
" | :param draw: If True, the figure canvas is explicitly re-drawn, which\n",
" | ensures that *existing* figures are fresh. It makes no difference\n",
" | for figures that are not yet visible.\n",
" | Defaults to ``True``.\n",
" | :param block: If True block call to showing plot. Only works if the\n",
" | active matplotlib backend supports it.\n",
" | Defaults to ``True``.\n",
" | :param linewidth: Float value in points of the line width.\n",
" | Defaults to ``1.0``.\n",
" | :param linestyle: Line style.\n",
" | Defaults to ``'-'``\n",
" | :param grid_color: Color of the grid.\n",
" | Defaults to ``'black'``.\n",
" | :param grid_linewidth: Float value in points of the grid line width.\n",
" | Defaults to ``0.5``.\n",
" | :param grid_linestyle: Grid line style.\n",
" | Defaults to ``':'``\n",
" | \n",
" | **Dayplot Parameters**\n",
" | \n",
" | The following parameters are only available if ``type='dayplot'`` is\n",
" | set.\n",
" | \n",
" | :param vertical_scaling_range: Determines how each line is scaled in\n",
" | its given space. Every line will be centered around its mean value\n",
" | and then clamped to fit its given space. This argument is the range\n",
" | in data units that will be used to clamp the data. If the range is\n",
" | smaller than the actual range, the lines' data may overshoot to\n",
" | other lines which is usually a desired effect. Larger ranges will\n",
" | result in a vertical padding.\n",
" | If ``0``, the actual range of the data will be used and no\n",
" | overshooting or additional padding will occur.\n",
" | If ``None`` the range will be chosen to be the 99.5-percentile of\n",
" | the actual range - so some values will overshoot.\n",
" | Defaults to ``None``.\n",
" | :param interval: This defines the interval length in minutes for one\n",
" | line.\n",
" | Defaults to ``15``.\n",
" | :param time_offset: Only used if ``type='dayplot'``. The difference\n",
" | between the timezone of the data (specified with the kwarg\n",
" | ``timezone``) and UTC time in hours. Will be displayed in a string.\n",
" | Defaults to the current offset of the system time to UTC time.\n",
" | :param timezone: Defines the name of the user defined time scale. Will\n",
" | be displayed in a string together with the actual offset defined in\n",
" | the kwarg ``time_offset``.\n",
" | Defaults to ``'local time'``.\n",
" | :param localization_dict: Enables limited localization of the dayplot\n",
" | through the usage of a dictionary. To change the labels to, e.g.\n",
" | German, use the following::\n",
" | \n",
" | localization_dict={'time in': 'Zeit in', 'seconds': 'Sekunden',\n",
" | 'minutes': 'Minuten', 'hours': 'Stunden'}\n",
" | \n",
" | :param data_unit: If given, the scale of the data will be drawn on the\n",
" | right hand side in the form ``\"%f {data_unit}\"``. The unit is\n",
" | supposed to be a string containing the actual unit of the data. Can\n",
" | be a LaTeX expression if matplotlib has been built with LaTeX\n",
" | support, e.g., ``\"$\\\\frac{m}{s}$\"``. Be careful to escape the\n",
" | backslashes, or use r-prefixed strings, e.g.,\n",
" | ``r\"$\\\\frac{m}{s}$\"``.\n",
" | Defaults to ``None``, meaning no scale is drawn.\n",
" | :param events: An optional list of events can be drawn on the plot if\n",
" | given. They will be displayed as yellow stars with optional\n",
" | annotations. They are given as a list of dictionaries. Each\n",
" | dictionary at least needs to have a \"time\" key, containing a\n",
" | UTCDateTime object with the origin time of the event. Furthermore\n",
" | every event can have an optional \"text\" key which will then be\n",
" | displayed as an annotation.\n",
" | Example::\n",
" | \n",
" | events=[{\"time\": UTCDateTime(...), \"text\": \"Event A\"}, {...}]\n",
" | \n",
" | It can also be a :class:`~obspy.core.event.Catalog` object. In this\n",
" | case each event will be annotated with its corresponding\n",
" | Flinn-Engdahl region and the magnitude.\n",
" | Events can also be automatically downloaded with the help of\n",
" | obspy.clients.fdsn. Just pass a dictionary with a \"min_magnitude\"\n",
" | key, e.g. ::\n",
" | \n",
" | events={\"min_magnitude\": 5.5}\n",
" | \n",
" | Defaults to ``[]``.\n",
" | :param x_labels_size: Size of x labels in points or fontsize.\n",
" | Defaults to ``8``.\n",
" | :param y_labels_size: Size of y labels in points or fontsize.\n",
" | Defaults to ``8``.\n",
" | :param title_size: Size of the title in points or fontsize.\n",
" | Defaults to ``10``.\n",
" | :param subplots_adjust_left: The left side of the subplots of the\n",
" | figure in fraction of the figure width.\n",
" | Defaults to ``0.12``.\n",
" | :param subplots_adjust_right: The right side of the subplots of the\n",
" | figure in fraction of the figure width.\n",
" | Defaults to ``0.88``.\n",
" | :param subplots_adjust_top: The top side of the subplots of the figure\n",
" | in fraction of the figure width.\n",
" | Defaults to ``0.95``.\n",
" | :param subplots_adjust_bottom: The bottom side of the subplots of the\n",
" | figure in fraction of the figure width.\n",
" | Defaults to ``0.1``.\n",
" | :param right_vertical_labels: Whether or not to display labels on the\n",
" | right side of the dayplot.\n",
" | Defaults to ``False``.\n",
" | :param one_tick_per_line: Whether or not to display one tick per line.\n",
" | Defaults to ``False``.\n",
" | :param show_y_UTC_label: Whether or not to display the Y UTC vertical\n",
" | label.\n",
" | Defaults to ``True``.\n",
" | :param title: The title to display on top of the plot.\n",
" | Defaults to ``self.stream[0].id``.\n",
" | \n",
" | **Section Parameters**\n",
" | \n",
" | These parameters are only available if ``type='section'`` is set. To\n",
" | plot a record section the ObsPy header ``trace.stats.distance`` must be\n",
" | defined in meters (Default). Or ``trace.stats.coordinates.latitude`` &\n",
" | ``trace.stats.coordinates.longitude`` must be set if plotted in\n",
" | azimuthal distances (``dist_degree=True``) along with ``ev_coord``.\n",
" | \n",
" | :type scale: float, optional\n",
" | :param scale: Scale the traces width with this factor.\n",
" | Defaults to ``1.0``.\n",
" | :type vred: float, optional\n",
" | :param vred: Perform velocity reduction, in m/s.\n",
" | :type norm_method: str, optional\n",
" | :param norm_method: Defines how the traces are normalized, either\n",
" | against each ``trace`` or against the global maximum ``stream``.\n",
" | Defaults to ``trace``.\n",
" | :type offset_min: float or None, optional\n",
" | :param offset_min: Minimum offset in meters to plot.\n",
" | Defaults to minimum offset of all traces.\n",
" | :type offset_max: float or None, optional\n",
" | :param offset_max: Maximum offset in meters to plot.\n",
" | Defaults to maximum offset of all traces.\n",
" | :type dist_degree: bool, optional\n",
" | :param dist_degree: Plot trace distance in degree from epicenter. If\n",
" | ``True``, parameter ``ev_coord`` has to be defined.\n",
" | Defaults to ``False``.\n",
" | :type ev_coord: tuple or None, optional\n",
" | :param ev_coord: Event's coordinates as tuple\n",
" | ``(latitude, longitude)``.\n",
" | :type plot_dx: int, optional\n",
" | :param plot_dx: Spacing of ticks on the spatial x-axis.\n",
" | Either m or degree, depending on ``dist_degree``.\n",
" | :type recordstart: int or float, optional\n",
" | :param recordstart: Seconds to crop from the beginning.\n",
" | :type recordlength: int or float, optional\n",
" | :param recordlength: Length of the record section in seconds.\n",
" | :type alpha: float, optional\n",
" | :param alpha: Transparency of the traces between 0.0 - 1.0.\n",
" | Defaults to ``0.5``.\n",
" | :type time_down: bool, optional\n",
" | :param time_down: Flip the plot horizontally, time goes down.\n",
" | Defaults to ``False``, i.e., time goes up.\n",
" | :type reftime: :class:`~obspy.core.utcdatetime.UTCDateTime`, optional\n",
" | :param reftime: The reference time to which the time scale will refer.\n",
" | Defaults to the minimum start time of the visible traces.\n",
" | :type orientation: str, optional\n",
" | :param orientation: The orientation of the time axis, either\n",
" | ``'vertical'`` or ``'horizontal'``. Defaults to ``'vertical'``.\n",
" | :type fillcolors: tuple, optional\n",
" | :param fillcolors: Fill the inside of the lines (wiggle plot),\n",
" | for both the positive and negative sides; use ``None`` to omit\n",
" | one of the sides. Defaults to ``(None,None)``.\n",
" | \n",
" | **Relative Parameters**\n",
" | \n",
" | The following parameters are only available if ``type='relative'`` is\n",
" | set.\n",
" | \n",
" | :type reftime: :class:`~obspy.core.utcdatetime.UTCDateTime`, optional\n",
" | :param reftime: The reference time to which the relative scale will\n",
" | refer.\n",
" | Defaults to ``starttime``.\n",
" | \n",
" | .. rubric:: Color Options\n",
" | \n",
" | Colors can be specified as defined in the :mod:`matplotlib.colors`\n",
" | documentation.\n",
" | \n",
" | Short Version: For all color values, you can either use:\n",
" | \n",
" | * legal `HTML color names `_,\n",
" | e.g. ``'blue'``,\n",
" | * HTML hex strings, e.g. ``'#EE00FF'``,\n",
" | * pass an string of a R, G, B tuple, where each of the components is a\n",
" | float value in the range of 0 to 1, e.g. ``'(1, 0.25, 0.5)'``, or\n",
" | * use single letters for the basic built-in colors, such as ``'b'``\n",
" | (blue), ``'g'`` (green), ``'r'`` (red), ``'c'`` (cyan), ``'m'``\n",
" | (magenta), ``'y'`` (yellow), ``'k'`` (black), ``'w'`` (white).\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read()\n",
" | >>> st.plot() # doctest: +SKIP\n",
" | \n",
" | .. plot::\n",
" | \n",
" | from obspy import read\n",
" | st = read()\n",
" | st.plot()\n",
" | \n",
" | pop(self, index=-1)\n",
" | Remove and return the Trace object specified by index from the Stream.\n",
" | \n",
" | If no index is given, remove the last Trace. Passes on the pop() to\n",
" | self.traces.\n",
" | \n",
" | :param index: Index of the Trace object to be returned and removed.\n",
" | :returns: Removed Trace.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read()\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | >>> tr = st.pop()\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 2 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | >>> print(tr) # doctest: +ELLIPSIS\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | \n",
" | print_gaps(self, min_gap=None, max_gap=None)\n",
" | Print gap/overlap list summary information of the Stream object.\n",
" | \n",
" | :param min_gap: All gaps smaller than this value will be omitted. The\n",
" | value is assumed to be in seconds. Defaults to None.\n",
" | :param max_gap: All gaps larger than this value will be omitted. The\n",
" | value is assumed to be in seconds. Defaults to None.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | Our example stream has no gaps:\n",
" | \n",
" | >>> from obspy import read, UTCDateTime\n",
" | >>> st = read()\n",
" | >>> st.get_gaps()\n",
" | []\n",
" | >>> st.print_gaps() # doctest: +ELLIPSIS\n",
" | Source Last Sample Next Sample ...\n",
" | Total: 0 gap(s) and 0 overlap(s)\n",
" | \n",
" | So let's make a copy of the first trace and cut both so that we end up\n",
" | with a gappy stream:\n",
" | \n",
" | >>> tr = st[0].copy()\n",
" | >>> t = UTCDateTime(\"2009-08-24T00:20:13.0\")\n",
" | >>> st[0].trim(endtime=t) # doctest: +ELLIPSIS\n",
" | <...Trace object at 0x...>\n",
" | >>> tr.trim(starttime=t+1) # doctest: +ELLIPSIS\n",
" | <...Trace object at 0x...>\n",
" | >>> st.append(tr) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> st.get_gaps() # doctest: +ELLIPSIS\n",
" | [[..., UTCDateTime(2009, 8, 24, 0, 20, 13), ...\n",
" | >>> st.print_gaps() # doctest: +ELLIPSIS\n",
" | Source Last Sample ...\n",
" | BW.RJOB..EHZ 2009-08-24T00:20:13.000000Z ...\n",
" | Total: 1 gap(s) and 0 overlap(s)\n",
" | \n",
" | \n",
" | And finally let us create some overlapping traces:\n",
" | \n",
" | >>> st = read()\n",
" | >>> tr = st[0].copy()\n",
" | >>> t = UTCDateTime(\"2009-08-24T00:20:13.0\")\n",
" | >>> st[0].trim(endtime=t) # doctest: +ELLIPSIS\n",
" | <...Trace object at 0x...>\n",
" | >>> tr.trim(starttime=t-1) # doctest: +ELLIPSIS\n",
" | <...Trace object at 0x...>\n",
" | >>> st.append(tr) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> st.get_gaps() # doctest: +ELLIPSIS\n",
" | [[...'EHZ', UTCDateTime(2009, 8, 24, 0, 20, 13), ...\n",
" | >>> st.print_gaps() # doctest: +ELLIPSIS\n",
" | Source Last Sample ...\n",
" | BW.RJOB..EHZ 2009-08-24T00:20:13.000000Z ...\n",
" | Total: 0 gap(s) and 1 overlap(s)\n",
" | \n",
" | remove(self, trace)\n",
" | Remove the first occurrence of the specified Trace object in the\n",
" | Stream object. Passes on the remove() call to self.traces.\n",
" | \n",
" | :param trace: Trace object to be removed from Stream.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | This example shows how to delete all \"E\" component traces in a stream:\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read()\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | >>> for tr in st.select(component=\"E\"):\n",
" | ... st.remove(tr) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 2 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | \n",
" | remove_response(self, *args, **kwargs)\n",
" | Deconvolve instrument response for all Traces in Stream.\n",
" | \n",
" | For details see the corresponding\n",
" | :meth:`~obspy.core.trace.Trace.remove_response` method of\n",
" | :class:`~obspy.core.trace.Trace`.\n",
" | \n",
" | >>> from obspy import read, read_inventory\n",
" | >>> st = read()\n",
" | >>> inv = read_inventory()\n",
" | >>> st.remove_response(inventory=inv) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> st.plot() # doctest: +SKIP\n",
" | \n",
" | .. plot::\n",
" | \n",
" | from obspy import read, read_inventory\n",
" | st = read()\n",
" | inv = read_inventory()\n",
" | st.remove_response(inventory=inv)\n",
" | st.plot()\n",
" | \n",
" | .. note::\n",
" | \n",
" | This operation is performed in place on the actual data arrays. The\n",
" | raw data is not accessible anymore afterwards. To keep your\n",
" | original data, use :meth:`~obspy.core.stream.Stream.copy` to create\n",
" | a copy of your stream object.\n",
" | \n",
" | remove_sensitivity(self, *args, **kwargs)\n",
" | Remove instrument sensitivity for all Traces in Stream.\n",
" | \n",
" | For details see the corresponding\n",
" | :meth:`~obspy.core.trace.Trace.remove_sensitivity` method of\n",
" | :class:`~obspy.core.trace.Trace`.\n",
" | \n",
" | >>> from obspy import read, read_inventory\n",
" | >>> st = read()\n",
" | >>> inv = read_inventory()\n",
" | >>> st.remove_sensitivity(inv) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | \n",
" | .. note::\n",
" | \n",
" | This operation is performed in place on the actual data arrays. The\n",
" | raw data is not accessible anymore afterwards. To keep your\n",
" | original data, use :meth:`~obspy.core.stream.Stream.copy` to create\n",
" | a copy of your stream object.\n",
" | \n",
" | resample(self, sampling_rate, window='hanning', no_filter=True, strict_length=False)\n",
" | Resample data in all traces of stream using Fourier method.\n",
" | \n",
" | :type sampling_rate: float\n",
" | :param sampling_rate: The sampling rate of the resampled signal.\n",
" | :type window: array_like, callable, str, float, or tuple, optional\n",
" | :param window: Specifies the window applied to the signal in the\n",
" | Fourier domain. Defaults ``'hanning'`` window. See\n",
" | :func:`scipy.signal.resample` for details.\n",
" | :type no_filter: bool, optional\n",
" | :param no_filter: Deactivates automatic filtering if set to ``True``.\n",
" | Defaults to ``True``.\n",
" | :type strict_length: bool, optional\n",
" | :param strict_length: Leave traces unchanged for which end time of\n",
" | trace would change. Defaults to ``False``.\n",
" | \n",
" | .. note::\n",
" | \n",
" | The :class:`~Stream` object has three different methods to change\n",
" | the sampling rate of its data: :meth:`~.resample`,\n",
" | :meth:`~.decimate`, and :meth:`~.interpolate`\n",
" | \n",
" | Make sure to choose the most appropriate one for the problem at\n",
" | hand.\n",
" | \n",
" | .. note::\n",
" | \n",
" | This operation is performed in place on the actual data arrays. The\n",
" | raw data is not accessible anymore afterwards. To keep your\n",
" | original data, use :meth:`~obspy.core.stream.Stream.copy` to create\n",
" | a copy of your stream object.\n",
" | This also makes an entry with information on the applied processing\n",
" | in ``stats.processing`` of every trace.\n",
" | \n",
" | Uses :func:`scipy.signal.resample`. Because a Fourier method is used,\n",
" | the signal is assumed to be periodic.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> st = read()\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | >>> st.resample(10.0) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 10.0 Hz, 300 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 10.0 Hz, 300 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 10.0 Hz, 300 samples\n",
" | \n",
" | reverse(self)\n",
" | Reverse the Traces of the Stream object in place.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read()\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | >>> st.reverse() # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | \n",
" | rotate(self, method, back_azimuth=None, inclination=None, inventory=None, **kwargs)\n",
" | Rotate stream objects.\n",
" | \n",
" | :type method: str\n",
" | :param method: Determines the rotation method.\n",
" | \n",
" | ``'->ZNE'``: Rotates data from three components into Z, North- and\n",
" | East-components based on the station metadata (e.g. borehole\n",
" | stations). Uses mandatory ``inventory`` parameter (provide\n",
" | either an :class:`~obspy.core.inventory.inventory.Inventory` or\n",
" | :class:`~obspy.io.xseed.parser.Parser` object) and ignores\n",
" | ``back_azimuth`` and ``inclination`` parameters. Additional\n",
" | kwargs will be passed on to :meth:`_rotate_to_zne()` (use if\n",
" | other components than ``[\"Z\", \"1\", \"2\"]`` and\n",
" | ``[\"1\", \"2\", \"3\"]`` need to be rotated).\n",
" | Trims common channels used in rotation to time spans that are\n",
" | available for all three channels (i.e. cuts away parts for\n",
" | which one or two channels used in rotation do not have data).\n",
" | ``'NE->RT'``: Rotates the North- and East-components of a\n",
" | seismogram to radial and transverse components.\n",
" | ``'RT->NE'``: Rotates the radial and transverse components of a\n",
" | seismogram to North- and East-components.\n",
" | ``'ZNE->LQT'``: Rotates from left-handed Z, North, and East system\n",
" | to LQT, e.g. right-handed ray coordinate system.\n",
" | ``'LQT->ZNE'``: Rotates from LQT, e.g. right-handed ray coordinate\n",
" | system to left handed Z, North, and East system.\n",
" | \n",
" | :type back_azimuth: float, optional\n",
" | :param back_azimuth: Depends on the chosen method.\n",
" | A single float, the back azimuth from station to source in degrees.\n",
" | If not given, ``stats.back_azimuth`` will be used. It will also be\n",
" | written after the rotation is done.\n",
" | :type inclination: float, optional\n",
" | :param inclination: Inclination of the ray at the station in degrees.\n",
" | Only necessary for three component rotations. If not given,\n",
" | ``stats.inclination`` will be used. It will also be written after\n",
" | the rotation is done.\n",
" | :type inventory: :class:`~obspy.core.inventory.inventory.Inventory` or\n",
" | :class:`~obspy.io.xseed.parser.Parser`\n",
" | :param inventory: Inventory or SEED Parser with metadata of channels.\n",
" | \n",
" | Example to rotate unaligned borehole instrument data based on station\n",
" | inventory (a dataless SEED :class:`~obspy.io.xseed.parser.Parser` can\n",
" | also be provided, see details for option ``inventory``):\n",
" | \n",
" | >>> from obspy import read, read_inventory\n",
" | >>> st = read(\"/path/to/ffbx_unrotated_gaps.mseed\")\n",
" | >>> inv = read_inventory(\"/path/to/ffbx.stationxml\")\n",
" | >>> st.rotate(method=\"->ZNE\", inventory=inv) # doctest: +ELLIPSIS\n",
" | \n",
" | \n",
" | select(self, network=None, station=None, location=None, channel=None, sampling_rate=None, npts=None, component=None, id=None, inventory=None)\n",
" | Return new Stream object only with these traces that match the given\n",
" | stats criteria (e.g. all traces with ``channel=\"EHZ\"``).\n",
" | \n",
" | Alternatively, traces can be selected based on the content of an\n",
" | :class:`~obspy.core.inventory.inventory.Inventory` object: trace will\n",
" | be selected if the inventory contains a matching channel active at the\n",
" | trace start time.\n",
" | \n",
" | .. rubric:: Examples\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read()\n",
" | >>> st2 = st.select(station=\"R*\")\n",
" | >>> print(st2) # doctest: +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | \n",
" | >>> st2 = st.select(id=\"BW.RJOB..EHZ\")\n",
" | >>> print(st2) # doctest: +ELLIPSIS\n",
" | 1 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | \n",
" | >>> st2 = st.select(component=\"Z\")\n",
" | >>> print(st2) # doctest: +ELLIPSIS\n",
" | 1 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | \n",
" | >>> st2 = st.select(network=\"CZ\")\n",
" | >>> print(st2) # doctest: +NORMALIZE_WHITESPACE\n",
" | 0 Trace(s) in Stream:\n",
" | \n",
" | >>> from obspy import read_inventory\n",
" | >>> inv = read_inventory('/path/to/BW_RJOB__EHZ.xml')\n",
" | >>> print(inv) # doctest: +NORMALIZE_WHITESPACE\n",
" | Inventory created at 2013-12-07T18:00:42.878000Z\n",
" | Created by: fdsn-stationxml-converter/1.0.0\n",
" | http://www.iris.edu/fdsnstationconverter\n",
" | Sending institution: Erdbebendienst Bayern\n",
" | Contains:\n",
" | Networks (1):\n",
" | BW\n",
" | Stations (1):\n",
" | BW.RJOB (Jochberg, Bavaria, BW-Net)\n",
" | Channels (1):\n",
" | BW.RJOB..EHZ\n",
" | >>> st2 = st.select(inventory=inv)\n",
" | >>> print(st2) # doctest: +ELLIPSIS\n",
" | 1 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | \n",
" | .. warning::\n",
" | A new Stream object is returned but the traces it contains are\n",
" | just aliases to the traces of the original stream. Does not copy\n",
" | the data but only passes a reference.\n",
" | \n",
" | All keyword arguments except for ``component`` are tested directly\n",
" | against the respective entry in the :class:`~obspy.core.trace.Stats`\n",
" | dictionary.\n",
" | \n",
" | If a string for ``component`` is given (should be a single letter) it\n",
" | is tested against the last letter of the ``Trace.stats.channel`` entry.\n",
" | \n",
" | Alternatively, ``channel`` may have the last one or two letters\n",
" | wildcarded (e.g. ``channel=\"EH*\"``) to select all components with a\n",
" | common band/instrument code.\n",
" | \n",
" | All other selection criteria that accept strings (network, station,\n",
" | location) may also contain Unix style wildcards (``*``, ``?``, ...).\n",
" | \n",
" | simulate(self, paz_remove=None, paz_simulate=None, remove_sensitivity=True, simulate_sensitivity=True, **kwargs)\n",
" | Correct for instrument response / Simulate new instrument response.\n",
" | \n",
" | :type paz_remove: dict, None\n",
" | :param paz_remove: Dictionary containing keys ``'poles'``, ``'zeros'``,\n",
" | ``'gain'`` (A0 normalization factor). Poles and zeros must be a\n",
" | list of complex floating point numbers, gain must be of type float.\n",
" | Poles and Zeros are assumed to correct to m/s, SEED convention.\n",
" | Use ``None`` for no inverse filtering.\n",
" | Use ``'self'`` to use paz AttribDict in ``trace.stats`` for every\n",
" | trace in stream.\n",
" | :type paz_simulate: dict, None\n",
" | :param paz_simulate: Dictionary containing keys ``'poles'``,\n",
" | ``'zeros'``, ``'gain'``. Poles and zeros must be a list of complex\n",
" | floating point numbers, gain must be of type float. Or ``None`` for\n",
" | no simulation.\n",
" | :type remove_sensitivity: bool\n",
" | :param remove_sensitivity: Determines if data is divided by\n",
" | ``paz_remove['sensitivity']`` to correct for overall sensitivity of\n",
" | recording instrument (seismometer/digitizer) during instrument\n",
" | correction.\n",
" | :type simulate_sensitivity: bool\n",
" | :param simulate_sensitivity: Determines if data is multiplied with\n",
" | ``paz_simulate['sensitivity']`` to simulate overall sensitivity of\n",
" | new instrument (seismometer/digitizer) during instrument\n",
" | simulation.\n",
" | \n",
" | This function corrects for the original instrument response given by\n",
" | ``paz_remove`` and/or simulates a new instrument response given by\n",
" | ``paz_simulate``.\n",
" | \n",
" | For additional information and more options to control the instrument\n",
" | correction/simulation (e.g. water level, demeaning, tapering, ...) see\n",
" | :func:`~obspy.signal.invsim.simulate_seismometer`.\n",
" | \n",
" | The keywords `paz_remove` and `paz_simulate` are expected to be\n",
" | dictionaries containing information on poles, zeros and gain (and\n",
" | usually also sensitivity).\n",
" | \n",
" | If both ``paz_remove`` and ``paz_simulate`` are specified, both steps\n",
" | are performed in one go in the frequency domain, otherwise only the\n",
" | specified step is performed.\n",
" | \n",
" | .. note::\n",
" | \n",
" | Instead of the builtin deconvolution based on Poles and Zeros\n",
" | information, the deconvolution can be performed using evalresp\n",
" | instead by using the option `seedresp` (see documentation of\n",
" | :func:`~obspy.signal.invsim.simulate_seismometer` and the\n",
" | `ObsPy Tutorial\n",
" | `_.\n",
" | \n",
" | .. note::\n",
" | \n",
" | This operation is performed in place on the actual data arrays. The\n",
" | raw data is not accessible anymore afterwards. To keep your\n",
" | original data, use :meth:`~obspy.core.stream.Stream.copy` to create\n",
" | a copy of your stream object.\n",
" | This also makes an entry with information on the applied processing\n",
" | in ``stats.processing`` of every trace.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> from obspy.signal.invsim import corn_freq_2_paz\n",
" | >>> st = read()\n",
" | >>> paz_sts2 = {'poles': [-0.037004+0.037016j, -0.037004-0.037016j,\n",
" | ... -251.33+0j,\n",
" | ... -131.04-467.29j, -131.04+467.29j],\n",
" | ... 'zeros': [0j, 0j],\n",
" | ... 'gain': 60077000.0,\n",
" | ... 'sensitivity': 2516778400.0}\n",
" | >>> paz_1hz = corn_freq_2_paz(1.0, damp=0.707)\n",
" | >>> st.simulate(paz_remove=paz_sts2, paz_simulate=paz_1hz)\n",
" | ... # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> st.plot() # doctest: +SKIP\n",
" | \n",
" | .. plot::\n",
" | \n",
" | from obspy import read\n",
" | from obspy.signal.invsim import corn_freq_2_paz\n",
" | st = read()\n",
" | paz_sts2 = {'poles': [-0.037004+0.037016j, -0.037004-0.037016j,\n",
" | -251.33+0j,\n",
" | -131.04-467.29j, -131.04+467.29j],\n",
" | 'zeros': [0j, 0j],\n",
" | 'gain': 60077000.0,\n",
" | 'sensitivity': 2516778400.0}\n",
" | paz_1hz = corn_freq_2_paz(1.0, damp=0.707)\n",
" | paz_1hz['sensitivity'] = 1.0\n",
" | st.simulate(paz_remove=paz_sts2, paz_simulate=paz_1hz)\n",
" | st.plot()\n",
" | \n",
" | slice(self, starttime=None, endtime=None, keep_empty_traces=False, nearest_sample=True)\n",
" | Return new Stream object cut to the given start and end time.\n",
" | \n",
" | :type starttime: :class:`~obspy.core.utcdatetime.UTCDateTime`\n",
" | :param starttime: Specify the start time of all traces.\n",
" | :type endtime: :class:`~obspy.core.utcdatetime.UTCDateTime`\n",
" | :param endtime: Specify the end time of all traces.\n",
" | :type keep_empty_traces: bool, optional\n",
" | :param keep_empty_traces: Empty traces will be kept if set to ``True``.\n",
" | Defaults to ``False``.\n",
" | :type nearest_sample: bool, optional\n",
" | :param nearest_sample: If set to ``True``, the closest sample is\n",
" | selected, if set to ``False``, the inner (next sample for a\n",
" | start time border, previous sample for an end time border) sample\n",
" | containing the time is selected. Defaults to ``True``.\n",
" | \n",
" | Given the following trace containing 6 samples, \"|\" are the\n",
" | sample points, \"A\" is the requested starttime::\n",
" | \n",
" | | |A | | B | |\n",
" | 1 2 3 4 5 6\n",
" | \n",
" | ``nearest_sample=True`` will select samples 2-5,\n",
" | ``nearest_sample=False`` will select samples 3-4 only.\n",
" | \n",
" | :return: :class:`~obspy.core.stream.Stream`\n",
" | \n",
" | .. note::\n",
" | \n",
" | The basic idea of :meth:`~obspy.core.stream.Stream.slice`\n",
" | is to avoid copying the sample data in memory. So sample data in\n",
" | the resulting :class:`~obspy.core.stream.Stream` object contains\n",
" | only a reference to the original traces.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> st = read()\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | >>> dt = UTCDateTime(\"2009-08-24T00:20:20\")\n",
" | >>> st = st.slice(dt, dt + 5)\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:20.000000Z ... | 100.0 Hz, 501 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:20.000000Z ... | 100.0 Hz, 501 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:20.000000Z ... | 100.0 Hz, 501 samples\n",
" | \n",
" | slide(self, window_length, step, offset=0, include_partial_windows=False, nearest_sample=True)\n",
" | Generator yielding equal length sliding windows of the Stream.\n",
" | \n",
" | Please keep in mind that it only returns a new view of the original\n",
" | data. Any modifications are applied to the original data as well. If\n",
" | you don't want this you have to create a copy of the yielded\n",
" | windows. Also be aware that if you modify the original data and you\n",
" | have overlapping windows, all following windows are affected as well.\n",
" | \n",
" | Not all yielded windows must have the same number of traces. The\n",
" | algorithm will determine the maximal temporal extents by analysing\n",
" | all Traces and then creates windows based on these times.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> import obspy\n",
" | >>> st = obspy.read()\n",
" | >>> for windowed_st in st.slide(window_length=10.0, step=10.0):\n",
" | ... print(windowed_st)\n",
" | ... print(\"---\") # doctest: +NORMALIZE_WHITESPACE +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | ... | 2009-08-24T00:20:03.000000Z - 2009-08-24T00:20:13.000000Z | ...\n",
" | ... | 2009-08-24T00:20:03.000000Z - 2009-08-24T00:20:13.000000Z | ...\n",
" | ... | 2009-08-24T00:20:03.000000Z - 2009-08-24T00:20:13.000000Z | ...\n",
" | ---\n",
" | 3 Trace(s) in Stream:\n",
" | ... | 2009-08-24T00:20:13.000000Z - 2009-08-24T00:20:23.000000Z | ...\n",
" | ... | 2009-08-24T00:20:13.000000Z - 2009-08-24T00:20:23.000000Z | ...\n",
" | ... | 2009-08-24T00:20:13.000000Z - 2009-08-24T00:20:23.000000Z | ...\n",
" | \n",
" | \n",
" | :param window_length: The length of each window in seconds.\n",
" | :type window_length: float\n",
" | :param step: The step between the start times of two successive\n",
" | windows in seconds. Can be negative if an offset is given.\n",
" | :type step: float\n",
" | :param offset: The offset of the first window in seconds relative to\n",
" | the start time of the whole interval.\n",
" | :type offset: float\n",
" | :param include_partial_windows: Determines if windows that are\n",
" | shorter then 99.9 % of the desired length are returned.\n",
" | :type include_partial_windows: bool\n",
" | :param nearest_sample: If set to ``True``, the closest sample is\n",
" | selected, if set to ``False``, the inner (next sample for a\n",
" | start time border, previous sample for an end time border) sample\n",
" | containing the time is selected. Defaults to ``True``.\n",
" | \n",
" | Given the following trace containing 6 samples, \"|\" are the\n",
" | sample points, \"A\" is the requested starttime::\n",
" | \n",
" | | |A | | B | |\n",
" | 1 2 3 4 5 6\n",
" | \n",
" | ``nearest_sample=True`` will select samples 2-5,\n",
" | ``nearest_sample=False`` will select samples 3-4 only.\n",
" | :type nearest_sample: bool, optional\n",
" | \n",
" | sort(self, keys=['network', 'station', 'location', 'channel', 'starttime', 'endtime'], reverse=False)\n",
" | Sort the traces in the Stream object.\n",
" | \n",
" | The traces will be sorted according to the keys list. It will be sorted\n",
" | by the first item first, then by the second and so on. It will always\n",
" | be sorted from low to high and from A to Z.\n",
" | \n",
" | :type keys: list, optional\n",
" | :param keys: List containing the values according to which the traces\n",
" | will be sorted. They will be sorted by the first item first and\n",
" | then by the second item and so on.\n",
" | Always available items: 'network', 'station', 'channel',\n",
" | 'location', 'starttime', 'endtime', 'sampling_rate', 'npts',\n",
" | 'dataquality'\n",
" | Defaults to ['network', 'station', 'location', 'channel',\n",
" | 'starttime', 'endtime'].\n",
" | :type reverse: bool\n",
" | :param reverse: Reverts sorting order to descending.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read()\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | >>> st.sort() # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | \n",
" | spectrogram(self, **kwargs)\n",
" | Create a spectrogram plot for each trace in the stream.\n",
" | \n",
" | For details on kwargs that can be used to customize the spectrogram\n",
" | plot see :func:`obspy.imaging.spectrogram.spectrogram`.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read()\n",
" | >>> st[0].spectrogram() # doctest: +SKIP\n",
" | \n",
" | .. plot::\n",
" | \n",
" | from obspy import read\n",
" | st = read()\n",
" | st[0].spectrogram()\n",
" | \n",
" | split(self)\n",
" | Split any trace containing gaps into contiguous unmasked traces.\n",
" | \n",
" | :rtype: :class:`obspy.core.stream.Stream`\n",
" | :returns: Returns a new stream object containing only contiguous\n",
" | unmasked.\n",
" | \n",
" | stack(self, group_by='all', stack_type='linear', npts_tol=0, time_tol=0)\n",
" | Stack traces by the same selected metadata.\n",
" | \n",
" | The metadata of each trace (including starttime) corresponds to the\n",
" | metadata of the original traces if those are the same.\n",
" | Additionaly, the entry ``stack`` is written to the stats object(s).\n",
" | It contains the fields ``group``\n",
" | (result of the format operation on the ``group_by`` parameter),\n",
" | ``count`` (number of stacked traces) and ``type``\n",
" | (``stack_type`` argument).\n",
" | \n",
" | :type group_by: str\n",
" | :param group_by: Stack waveforms together which have the same metadata\n",
" | given by this parameter. The parameter should name the\n",
" | corresponding keys of the stats object,\n",
" | e.g. ``'{network}.{station}'`` for stacking all\n",
" | locations and channels of the stations and returning a stream\n",
" | consisting of one stacked trace for each station.\n",
" | This parameter can take two special values,\n",
" | ``'id'`` which stacks the waveforms by SEED id and\n",
" | ``'all'`` (default) which stacks together all traces in the stream.\n",
" | :type stack_type: str or tuple\n",
" | :param stack_type: Type of stack, one of the following:\n",
" | ``'linear'``: average stack (default),\n",
" | ``('pw', order)``: phase weighted stack of given order\n",
" | (see [Schimmel1997]_, order 0 corresponds to linear stack),\n",
" | ``('root', order)``: root stack of given order\n",
" | (order 1 corresponds to linear stack).\n",
" | :type npts_tol: int\n",
" | :param npts_tol: Tolerate traces with different number of points\n",
" | with a difference up to this value. Surplus samples are discarded.\n",
" | :type time_tol: float (seconds)\n",
" | :param time_tol: Tolerate difference in startime when setting the\n",
" | new starttime of the stack. If starttimes differs more than this\n",
" | value it will be set to timestamp 0.\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read()\n",
" | >>> stack = st.stack()\n",
" | >>> print(stack) # doctest: +ELLIPSIS\n",
" | 1 Trace(s) in Stream:\n",
" | BW.RJOB.. | 2009-08-24T00:20:03.000000Z - ... | 100.0 Hz, 3000 samples\n",
" | \n",
" | .. note::\n",
" | \n",
" | This operation is performed in place on the actual data arrays. The\n",
" | raw data will no longer be accessible afterwards. To keep your\n",
" | original data, use :meth:`~obspy.core.stream.Stream.copy` to create\n",
" | a copy of your stream object.\n",
" | \n",
" | std(self)\n",
" | Calculate standard deviations of all Traces in the Stream.\n",
" | \n",
" | Standard deviations are calculated by NumPy method\n",
" | :meth:`~numpy.ndarray.std` on ``trace.data`` for every trace in the\n",
" | stream.\n",
" | \n",
" | :return: List of standard deviations of all traces.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import Trace, Stream\n",
" | >>> tr1 = Trace(data=np.array([0, -3, 9, 6, 4]))\n",
" | >>> tr2 = Trace(data=np.array([0.3, -3.5, 9.0, 6.4, 4.3]))\n",
" | >>> st = Stream(traces=[tr1, tr2])\n",
" | >>> st.std()\n",
" | [4.2614551505325036, 4.4348618918744247]\n",
" | \n",
" | taper(self, *args, **kwargs)\n",
" | Taper all Traces in Stream.\n",
" | \n",
" | For details see the corresponding :meth:`~obspy.core.trace.Trace.taper`\n",
" | method of :class:`~obspy.core.trace.Trace`.\n",
" | \n",
" | .. note::\n",
" | \n",
" | This operation is performed in place on the actual data arrays. The\n",
" | raw data is not accessible anymore afterwards. To keep your\n",
" | original data, use :meth:`~obspy.core.stream.Stream.copy` to create\n",
" | a copy of your stream object.\n",
" | \n",
" | trigger(self, type, **options)\n",
" | Run a triggering algorithm on all traces in the stream.\n",
" | \n",
" | :param type: String that specifies which trigger is applied (e.g.\n",
" | ``'recstalta'``). See the `Supported Trigger`_ section below for\n",
" | further details.\n",
" | :param options: Necessary keyword arguments for the respective\n",
" | trigger that will be passed on. (e.g. ``sta=3``, ``lta=10``)\n",
" | Arguments ``sta`` and ``lta`` (seconds) will be mapped to ``nsta``\n",
" | and ``nlta`` (samples) by multiplying with sampling rate of trace.\n",
" | (e.g. ``sta=3``, ``lta=10`` would call the trigger with 3 and 10\n",
" | seconds average, respectively)\n",
" | \n",
" | .. note::\n",
" | \n",
" | This operation is performed in place on the actual data arrays. The\n",
" | raw data is not accessible anymore afterwards. To keep your\n",
" | original data, use :meth:`~obspy.core.stream.Stream.copy` to create\n",
" | a copy of your stream object.\n",
" | This also makes an entry with information on the applied processing\n",
" | in ``stats.processing`` of every trace.\n",
" | \n",
" | .. rubric:: _`Supported Trigger`\n",
" | \n",
" | ``'classicstalta'``\n",
" | Computes the classic STA/LTA characteristic function (uses\n",
" | :func:`obspy.signal.trigger.classic_sta_lta`).\n",
" | \n",
" | ``'recstalta'``\n",
" | Recursive STA/LTA\n",
" | (uses :func:`obspy.signal.trigger.recursive_sta_lta`).\n",
" | \n",
" | ``'recstaltapy'``\n",
" | Recursive STA/LTA written in Python (uses\n",
" | :func:`obspy.signal.trigger.recursive_sta_lta_py`).\n",
" | \n",
" | ``'delayedstalta'``\n",
" | Delayed STA/LTA.\n",
" | (uses :func:`obspy.signal.trigger.delayed_sta_lta`).\n",
" | \n",
" | ``'carlstatrig'``\n",
" | Computes the carl_sta_trig characteristic function (uses\n",
" | :func:`obspy.signal.trigger.carl_sta_trig`).\n",
" | \n",
" | ``'zdetect'``\n",
" | Z-detector (uses :func:`obspy.signal.trigger.z_detect`).\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read()\n",
" | >>> st.filter(\"highpass\", freq=1.0) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> st.plot() # doctest: +SKIP\n",
" | >>> st.trigger('recstalta', sta=1, lta=4) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> st.plot() # doctest: +SKIP\n",
" | \n",
" | .. plot::\n",
" | \n",
" | from obspy import read\n",
" | st = read()\n",
" | st.filter(\"highpass\", freq=1.0)\n",
" | st.plot()\n",
" | st.trigger('recstalta', sta=1, lta=4)\n",
" | st.plot()\n",
" | \n",
" | trim(self, starttime=None, endtime=None, pad=False, nearest_sample=True, fill_value=None)\n",
" | Cut all traces of this Stream object to given start and end time.\n",
" | \n",
" | :type starttime: :class:`~obspy.core.utcdatetime.UTCDateTime`, optional\n",
" | :param starttime: Specify the start time.\n",
" | :type endtime: :class:`~obspy.core.utcdatetime.UTCDateTime`, optional\n",
" | :param endtime: Specify the end time.\n",
" | :type pad: bool, optional\n",
" | :param pad: Gives the possibility to trim at time points outside the\n",
" | time frame of the original trace, filling the trace with the\n",
" | given ``fill_value``. Defaults to ``False``.\n",
" | :type nearest_sample: bool, optional\n",
" | :param nearest_sample: If set to ``True``, the closest sample is\n",
" | selected, if set to ``False``, the inner (next sample for a\n",
" | start time border, previous sample for an end time border) sample\n",
" | containing the time is selected. Defaults to ``True``.\n",
" | \n",
" | Given the following trace containing 6 samples, \"|\" are the\n",
" | sample points, \"A\" is the requested starttime::\n",
" | \n",
" | | |A | | B | |\n",
" | 1 2 3 4 5 6\n",
" | \n",
" | ``nearest_sample=True`` will select samples 2-5,\n",
" | ``nearest_sample=False`` will select samples 3-4 only.\n",
" | \n",
" | :type fill_value: int, float or ``None``, optional\n",
" | :param fill_value: Fill value for gaps. Defaults to ``None``. Traces\n",
" | will be converted to NumPy masked arrays if no value is given and\n",
" | gaps are present.\n",
" | \n",
" | .. note::\n",
" | \n",
" | This operation is performed in place on the actual data arrays. The\n",
" | raw data will no longer be accessible afterwards. To keep your\n",
" | original data, use :meth:`~obspy.core.stream.Stream.copy` to create\n",
" | a copy of your stream object.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> st = read()\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z ... | 100.0 Hz, 3000 samples\n",
" | >>> dt = UTCDateTime(\"2009-08-24T00:20:20\")\n",
" | >>> st.trim(dt, dt + 5) # doctest: +ELLIPSIS\n",
" | <...Stream object at 0x...>\n",
" | >>> print(st) # doctest: +ELLIPSIS\n",
" | 3 Trace(s) in Stream:\n",
" | BW.RJOB..EHZ | 2009-08-24T00:20:20.000000Z ... | 100.0 Hz, 501 samples\n",
" | BW.RJOB..EHN | 2009-08-24T00:20:20.000000Z ... | 100.0 Hz, 501 samples\n",
" | BW.RJOB..EHE | 2009-08-24T00:20:20.000000Z ... | 100.0 Hz, 501 samples\n",
" | \n",
" | verify(self)\n",
" | Verify all traces of current Stream against available meta data.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import Trace, Stream\n",
" | >>> tr = Trace(data=np.array([1, 2, 3, 4]))\n",
" | >>> tr.stats.npts = 100\n",
" | >>> st = Stream([tr])\n",
" | >>> st.verify() #doctest: +ELLIPSIS\n",
" | Traceback (most recent call last):\n",
" | ...\n",
" | Exception: ntps(100) differs from data size(4)\n",
" | \n",
" | write(self, filename, format=None, **kwargs)\n",
" | Save stream into a file.\n",
" | \n",
" | :type filename: str\n",
" | :param filename: The name of the file to write.\n",
" | :type format: str, optional\n",
" | :param format: The file format to use (e.g. ``\"MSEED\"``). See\n",
" | the `Supported Formats`_ section below for a list of supported\n",
" | formats. If format is set to ``None`` it will be deduced from\n",
" | file extension, whenever possible.\n",
" | :param kwargs: Additional keyword arguments passed to the underlying\n",
" | waveform writer method.\n",
" | \n",
" | .. rubric:: Example\n",
" | \n",
" | >>> from obspy import read\n",
" | >>> st = read() # doctest: +SKIP\n",
" | >>> st.write(\"example.mseed\", format=\"MSEED\") # doctest: +SKIP\n",
" | \n",
" | The ``format`` argument can be omitted, and the file format will be\n",
" | deduced from file extension, whenever possible.\n",
" | \n",
" | >>> st.write(\"example.mseed\") # doctest: +SKIP\n",
" | \n",
" | Writing single traces into files with meaningful filenames can be done\n",
" | e.g. using trace.id\n",
" | \n",
" | >>> for tr in st: #doctest: +SKIP\n",
" | ... tr.write(tr.id + \".MSEED\", format=\"MSEED\") #doctest: +SKIP\n",
" | \n",
" | .. rubric:: _`Supported Formats`\n",
" | \n",
" | Additional ObsPy modules extend the parameters of the\n",
" | :meth:`~obspy.core.stream.Stream.write` method. The following\n",
" | table summarizes all known formats currently available for ObsPy.\n",
" | \n",
" | Please refer to the `Linked Function Call`_ of each module for any\n",
" | extra options available.\n",
" | \n",
" | ====== ======================== =========================================\n",
" | Format Used Module _`Linked Function Call` \n",
" | ====== ======================== =========================================\n",
" | AH :mod:`obspy.io.ah` :func:`obspy.io.ah.core._write_ah1` \n",
" | GSE2 :mod:`obspy.io.gse2` :func:`obspy.io.gse2.core._write_gse2` \n",
" | MSEED :mod:`obspy.io.mseed` :func:`obspy.io.mseed.core._write_mseed` \n",
" | PICKLE :mod:`obspy.core.stream` :func:`obspy.core.stream._write_pickle` \n",
" | Q :mod:`obspy.io.sh` :func:`obspy.io.sh.core._write_q` \n",
" | SAC :mod:`obspy.io.sac` :func:`obspy.io.sac.core._write_sac` \n",
" | SACXY :mod:`obspy.io.sac` :func:`obspy.io.sac.core._write_sac_xy` \n",
" | SEGY :mod:`obspy.io.segy` :func:`obspy.io.segy.core._write_segy` \n",
" | SH_ASC :mod:`obspy.io.sh` :func:`obspy.io.sh.core._write_asc` \n",
" | SLIST :mod:`obspy.io.ascii` :func:`obspy.io.ascii.core._write_slist` \n",
" | SU :mod:`obspy.io.segy` :func:`obspy.io.segy.core._write_su` \n",
" | TSPAIR :mod:`obspy.io.ascii` :func:`obspy.io.ascii.core._write_tspair`\n",
" | WAV :mod:`obspy.io.wav` :func:`obspy.io.wav.core._write_wav` \n",
" | ====== ======================== =========================================\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors defined here:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data and other attributes defined here:\n",
" | \n",
" | __hash__ = None\n",
" | \n",
" | __slotnames__ = []\n",
"\n"
]
}
],
"source": [
"help(st)"
]
},
{
"cell_type": "markdown",
"id": "5d2b7113",
"metadata": {},
"source": [
"## Mengeplot data rekaman\n",
"\n",
"Melihat petunjuk di atas kita ternyata bisa mengeplot data rekaman menggunakan metode `plot`:"
]
},
{
"cell_type": "code",
"execution_count": 77,
"id": "28fb255a",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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NsYc0FDPXURERERkb9DQPfuXWGtTgpdhAMaY4cCfgMOBvsAw4OLgsgTgbeAxIAuYArzoW9+dQEugPXAG8C9jTK/gfQcAY4DTgI7By62++74CfBZc77PAeGOMZiMSERERkSarMcp4zgOettYutdZuAP4JnB9cNgQos9b+x1pbCtwLDDTGdPXd9x5rbYG19hvgXeCc4LJzgLestd9aa/OBe9x6gzsEfYH7rLWl1tp/E3jugyM10BiTYIxJcxcgdbduARERERGRPaChw/6YYLnORGPM/sHr+gJzfbeZB/SLtMxaWwwsBfoZYzKBNtHeN7iskzEmJbhssbW2rJr7hrsJyPdd1kTxXEVERERE9ioNGfZvALoCnYCJwARjTCqQAvjP8lUQvI4Iy/zL3W0Ko7xvge/6mtYbyf1Auu/SoZrbiYiIiIjstRos7FtrZ1pri6y1JdbaBwmE9MOBIiDNd9O04HVEWOZf7m6TGmFZpPum+a6vab2R2l4WLBUqCJ5+uDDS7URERERE9mZ7sma/EjDAAmCA7/r+QE7w/yHLjDFJQDcgx1qbC2yI9r7BZaustUXBZT2CA4Aj3VdEREREpMlpkLBvjMkwxpwYHOgab4y5hsAsODMIzK5zmTFmP2NMa+Ba4IXgXScBScaYi4PB/GZglrV2eXD5i8AtxphUY8yhwEjg5eCyl4HTjTEDjTHpwfu+AGCtXQT8CNwYbNOlgAW+bojnLyIiIiKyN2ionv04AnXvWwj0xo8Ahltr8621HwL/BmYCC4FPgP9CoHyGwNSZVwN5wDHA733rvQ3YBqwH3gL+LxjksdbOI7Dj8B6BAbXrCMzI45wDDA2udzQwylq7Y7c+axERERGRvYix1jZ2G/Z6wek38/Pz80lLCy/9FxERERHZswoKCkhPTwdID44xjagx5tkXEREREZE9QGFfRERERKSJUtgXEREREWmiFPZFRERERJoohX0RERERkSZKYV9EREREpIlS2BcRERERaaIU9kVEREREmiiFfRERERGRJkphX0RERESkiVLYFxERERFpohT2RURERESaKIV9EREREZEmSmFfRERERKSJUtgXEREREWmiFPZFRERERJoohX0RERERkSZKYV9EREREpIlS2BcRERERaaIU9kVEREREmiiFfRERERGRJkphX0RERESkiVLYFxERERFpohT2RURERESa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wQLmzp3LggUL+Pzzz5k4cSI//PADEyZMYNq0aaxevZrPP/+c5cuX88Ybb5CTk0NOTg7ffPMNU6dO5YcffmDq1Kl89913zJ49m1dffZXNmzezcePGag9fPf300yF/uxKHrVu3cuKJJ3LHHXcAgbmRqzsDaqRDWS7sf/nll14ZhZObm8vjjz/ulfxA4FDi2Wefzf7778+pp57KlVde6S1zQWP16tW89NJLZGX9vP+1aNEirrrqKv70pz95JQkffvih92Nzyimn8Ne//hWAkSNHcv311zN06FASExMZNGgQ5557Ltdddx2jRo3izDPPpEuXLrRo0YL27dsTGxvL4MGDGThwIP379+emm25i4cKF/P3vfyctLY2HHnqIO++8k4MPPpi5c+fy0EMPee164YUXALjxxhs58sgjvV7fCRMmUFZWxh//+EeOOuoobr/9dl555RV+85vf8PnnnzN16lRuvfVWBg0axKhRo8jNzfV2dNw2vffee/nyyy8pKCigWbNmdOzYkR49etC6dWvuvfderLUMGzaM/Px8YmNjQ+pOXS+Sk5WVRXl5eZWzlrra6+TkZHJzc0MOv8LPwXLOnDnezo3bGZs8ebK3UwShYd/90P7973+nf//+FBcX83//939AIBi4owk//vgjAwcOpLi4mG+++YZPP/2U0tJSrrrqKsrLy72w7HYwt23bFrIzN2/ePCoqKjj33HPZvHmzd1SpX79+LF261Atuxx57LMYYli1bxieffMKAAQOIiYnh888/9+rZZ86c6QVn976KFPZTUlJo1aqV10PVvXv3kNp7fzjz71i4naq6lvGsWLGCdu3aeZ8HtzPjgtnWrVspKytj5cqVIb1gLVq08AbSd+jQgTZt2rBhw4aQgOwPs5HCflFRUZWwv3nz5hrLeKLt2XcByG0b93xdqHMBMFLPfqQyHn8IzMjI8NbtjgRA5J796667jtNPP51DDz2U/fbbL+TooNs+hx12mLfNI9VR19SzP3/+fLp37+5NL7p161avFMWFORf03Al/DjvsMC688MIqYd9fbxzesw9wwQUX8PXXX3vPoaae/bS0NDp37uz17Ldo0YLk5GTi4+ND1g146wdCQrC/Z9+1z70OiYmJZGRksH79eu/3prCw0AvA7vPUunVrbxyHa5t7z7lpWlNTU0NOaOc+S/66+hUrVtCsWTPat29Phw4dvO+gJUuWeK//p59+SlFREStXrvTCfv/+/UOODvvLeFxb/AE8NjaWtm3bep/D3Nxc5syZE9IR4V5rt0Pg2hJes+/v2S8sLKSsrMzbpv7xJ+vXr6eiooI+ffp446z69OnjvRettaxZs4bHHnuM2NhYLr30Uu68807OOussvvrqK6ZNm0ZlZSVXXHEFZWVlLF26lIKCAn7zm98wcOBA4uLiePbZZzn88MOZP38+27dv904CNnr0aLp27eqNO5o1a5b3fnVBedq0aRxyyCHEx8d77ymAjz76iOLiYq688kri4uI47rjj+PLLL4HA2dYBrr/+embNmkVZWRm5ubmsWrWKAw88EGMMBxxwQI1h323XhQsX0r9/f9LS0hgwYACtWrVi4sSJXHbZZRxxxBHekRvXblfGY6318s68efMYNmwYW7Zs4bnnnmPTpk2cdNJJDBs2jPnz51fpwLLW8sADDzBkyBCuu+46XnzxRT788EPv5IMQyEylpaWMHz+erKwsrzT1448/ZtCgQdx2221eKfSMGTO48sor+eqrr/jNb35DRUUFjz76KH369OHkk0/mscceCwn0U6dOZdWqVdx4440sXLiwTmfijo36lr9sPYAia63/eOk8oF+kGxtjEoAE31WpAL/61a8arIH1ERcX5wUG59xzz/XKQa644grv+qSkJA444ABKSkr4/PPPadu2LZ9++inLli1j6dKl1U6X5sorIPDl7g+XkeoA33//fe/QoWujv+QgfLYCv9///vfe/6+88kr++9//emHK9Qy4Ab/GGC+QQuDH1N8T7Rc+xWikE6/4Z62JND/9I488AgR+LC+44AK+/fZbL7z6p0T76KOPQg6Jws+9sEOHDgUCYemrr77yymPmz59PUlISzZs357777uO+++4LOZ/BQQcdxJYtW7xDjQsWLOC6664jOTk5ZOaC1atXc9JJJ3l/uxC0bds2mjdvHhKy3L+5ublVzsOQl5fHqlWryM3N5YwzzmDIkCGceOKJHH300V4P4qOPPsqDDz7ohf0OHTowefJkysvL+dvf/oa11tshePDBB+nYsSNnn302ixcvZuHChdx0003k5OTw7bff8tBDD3HUUUdxwQUXcO211zJnzhz69+/PpEmTOP7441m7di1HH300b731FsuXL+e6664jLS2NSy65hEceeYRnnnmGTp06MWTIEL766isv9PTp04cOHTqwYsUKvvvuO0466SQKCwsZM2YM8fHxDB48mKVLl3rbxR3xKSwsrBL2k5OTyc7O9o50de/enVWrVhEbG/gK9YfF8EHpycnJIWU8S5YsqbaMxxjjlfG4Mz661xZCw/7999/Piy++yI033hjymicnJ1NQUECrVq1o06YNZWVlIeVc/rAfHx/v1fk7RUVFbNu2jdatW7Nx40avZ9+VpERTxuMOp4f37Ecq4ykqKqo17EfTs+8P+2VlZd46EhISQsJ++/btOeKII3jzzTeBQKjdvHkzhYWFpKamsnnzZhISEvjPf/5DTk4OiYmJ1Yb9SD371lo+/fRTDjvsMG/wruspbtGihfe6b9q0iT59+rBp0yYOO+wwXn31VWJiYhg8eLAXDMMHF+bm5rJjxw5WrlzphfFRo0aRnp7O888/zz333OMdcfCXyZSXl9OsWTMSEhLo0qULK1asoLKykuzsbIwxIec1WLZsGYmJiV4vPfwcwP3TlbppMDds2BASxt0O5syZMznzzDN57bXXmD9/Pvvtt5/33mvVqlWVsQ7uObvH8vfsu500qBr2O3bsSGxsLO3btycvL4/t27ezZMkSfvWrX7F06VK+/PJLOnfuDOCF/X79+vHQQw95O0aRwr57n7nXy3/0curUqVhrOeaYY7xt5AbYux2CSGHfHQXJzs72jpa4HSi30+UP+9bakN+XXr16sXTpUm8Hefz48cTHx3tHl++44w6ys7N54403SEtLo2PHjvzmN7/hiiuuICcnh3fffZcPPviAc889l+uvv57WrVtz0EEHUVlZyfz58/nxxx9p1qwZPXv25PLLL+evf/0rzz77LH/84x+ZMmUKU6ZM4Y033mD69OlMmzaNc889FyAk7H/77bd07drVK7s57rjjuPbaaykuLmbKlCn07duXU089lbvuussrBQI44IADvH9dhqioqGDdunV06tSJpKQksrKyvO26aNEi7z0YExPDySefzNNPP+3ttL755pvsv//+bNy4kZiYmJDXd+vWrcTExJCbm8vZZ5/N9OnTufrqq0lOTubII4+kuLiYmJgYPv7445AytK+//pqZM2fy0UcfATBixAiGDx/OX/7yF4YPH05iYiJTpkyhZcuWHHTQQVx44YU8//zz9O7dm9GjR3PyySfTs2dPHnvsMW644QYee+wx9ttvP9566y0OOuggHnzwQd555x3+8Y9/0LNnT4YPH8706dPp1KkTb7zxBq+//jqdO3fmjjvu4N///jfvvPMOf/7zn4nGPtGzD6QABWHXFQSvj+QmIN93WQOB+uDPP/+cuXPnMnXqVL799ltmz57N1KlTmT59OrNnz2bixIksWrSISZMm8dlnn/HFF1/w1VdfMWXKFL755hsmT57MokWLWLZsGTNmzGD58uV89913vPvuu8yaNYs333zTOzowbdo05s6dy/z585k5cybz5s3ju+++Y/LkyaxZs4ajjjqqyqFl/+F99+VoreWQQw7hmWee8coC3Aesbdu2TJ061fug1cQ/CNjfg1yT559/3qsJrc6pp54a8vfll1/OEUccERLKly5d6vW0QWipRHiZh587A6j74nEef/xxb5l7Lv4PNQR6U13PNAQG8+Xm5jJy5EieeOIJ2rZtS0FBAWPGjGHGjBl0797dW+fZZ5/NDz/84A1+O/TQQ4HA4eP169fTr18//ve//3nlDyeeeCLXX389+++/P8OGDfN2UPLz85k9ezYrV65k4MCB3HLLLXTs2JEHHniAHj16sGnTJgoKCrDWej0gjusVdl9+Lgi5gOLKHt577z0OO+wwL8ADXk9Mnz59uPzyy+nWrRv9+vXzdv7c4Ky8vDwv7K9Zs4annnoKay3NmjXzdgYvvPBCRo4cSXJyMo8++iiFhYX079+f/v3788QTT7BlyxaeeOIJsrKy6Ny5Mz/88APPP/88EyZM4Ne//rW383TnnXd6OzcPPPAAvXv3JikpiR9++IEjjzyS7t27s3TpUq/EJyMjg86dOzNv3jwWL17MwQcf7I0dOPzww9l///1ZtmwZW7dupXPnzlhr2bBhA5WVld77xd+z73rl4+Pj6dChAyUlJV5Q8ZcEwM8BIS8vj5SUFNavX098fDxpaWleGY8rVygqKopYxtOlSxeaN28eUj7gSgW2bt3KW2+95W0LZ+vWrd7n1JUfQOj4AX/Yr6ioCOnZN8Z4swO5ucvz8vJCynhc7b1T0wBdf8++C+qRyniqC/uRynjKy8u9wFlT2PeX8YT37Pu55+m2kXuu/fv3945stWvXrkptfUFBgbcuf2j9/vvv+fHHHznnnHOAn8OpW68r33KvgwvzcXFxNGvWjOzsbK830vX8uhMC5ebmsnr1anbs2OGF/aSkJI4//nivLtsFWDdTkOvZT01NxRhD165dvTIeFzjdjj/83JPqPzrrxnZs2bKF3Nxc0tPTQ3aI/WG/bdu2zJ07lxUrVnDaaaeRmZnplShs2LDBq713r3P49Jr+nn23zL/+Fi1aeGF/+fLlXpD313S7+nbXq+w+n+73z41dcJ1X7n3k36nx9+y794DbaZ43bx4ZGRnegGQIfHbc96Brh2uXm/HKrdMf9jdv3uztbLhlzZo1Y926dSGdCG48ln9nYObMmRx88MG0a9eOb7/9lrlz57Ju3TouueQS8vLyuPrqq2nTpg2ZmZnk5OQwceJETj75ZP73v/9526Bfv340a9aMOXPm8OOPP9KtWzfi4+O5/vrrKSoq4pJLLqFr1668/PLLPPzww6xevZo//OEPrF27lsGDBwOBsO/KeGbPns3AgQO9dg8ZMoSKigqmTZvG119/zdFHH80BBxxAYmIi06dPZ968ecTHx3vTqh5wwAEsXbqUwsJC1q5dS2VlpTdmwn9UY9GiRSHZ4rTTTvPew8ccc4zXibVx40Zvm/p35tzOSffu3TnppJMoLS3l+OOPJyEhgczMTI444gj++9//8qc//YkrrriCkpIS7r//fvr37+8dzQd4+OGHWbNmDXfeeSc7d+5k5syZDBo0CGOMlxkuvfRSLrjgAt555x1uvvlmjDHcfPPNvPHGG/zpT3/iwAMP5IwzzuCWW24hIyOD888/n5NOOokePXpw2WWXcfDBB3PdddfxzTffcOWVV5KQkMDUqVNDOnpqs6/07BcBaWHXpQWvj+R+4GHf36nAmkGDBnlBqTa1BVz4+UemS5cu3ofD1W66H/WanH766SE97xA4y+0ZZ5zBxx9/TH5+vjfzgJtL230g3Z6pv/cm3H777efVhi5dujSk5u/www8PGWC5bds2pk+fzimnnAIEymouvfRSTjrpJHr37s0hhxzifSF88803/OEPf6B///689tprnHnmmd5gmHfffZdf//rXFBUVERsbS79+/Vi8eLE3Rd7mzZvJy8ujR48ePPvss3To0IFf/epXJCQkcNxxx/Hhhx+SmJjI9u3beeaZZ7jggguAQP38Tz/95I3oHzx4MD169ODtt9/mjDPO4JFHHmHEiBE8++yzNGvWjNmzZ9O+fXsef/xxZsyYwbfffsuwYcOIiYnhP//5D127duX8888nNTWVq6++Ggj06P7lL3/hyy+/ZOzYscTHx/P6668zb948Ro0axapVq7wfmwkTJnDjjTdy/fXXU1JSQp8+fcjIyOCvf/0r1lpGjx5Nhw4dvPebMYZPPvmEcePGcdxxxxETE+O9R5YuXUrnzp0pLi4OCfv+nn0I/GCmpaV5ZR6ZmZls2bKFyZMnc/nll3PVVVeRk5PDDTfcwMSJE4mLiwt5H44YMYLPP/+cZs2aYYzxahqzsrJITEwkNzeXP//5z4wePZo///nPXq+L+1E77bTT+Ne//gUEjhIdeOCB/Oc//yEzM9Pb2TzooIMYM2YMO3fupHfv3lxwwQWkp6fz3nvvedPHjhs3zjsK1K1bN+bPn88RRxzBfvvtR0lJCS+99JL3I9SlSxev7vHggw/2fgCOOeYYWrduzYoVK0hKSuKQQw5h5cqV3ufDBRn34+569t2y8B5mN1DQHf0aOHAgEyZMoFWrVqSkpLB06VIyMzO9Upbt27eTkpLiTbW5fft2OnbsSLNmzVi/fr03d7gxhtTUVG/9LuCtWbPGK89yUzA+//zznHbaaV5AyM7O9j7f/nEf/qN4paWlIWG/devW3owXnTt35ptvvmHz5s3k5ubWa4BupNl48vLyaNasmVe2tGXLFi8ou5AfFxdHYmJilTIef89cmzZtqoR9F7DCy3jCa/b9/GF///33D9mxcfr168dLL71ERUWFF1QLCgq8sOcP+2+88QbZ2dneFLgu7Lue/bS0NBISErypLF3Yd9xYlPLyci84usA2d+7ciGU2PXr08CZWcGHfbc/CwkIqKiq867p06cKbb74ZcpTBP95h9erVXrjy8/eoZ2Zmevd1Yd+V9bRp08arHz/ssMNCSmbWrFkT0lHk7733n7jNtd1/Qjt/z77bsVm+fLnXW+/KaFatWsWyZcvo0aMH2dnZPP3003z22Wd07drVey/26dMHYwzz58/ngAMOYPv27WRlZYUMAHbvQbfd2rZt65UWLl68mJ49e4bsELk2+MO+O8LSqlUrKisrvU6qVq1aVSmNcmE/JiaG1q1bs379erZu3eq9H9z72V+7Pm/ePK8jKSEhwZv04qmnnuL222/3btuvXz+vFNiV7zqJiYn07t2bH374gWXLlnnf28YYb3sNGTKE559/nvj4eK655hqvg8Ed7evcuTOrV6+msrKSH3/8MaQKol+/frRp04axY8fy448/cttttxEfH88hhxzCtGnTaNGiBb179/aOkrrzBM2bN897b7g85cZlbN26lby8vJCcNXz4cC6++GKGDBnC6tWreeCBB6isrGTTpk3eDpt/m7s807VrV6666irmzp0bEp6vvfZaTj/9dL799lsqKyv54IMPWL16Na+++mrI696rVy9uuukm7r77bt58801++uknbxv36NGDqVOnsm7dOkaNGoUxhhYtWnDhhRfy1FNP0bZtW6+T8T//+Q/HH388J554oveddtVVV3HllVfSt29f5s+f72Uft12BaqccDbevhP0lQIoxpr211nWF9wdeiHRja20Z4I1YDf9A7y3clHBHHHGEF2JSU1MZN26cF0zcD7n/hwHwvsxdL4Fzxx13eG/UIUOGsGzZMvbff3+WLl0aUo4zaNAgL+ynpqaSmZnJ8OHDveV///vfvS+Ngw8+mM8//5yjjz6a7du3k5mZ6X35P/3006Snp1NUVESnTp28daSkpHi9cVdddRXjxo3joosu4pJLLvFq2C655BLv8ebPn0/nzp29koSUlBSuvfZaAK8H1H04nJNOOomysjIvfJx44olMnjyZtm3bhoRc90XhPmQtW7asMp8yBH6kX3jhBXbu3OkF6gMPPND78nJB323/6mbfMcbw1FNPVbm+RYsW3o6Fvz1HH320NxDQ/yMdqWff9Y5B4Ivzs88+Y8uWLV44du+Hjz/+mL59+3rBBuCiiy7i6quv5pBDDiE/P9+rv8zOzg4ZDH7NNdfQo0cPVq9eHfKeue2227zgvd9++3kB39VqQmBswDvvvENWVhYLFizwrh8+fDhpaWkUFBR4M4NA4L01f/58TjjhBG+bL1u2jL/85S8AXq9fQkICffr08b7sjz32WHbu3OkNFN9vv/344osvvLDvtuOGDRu88gf3mWrfvr032NQdxXA/HIMGDWLBggW0aNGCTz/91CtfArxwX1xcTHFxMcnJySEDVF0v/tSpU6moqPBCqD/st2jRgvT0dG+chZtd4qSTTuKJJ56gefPm3H///d5t3Y99pJp0CIRyf9jPyMigqKiI/Px8DjnkEBISEkJ2HuDnsG+txRhT62w87j3nL+PJyMjwwoS/Z98FK/e8CwsLqayspKKigoSEhJABoBkZGZSWloaEfdeDW91sPOGfAQiE08TExCo9+36DBg2itLSUBQsWeO9bN2e/a3dRURHWWqZMmcKQIUO8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3YxfJLfdNNZBREREZPdR2N9DnnvuOQ488ECSk5Np27YtQ4cO5ZNPPgGgS5cuNG/enJSUFO/yr3/9q17rApg8eTKHH3446enptGjRgl/96lcsX74cgDvuuINLLrkkqjZfeOGFJCQkkJKSQlpaGkcddRRz5swJWX7PPfeE3GfSpEl0797d+7tLly507tyZiooK77rLL7+cO+64I6o2iIiIiEj9KezvAXfffTe33nor99xzD5s3b2b16tXccMMNfPzxx95tPv30U4qKirzLFVdcUa915efnM3LkSG644QZyc3NZuXIlV155Jc2aNatX22+99VaKiorIy8vj1FNP5aKLLqrzOgoLC3n++efr9fgiIiIiUn+ajaeB5ebmct999/Haa69x6qmnetefcMIJnHDCCbt9XYsXLyYhIYFRo0YBkJKSwmmnnbbLzyMmJoYzzzyTu+66q873veaaa7jvvvu46KKLVOYkIiIisgepZ7+BffPNN+zYsYNTTjllj6yrZ8+elJeXc8kllzBx4sTddmKvHTt28PLLL3PYYYfV+b7HHXccnTp1YuzYsbulLSIiIiISHYX9BrZ161ZatmwZUkbTpk0bMjIySExM9K4bNmwYGRkZ3uWrr76q17rS09OZPHkyZWVlnHfeeWRnZ/P73/+ewsLCerX/3nvvJSMjg+TkZB566KEqPftuubv4jzj43X777dx3330htfsiIiIi0rAU9htYVlYWW7ZsCZk/fsOGDSxcuJCysjLvugkTJpCXl+ddjj322Hqvq3///owbN44NGzYwbdo0pk2bxr333luv9t98883k5eVRUlLCuHHjGDFiBOvWrauy3F0++OCDiOs5/vjjad++Pf/73//q1Q4RERERqTuF/QZ2xBFHEBsby0cffdQo6xo4cCCjRo1i/vz5u/TYMTEx/PrXvyY+Pp5p06bVax3q3RcRERHZsxT2G1hmZiZ//etfGT16NB999BElJSXs3LmTGTNmNMi6Fi5cyJgxY7ze98WLF/P+++9z6KGH7tLzsNby4Ycfsm3bNnr16lWvdZx44om0adOGd955Z5faIiIiIiLRUdjfA+644w5uu+02brrpJlq0aEHHjh15/PHHQ3rohw4dGjLP/s033wzAfffdx7Bhw6JeV2pqKtOmTWPgwIEkJydzwgkncMopp3DjjTdGbFtKSgpff/01AF9//TUp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lvvj/vvvL00r9bio3w85++TUAzA9pR86dCjWrVsHwzAsx/Dyyy/HtGnT8MILL8DlcsknKiT21es1GVP6ExYgcB/yer0YPHiw7PBQkQAA+N3vfif/pvtnfn6+aX/J2adYsK49qCw0jZkMxV4h9ju4CkAfAJUAHgVwpmEYVcHf0vugaaHVE3Pq1KmYOXNmUNGckJDg6N56vV68956533T55ZebPoMYOXKk6cfFdB26yM+bNw9Dhw6VN1oVEoitra14/fXXTRWR6AYE7BT46t92zj6w84auXkjtoBkv9bkJaLuLFy9G//794XK5kJmZifb2dmzfvl3ekOiCS9lxINCxos6GfkOJiYmRTws8Hg9ycnJQW1srZ1gFAgJ88+bN8gJ666234rnnngMQiESoN0QV6oyoMR5VaNHN1ePxSEGxdetWZGZmyidfKnYxHnI1S0tLUVtbKzswCQkJcoDkjh07sGHDBtl5oU7m6tWrTZN+5eTkyBrrQOCm39jYaCv2zz77bDnpmz74Dwid2Q8W4yGxTxFFWhcsxkNi364ajy72KY6oxngWL16MESNGmJxzeg/FfHRn36kajz5QW4/+OYl9fYCuum9U+lN9eqSLZPXc1gf82sV4aGI2vbOgf0d2zj65mE7OfkNDg2Nm3+/3o729vdNiXx2gC+ysWuXxeODxeDBixAgkJCQ4RlLT0tJQUFCA9evXWxxYICDe7cS+GuPRX68ff7V8pd04BMpkG4ZhEvsnnHACTjnlFNx3333yHusU48nKysK6deswe/Zs7L///lizZg1WrVolt6WLffUem5iYKMswqzX2gZ1iv6amxiRagw3QBazOPj0hWLVqFYYMGWLRDBRJfeONN0xONBC4T6xbtw6ffPKJjHs+9thjuOKKK+Rr+vTpg5KSElndUGe//fbDtm3bUFZWhpKSEpPRQxFQNct/11134Xe/+x1OP/10+brx48ejvLwca9eulXM3EKmpqfjPf/4jzR8hhHzCrRtAZPzQtVI93qeeeiqAQNqBjlFqaipee+01XH311TKrDwTGLgKByk0qI0eORGVlJb755htTh5EYN24clixZIo9lKPYasW8YRrlhGMcZhpFkGMZwwzCsozyZThEXFxfUeWe6F7rgqXXodWhg79///nfLOvWCTeMAgJ2OPo3L0DtpJ5xwArKyskzRMCeGDh1qicSQK/Tz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fTQ+++wzAMDAgQORlJSElJQU+e/JJ5/s1LYAYP78+Zg4cSLS0tKQlZWFI444Aps2bQIA3H333bjkkkvCavOFF16IhIQEpKSkwOPx4NBDD8WSJUtM6++77z7Te+bNm4ehQ4fK/4903xiG2XOhggStra093BKGYRiGYLG/C7j33ntx55134r777kN5eTm2bt2Km2++GZ9++ql8zeeffw6fzyf/XXXVVZ3aVm1tLU466STcfPPNqK6uRlFREa655hrExMR0qu133nknfD4fampqcPzxx+Oiiy6KeBvh7hvDMHs2JPIbGhp6uCUMwzAMwdV4upnq6mo88MADeOONN3D88cfL5b/97W/x29/+NurbWrt2LRISEnDqqacCAFJSUnDKKad0eT9cLhfOPPNM3HPPPV3eFsMwvZOmpiYAgflGGIZhmN0Ddva7mR9++AFtbW34/e9/v0u2NXz4cLS0tOCSSy7BnDlzojaxV1tbG2bNmoWDDz44KttjGKb3QWKfnX2GYZjdBxb73UxlZSWys7NNMZr8/Hykp6fD7XbLZcceeyzS09PlP7vSdeFsKy0tDfPnz0dzczPOP/985OTk4LzzzkNdXV2n2n///fcjPT0dycnJeOihhyzOPq2nf+oTh0j2jWGYPR8S+5zZZxiG2X1gsd/NZGZmoqKiAu3t7XJZSUkJVq9ejebmZrnsk08+QU1Njfw3efLkTm9r9OjReOWVV1BSUoLvvvsO3333He6///5Otf+OO+5ATU0NGhsb8corr+CEE05AcXGxZT39+/DDDy3bCGffGIbZ86HrEIt9hmGY3QcW+93Mb37zG8TGxuLjjz/ukW2NGzcOp556KpYvX96lz3a5XDjxxBMRHx+P7777rkvbYhimdxLM2f/xxx9RXV29q5vEMAyz18Niv5vJyMjALbfcgiuvvBIff/wxGhsb0d7ejh9//LFbtrV69WpMnz5duu9r167FBx98gIMOOqhL+2EYBj766CNUVVVhxIgRXdoWwzC9EyexbxgGJk6ciNNPP70nmsUwDLNXw2J/F3D33Xfjrrvuwm233YasrCz0798f//rXv0wO/dFHH22qRX/HHXcAAB544AEce+yxYW8rNTUV3333HcaNG4fk5GT89re/xe9//3vceuuttm1LSUnBN998AwD45ptvkJKSYlp/7733IiUlBampqbjxxhvx/PPP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\n",
"text/plain": [
"