#!/usr/bin/env python
# coding: utf-8
#
#
#
#
ObsPy Tutorial
#
Handling Time
#
#
#
# image: User:Abbaszade656 / Wikimedia Commons / CC-BY-SA-4.0
# ## Workshop for the "Training in Network Management Systems and Analytical Tools for Seismic"
# ### Baku, October 2018
#
#
# Seismo-Live: http://seismo-live.org
#
# ##### Authors:
# * Lion Krischer ([@krischer](https://github.com/krischer))
# * Tobias Megies ([@megies](https://github.com/megies))
#
# ---
# ![](images/obspy_logo_full_524x179px.png)
# This is a bit dry but not very difficult and important to know. It is used **everywhere** in ObsPy!
#
#
# * All absolute time values are consistently handled with this class.
# * Based on a nanosecond precision POSIX integer timestamp for accuracy.
# * Timezone can be specified at initialization (if necessary).
# * In Coordinated Universal Time (UTC) so no need to deal with timezones, daylight savings, ...
#
# ---
# In[ ]:
get_ipython().run_line_magic('matplotlib', 'inline')
from __future__ import print_function
import matplotlib.pyplot as plt
plt.style.use('ggplot')
plt.rcParams['figure.figsize'] = 12, 8
# ---
#
# ## Features of **`UTCDateTime`**
#
# #### Initialization
# In[ ]:
from obspy import UTCDateTime
print(UTCDateTime("2014-08-24T10:20:44.0")) # mostly time strings defined by ISO standard
print(UTCDateTime("2014-08-24T01:20:44.0-09:00")) # non-UTC timezone input
print(UTCDateTime(2014, 8, 24, 10, 20, 44)) # year, month, day, hour, min, sec, musec
print(UTCDateTime(1408875644.0)) # timestamp
# In[ ]:
# Current time can be initialized by leaving out any arguments
print(UTCDateTime())
# #### Attribute Access
# In[ ]:
time = UTCDateTime("2014-08-24T10:20:44.0")
print(time.year)
print(time.julday)
print(time.timestamp)
print(time.weekday)
# try time.
# #### Handling time differences
#
# * "**`+`**/**`-`**" defined to add seconds to an **`UTCDateTime`** object
# * "**`-`**" defined to get time difference of two **`UTCDateTime`** objects
# In[ ]:
time = UTCDateTime("2014-08-24T10:20:44.0")
print(time)
# In[ ]:
# one hour later
print(time + 3600)
# In[ ]:
# Time differences
time2 = UTCDateTime(2015, 1, 1)
print(time2 - time)
# ### Exercises
#
# Calculate the number of days passed since the 2014 South Napa earthquake (the timestamp used above).
# In[ ]:
print((UTCDateTime() - UTCDateTime("2014-08-24T11:20:44.000000Z")) / 86400)
# Make a list of 10 UTCDateTime objects, starting today at 10:00 with a spacing of 90 minutes.
# In[ ]:
# 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.
# In[ ]:
times = ["2000-11-16T04:54:56",
"2001-06-23T20:33:09",
"2003-09-25T19:50:07",
"2004-12-23T14:59:00",
"2004-12-26T00:58:52",
"2005-03-28T16:09:35",
"2006-05-03T15:26:39",
"2006-06-01T18:57:02",
"2006-06-05T00:50:31",
"2006-11-15T11:14:14",
"2007-01-13T04:23:23",
"2007-04-01T20:39:56",
"2007-08-15T23:40:58",
"2007-09-12T11:10:26",
"2009-09-29T17:48:11",
"2010-02-27T06:34:13",
"2011-03-11T05:46:23",
"2012-04-11T08:38:37",
"2012-04-11T10:43:10",
"2013-05-24T05:44:49",
"2014-04-01T23:46:47",
"2015-09-16T22:54:32",
"2017-09-08T04:49:21"]
# In[ ]: