What is IRIS?

IRIS is a consortium of over 100 US universities dedicated to the operation of science facilities for the acquisition, management, and distribution of seismological data. The following instructions show you how to see our seismic data on the IRIS website. Ocean Networks Canada (ONC) has offshore seismometers streaming near real-time data to IRIS in addition to stored autonomous instrument data. Further details on all of the instruments that are part of the ONC network (Network Code: NV) can be found here: IRIS Data for NV Network.

IRIS Web Services

IRIS has a number of web services that can be used to search, plot, and interact with their data. The full link to all of these tools can be found here: IRIS Web Services


Key Service Tools - Quick Look Up

The following table highlights key web services for either searching data within IRIS or for handy tools for studying earthquakes or time series data. More detailed information can be found at the IRIS Web Service link above.

Service ToolBrief DescriptionQuick Link
Station MetadataRetrieves metadata stored in SEED formathttp://service.iris.edu/fdsnws/station/1/
Data SelectRetrieves time series data in miniSEED formathttp://service.iris.edu/fdsnws/dataselect/1/
Time SeriesSimilar to the above Data Select but with additional featureshttp://service.iris.edu/irisws/timeseries/1/
Channel DescriptorProvides the definition of a channel codehttps://ds.iris.edu/ds/nodes/dmc/tools/data_channels/#???
AvailabilityReturns the miniSEED data for availability of datahttps://service.iris.edu/fdsnws/availability/1/
Travel Time

Calculator for determining the travel times and ray parameters for seismic phases through a 1D spherical earth model.

http://service.iris.edu/irisws/traveltime/1/
Distance/AzimuthCalculate the distance, azimuth, and back-azimuth between 2 locationshttp://service.iris.edu/irisws/distaz/1/
Earth ModelService for Earth Modelshttp://service.iris.edu/irisws/earth-model/1/

Ocean Networks Canada Instruments - NV Network

Station Locations

ONC currently has 14 different stations streaming to IRIS from distributed locations across the Cascadia Subduction Zone within the NV network off the west coast of Vancouver Island, British Columbia. The screenshot below was taken from IRIS's interactive map tool for the network which can be found here: Interactive Map Tool.

 

Station Descriptions

Station CodeSiteQuick Link
BACME

Barkley Canyon MidEast

http://ds.iris.edu/mda/NV/BACME/?starttime=2016-06-15T17:25:43&endtime=2599-12-31T23:59:59
BACND

Barkley Canyon Node

http://ds.iris.edu/mda/NV/BACND/?starttime=2018-06-22T03:00:00&endtime=2599-12-31T23:59:59
CBC27

Cascadia Basin, East (ODP 1027C)

http://ds.iris.edu/mda/NV/CBC27/?starttime=2018-06-23T23:59:59&endtime=2599-12-31T23:59:59
CQS64

Clayoquot Slope, North (ODP 1364A)

http://ds.iris.edu/mda/NV/CQS64/?starttime=2016-07-01T00:00:00&endtime=2599-12-31T23:59:59
ENEF

Endeavour East Flank

http://ds.iris.edu/mda/NV/ENEF/?starttime=2018-06-19T00:00:00&endtime=2599-12-31T23:59:59
ENHR

Endeavour High Rise - Godzilla

http://ds.iris.edu/mda/NV/ENHR/?starttime=2018-06-19T00:00:00&endtime=2599-12-31T23:59:59
ENWF

Endeavour West Flank

http://ds.iris.edu/mda/NV/ENWF/?starttime=2016-06-21T00:00:00&endtime=2599-12-31T23:59:59
KEMF

Endeavour Main Field

http://ds.iris.edu/mda/NV/KEMF/?starttime=2010-09-30T00:00:00&endtime=2599-12-31T23:59:59
KEMO

Mothra Field

http://ds.iris.edu/mda/NV/KEMO/?starttime=2016-06-18T00:00:00&endtime=2599-12-31T23:59:59
NC27

Cascadia Basin, West (ODP 1026)

http://ds.iris.edu/mda/NV/NC27/?starttime=2009-09-14T00:00:00&endtime=2599-12-31T23:59:59
NC89

Clayoquot Slope, Bullseye (ODP 1089)

http://ds.iris.edu/mda/NV/NC89/?starttime=2009-09-17T00:00:00&endtime=2599-12-31T23:59:59
NCBC

Barkley Canyon

http://ds.iris.edu/mda/NV/NCBC/?starttime=2009-09-07T00:00:00&endtime=2599-12-31T23:59:59
NCHR

High Rise Field

http://ds.iris.edu/mda/NV/NCHR/?starttime=2010-10-04T00:00:00&endtime=2599-12-31T23:59:59
NSMTC

North Saanich Marine Technology Centre

http://ds.iris.edu/mda/NV/NSMTC/?starttime=2017-08-18T00:00:00&endtime=2599-12-31T23:59:59

Station Channel Naming Description

High frequency and low frequency data are available from the NV network. Low frequency (below 8hz) can be accessed at near real-time from IRIS. Data at higher frequencies can be made available but may be delayed when they are uploaded to IRIS due to military screening.

Channel codes are denoted by three characters that describes the sensor type, the frequency range, and the orientation following the SEED channel definitions (full manual found here: SEED Appendix). Refer to the Channel Descriptor web service link mentioned above to get a full definition on what the sensor type and frequency range portions of the channel code mean. Orientation codes in the NV network can be described as follows:

Orientation CodesDescription
N/E/Z
  • N refers to the channel aligned to the North
  • refers to the channel aligned to the East
  • Z refers to the channel aligned Vertically
