1 line
5.7 KiB
Plaintext
1 line
5.7 KiB
Plaintext
{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["<div style='background-image: url(\"../share/images/header.svg\") ; padding: 0px ; background-size: cover ; border-radius: 5px ; height: 250px'>\n", " <div style=\"float: right ; margin: 50px ; padding: 20px ; background: rgba(255 , 255 , 255 , 0.7) ; width: 50% ; height: 150px\">\n", " <div style=\"position: relative ; top: 50% ; transform: translatey(-50%)\">\n", " <div style=\"font-size: xx-large ; font-weight: 900 ; color: rgba(0 , 0 , 0 , 0.8) ; line-height: 100%\">ObsPy Tutorial</div>\n", " <div style=\"font-size: large ; padding-top: 20px ; color: rgba(0 , 0 , 0 , 0.5)\">Handling Time</div>\n", " </div>\n", " </div>\n", "</div>"]}, {"cell_type": "markdown", "metadata": {}, "source": ["Seismo-Live: http://seismo-live.org\n", "\n", "##### Authors:\n", "* Lion Krischer ([@krischer](https://github.com/krischer))\n", "* Tobias Megies ([@megies](https://github.com/megies))\n", "\n", "---"]}, {"cell_type": "markdown", "metadata": {}, "source": ["![](images/obspy_logo_full_524x179px.png)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["This is a bit dry but not very difficult and important to know. It is used everywhere in ObsPy!\n", "\n", "\n", "* All absolute time values are consistently handled with this class\n", "* Based on a double precision POSIX timestamp for accuracy\n", "* Timezone can be specified at initialization (if necessary)\n", "* In Coordinated Universal Time (UTC) so no need to deal with timezones, daylight savings, ...\n", "\n", "---"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "plt.style.use('ggplot')\n", "plt.rcParams['figure.figsize'] = 12, 8"]}, {"cell_type": "markdown", "metadata": {}, "source": ["---\n", "\n", "## Features of **`UTCDateTime`**\n", "\n", "#### Initialization"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["from obspy import UTCDateTime\n", "\n", "print(UTCDateTime(\"2011-03-11T05:46:23.2\")) # mostly time strings defined by ISO standard\n", "print(UTCDateTime(\"2011-03-11T14:46:23.2+09:00\")) # non-UTC timezone input\n", "print(UTCDateTime(2011, 3, 11, 5, 46, 23, 2))\n", "print(UTCDateTime(1299822383.2))"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# Current time can be initialized by leaving out any arguments\n", "print(UTCDateTime())"]}, {"cell_type": "markdown", "metadata": {}, "source": ["#### Attribute Access"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["time = UTCDateTime(\"2011-03-11T05:46:23.200000Z\")\n", "print(time.year)\n", "print(time.julday)\n", "print(time.timestamp)\n", "print(time.weekday)\n", "# try time.<Tab>"]}, {"cell_type": "markdown", "metadata": {}, "source": ["#### Handling time differences\n", "\n", "* \"**`+`**/**`-`**\" defined to add seconds to an **`UTCDateTime`** object\n", "* \"**`-`**\" defined to get time difference of two **`UTCDateTime`** objects"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["time = UTCDateTime(\"2011-03-11T05:46:23.200000Z\")\n", "print(time)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["# one hour later\n", "print(time + 3600)"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["time2 = UTCDateTime(2012, 1, 1)\n", "print(time2 - time)"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Exercises\n", "\n", "Calculate the number of days passed since the Tohoku main shock (the timestamp used above)."]}, {"cell_type": "code", "execution_count": null, "metadata": {"lines_to_next_cell": 2, "tags": ["exercise"]}, "outputs": [], "source": []}, {"cell_type": "code", "execution_count": null, "metadata": {"tags": ["solution"]}, "outputs": [], "source": []}, {"cell_type": "markdown", "metadata": {}, "source": ["Make a list of 10 UTCDateTime objects, starting today at 10:00 with a spacing of 90 minutes."]}, {"cell_type": "code", "execution_count": null, "metadata": {"lines_to_next_cell": 2, "tags": ["exercise"]}, "outputs": [], "source": []}, {"cell_type": "code", "execution_count": null, "metadata": {"tags": ["solution"]}, "outputs": [], "source": []}, {"cell_type": "markdown", "metadata": {}, "source": ["Below is a list of strings with origin times of magnitude 8+ earthquakes since 2000 (fetched from IRIS). Assemble a list of interevent times in days. Use matplotlib to display a histogram."]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["times = [\"2001-06-23T20:33:09\",\n", " \"2003-09-25T19:50:07\",\n", " \"2004-12-23T14:59:00\",\n", " \"2004-12-26T00:58:52\",\n", " \"2005-03-28T16:09:35\",\n", " \"2006-06-01T18:57:02\",\n", " \"2006-06-05T00:50:31\",\n", " \"2006-11-15T11:14:14\",\n", " \"2007-01-13T04:23:23\",\n", " \"2007-04-01T20:39:56\",\n", " \"2007-08-15T23:40:58\",\n", " \"2007-09-12T11:10:26\",\n", " \"2009-09-29T17:48:11\",\n", " \"2010-02-27T06:34:13\",\n", " \"2011-03-11T05:46:23\",\n", " \"2012-04-11T08:38:36\",\n", " \"2012-04-11T10:43:10\",\n", " \"2013-05-24T05:44:48\"]"]}, {"cell_type": "code", "execution_count": null, "metadata": {"lines_to_next_cell": 2, "tags": ["exercise"]}, "outputs": [], "source": []}, {"cell_type": "code", "execution_count": null, "metadata": {"tags": ["solution"]}, "outputs": [], "source": []}], "metadata": {"kernelspec": {"display_name": "Python 3", "language": "python", "name": "python3"}}, "nbformat": 4, "nbformat_minor": 2} |