TODO
- Create a getamps.py script that will retrieve peak ground motions from various sources.
smtools is a library and a set of tools for downloading, calibrating, and converting earthquake strong motion sensor data to peak ground motions, in a format suitable as input for the ShakeMap program. It also provides a script to "clone" a (modern*) ShakeMap from the USGS web site.
*The ShakeMap must provide an info.xml file, which older versions of the ShakeMap software did not create.
This package depends on:
- numpy, the fundamental package for scientific computing with Python. http://www.numpy.org/
- matplotlib, a Python 2D plotting library which produces publication quality figures. <a href="http://matplotlib.org/index.html
- scipy, a Python library which provides many user-friendly and efficient numerical routines such as routines for numerical integration and optimization. <a href="http://www.scipy.org/scipylib/index.html
- obspy, a Python library for dealing with seismology data.
- neicio, a Python library for reading/writing various spatial data formats (including ShakeMap grid.xml).
- neicmap, a Python library for contains functions for various spatial calculations.
- seisk, a Python library for downloading and manipulating seismic data. https://github.com/kallstadt-usgs/seisk
The best way to install numpy,matplotlib,and scipy is to use one of the Python distributions described here:
http://www.scipy.org/install.html
Anaconda and Enthought distributions have been successfully tested with smtools.
Most of those distributions should include pip, a command line tool for installing and managing Python packages. You will use pip to install the other dependencies and smtools itself.
You may need to open a new terminal window to ensure that the newly installed versions of python and pip are in your path.
To install obspy:
pip install obspy
To install neicio:
pip install git+git://github.com/usgs/neicio.git
To install neicmap:
pip install git+git://github.com/usgs/neicmap.git
To install seisk:
pip install git+git://github.com/kallstadt-usgs/seisk.git
To install smtools:
pip install git+git://github.com/mhearne-usgs/smtools.git
To uninstall:
pip uninstall smtools
To update:
pip install -U git+git://github.com/mhearne-usgs/smtools.git
usage: getstrong.py [-h] [-s] [-c] [-i INPUTFOLDER] [-d] [-r RADIUS] [-e EVENTID] [-y TIME LAT LON] [-w TIMEWINDOW] [-f FOLDER] [-u USER] [-p PASSWORD] [-n] [-o] [-q] [-v] {knet,geonet,turkey,iran,iris,italy,unam,orfeus,sac} Download and process strong motion data from different sources (NZ GeoNet, JP K-NET, Turkey) into peak ground motion values, and output in an XML format suitable for inclusion in ShakeMap. The output files will be named according to the input data source: knet_dat.xml, geonet_dat.xml, etc. Generic (non-ShakeMap) Usage: To configure the system for further use (you will be prompted for KNET username/password, and ShakeMap home): getstrong.py knet -c To list all of the networks and their descriptions: getstrong.py knet -s (still necessary to supply a data source, which is arguably kind of stupid) Network Description ------------------------------------------ turkey Turkish strong motion repository iris Incorporated Research Institutions for Seismology iran Iranian strong motion repository geonet New Zealand (GNS) knet Japanese Strong Motion (NIED) italy Italian strong motion (INGV) orfeus Integrated European strong motion data repository unam Mexican strong motion data (UNAM) sac (Not a network) Data files in SAC format. To process data from a local folder (rather than downloading from a remote source): getstrong.py -i INPUTFOLDER -f OUTPUTFOLDER To process data from a local folder and print peak ground motions to the screen: getstrong.py -i INPUTFOLDER -d To retrieve data from K-NET with a user-supplied K-NET username/password: getstrong.py knet -f ~/tmp/knet -y 2014-05-04T20:18:24 34.862 139.312 -u fred -p SECRETPASSWD To retrieve data from GeoNet: getstrong.py geonet -f ~/tmp/knet -y 2014-01-20T02:52:44 40.660 175.814 To retrieve data from Turkey: getstrong.py turkey -f ~/tmp/knet -y 2003-05-01T00:27:06 38.970 40.450 To process local SAC data (input directory must contain one or more SAC files with file extension .sac, and one dataless SEED file with extension .seed: getstrong.py sac -i /mydata/sacfiles -f /home/shake/ShakeMap/data/EVENT/input ############################################################### For Shakemap Users: To download K-NET data for an event into the event "input" folder (the -f option is unnecessary), while retaining the raw data in event "raw" folder: getstrong.py knet -e EVENTID To download K-NET data for an event into it's input folder, while deleting the raw data: getstrong.py knet -e EVENTID -n To download data from Turkey: getstrong.py turkey -e EVENTID To download data from GeoNet: getstrong.py geonet -e EVENTID To download data from IRIS: getstrong.py iris -e EVENTID To download data from Iran: Download the files from "Digital Records," copy onto your local machine (http://www.bhrc.ac.ir/portal/Default.aspx?tabid=635) getstrong.py iran -e EVENTID -i PATH WHERE DATA IS LOCATED To download data from Mexico: Select all boxes and download. Copy onto the your local machine getstrong.py unam -e EVENTID -i PATH WHERE DATA IS LOCATED To download data from Italy: Download ASCII corrected files. Copy onto your local machine getstrong.py italy -e EVENT ID -i PATH WHERE DATA IS LOCATED positional arguments: {knet,geonet,turkey,iran,iris,italy,unam,orfeus,sac} Specify strong motion data source. optional arguments: -h, --help show this help message and exit -s, -sources Describe various sources for strong motion data -c, -config Create config file for future use -i INPUTFOLDER, -inputfolder INPUTFOLDER process files from an input folder. -d, -debug print peak ground motions to the screen for debugging. -r RADIUS, -radius RADIUS Specify distance window for search (km) (default: 50 km.) -e EVENTID, -event EVENTID Specify event ID (will search ShakeMap data directory. -y TIME LAT LON, -hypocenter TIME LAT LON Specify UTC time, lat and lon. (time format YYYY-MM- DDTHH:MM:SS) -w TIMEWINDOW, -window TIMEWINDOW Specify time window for search (seconds) (default: 60). -f FOLDER, -folder FOLDER Specify output station folder destination (defaults to event input folder or current working directory) -u USER, -user USER Specify K-NET user (defaults to value in config) -p PASSWORD, -password PASSWORD Specify K-NET password (defaults to value in config) -n, -nuke Do NOT retain extracted raw data files -o, -plot Make QA plots -q, --noRotation Do NOT apply rotation to IRAN longitudinal/transverse channels -v, --verbose Print out progress/warning messages
usage: smcheck.py [-h] eventID dataFile Compare station data against a modeled ShakeMap. positional arguments: eventID Specify event ID (will search ShakeMap data directory. dataFile Specify name of data file in event input folder to compare against ShakeMap grid. optional arguments: -h, --help show this help message and exit
usage: cloneshake.py [-h] url Clone a ShakeMap from NEIC web site. Examples: Cloning a scenario: cloneshake.py http://earthquake.usgs.gov/earthquakes/shakemap/global/shake/capstone2014_nmsw_m7.7_se/ Cloning a real-time event: cloneshake.py http://comcat.cr.usgs.gov/earthquakes/eventpage/usb000slwn#summary positional arguments: url the URL of the desired ShakeMap. optional arguments: -h, --help show this help message and exit
usage: filtertrace.py [-h] [-t] {knet,geonet,turkey,iran,iris,italy,unam,orfeus,sac,chile} files [files ...] Pre-process data in any of the formats supported by getstrong.py. Currently supported: trimming. Example: Trim Chile ASCII files: filtertrace.py -t chile ~/data/chile2/GO01_HN*.asc For each channel in each sensor, an interactive plot will appear. To select the new ending time for the trace, left click on the plot. A vertical red line will be drawn at that location. Right click to accept that time, and close the window to proceed to the next trace. positional arguments: {knet,geonet,turkey,iran,iris,italy,unam,orfeus,sac,chile} Specify strong motion data source. files Filenames to process. optional arguments: -h, --help show this help message and exit -t, --trim Interactively trim the latter part of a trace.