1/2/3
  • refers to the channel aligned to the North; however, the alignment is off axis by more than 5 degrees (azimuth less than 355 degrees or greater than 5 degrees).
  • refers to the channel aligned to the Easthowever, the alignment is off axis by more than 5 degrees (azimuth less than 85 degrees or greater than 95 degrees).
  • refers to the channel aligned Verticallyhowever, the alignment is off axis by more than 5 degrees(tilt is greater than 5 degrees off vertical).

Retrieving Data from IRIS - Web Service Links

Time Series Builder

Below is a screenshot of the time series builder. Any of the stations that have available data in IRIS can be filtered and plotted using this tool. Refer to the metadata aggregator page for a specific station to look for search parameters to input into the time series builder. By changing the Format tab, you can generate either a time series for the count data (plot) or download the miniSEED data that generates that plot (miniSEED). Other interesting files to download are CSV file or audio files from the waveform data; do this by clicking the permalink URL that is generated in the yellow box at the bottom.

How to Interpret the Time Axis

Below is the waveform generated from the above search. This plot shows the BN1 channel from the ENHR station for 25Hz data from January 1st, 2019 between 00:00 (midnight) and 01:00.

The time axis is presented according to the Julian Day Calendar. Notice in the above illustration that the time axis of the plot is indicated as 2019 001, where 001 stands for January 1st, 2019 according to the Julian day calendar. (The date indicated in the plot header is also a good guide to relate the Julian day indicated in the time axis to the day of the month).


Retrieving Data from IRIS - ObsPy (Python)

What is ObsPy?

ObsPy is an open-source project dedicated to provide a Python framework for processing seismological data. It provides parsers for common file formats and seismological signal processing routines which allow the manipulation of seismological time series (see Beyreuther et al. 2010, Megies et al. 2011, Krischer et al. 2015). The goal of the ObsPy project is to facilitate rapid application development for seismology. ObsPy documentation can be found on their website: Obspy Home.

Checking Data in IRIS

Refer again to the metadata aggregator for the NV network to show all the sample rates, stations, channels, etc… that Ocean Networks Canada has available in IRIS (http://ds.iris.edu/mda/NV/) in addition to the availability builder above to see if there is data for a given search time.

This will tell you what data are present in IRIS for each channel. Enter the NV network code, the station you are interested in (ENHR as an example), and then click the permalink in the yellow box at the bottom. This will open a new tab that lists all of the available data and will look something like this:

Time is listed as UTC format; for every Networks-Station entry in this list, data are present and stored in IRIS between the “earliest” and “latest” times. In the web service, you can further refine your search between certain sample rates, location codes, date ranges, channels, etc. 

If you want to search for the three axes in IRIS (N ,E, and Z) of one specific channel, you can set the channel parameter to be something like BN*. This will return the search results for only the BNE, BNN, and BNZ channels. If you try a search that returns an error, go back and double check your search criteria. If everything you entered is correct, then Ocean Networks Canada may not have data stored in IRIS for that channel or specific search.

Installing ObsPy

The following steps assume ObsPy has been installed correctly on your computer. The following steps were performed on a Windows 10 machine with Anaconda and Spyder for access to Python. One suggestion is to follow the directions on the ObsPy page to set ObsPy up as a separate environment. The directions to install ObsPy in Anaconda as an environment can be found here: https://github.com/obspy/obspy/wiki/Installation-via-Anaconda. Otherwise, ObsPy can be installed like other Python packages with PyPi here: https://pypi.org/project/obspy/.

Once everything is installed, configured and running, a script can be written to start downloading waveform data in Python! Below is some basic information to get started accessing waveforms. Data can be further manipulated and plotted with a multitude of tools offered by ObsPy. Refer to the ObsPy Home for more information on these tools.

Downloading from IRIS with Obspy

Install Necessary Packages to Python

import obspy

import numpy as np

from obspy.clients.fdsn import Client

from obspy import UTCDateTime

from obspy import read

import matplotlib.pyplot as plt

from matplotlib.pyplot import figure

import pandas as pd

Define the Client and Timeline

client = Client("IRIS")

t1 = UTCDateTime(2019, 01, 01, 0, 0, 0)

t2 = UTCDateTime(2019, 01, 01, 1, 0, 0)

 IRIS and ObsPy work in UTC time so keep this in mind when searching

Get the Waveforms

station1 = client.get_waveforms("NV","ENHR",””,"BN?",t1,t2, attach_response = True)

Now data are stored and will be in a Stream variable mentioned above; all three axis of orientations are going to be stored in different ‘Traces’ in the form of instrument counts. These count values need to be converted to geophysical units to make sense of all the values.

Merging streams

station1.merge(method = 1, fill_value = 'interpolate')

OPTIONAL STEP: Rotating the data

inv = client.get_stations(starttime=t1, endtime=t2, network="NV", sta="ENHR", loc="", channel="BN*",level="response")

station1.rotate(method = '->ZNE', inventory = inv)

Converting Streams to Usable Units

response = 'VEL'

pre_filt = (0.01, 0.1, 80, 100)

station1.remove_response(pre_filt = pre_filt, output = response)

OPTIONAL STEP: Resampling

station1.resample(20)

Plotting

station1.plot()

Convert to .MAT File for MATLAB

import scipy.io as sio

sio.savemat('MatlabTester_ENHR2.mat', {station1[0].stats.channel : station1[0].data,

                           station1[1].stats.channel : station1[1].data,

station1[2].stats.channel : station1[2].data}

sio.savemat(‘[NameOfFile].mat’, {dictionary of station data})


NOTE: There is another method to save data in ObsPy to a .mat file, but the above method will keep all the data in one .mat file more organized. The ObsPy way can be found here: https://docs.obspy.org/tutorial/code_snippets/export_seismograms_to_matlab.html