tectoplot
Github Links
https://github.com/kyleedwardbradley/tectoplot - the main program, with installation notes
https://github.com/kyleedwardbradley/tectoplot-examples - example commands and outputs
Overview
tectoplot is a command-line program that produces publication-quality maps and figures quickly and easily, drawing from a wide range of data relevant to seismotectonics (and many other disciplines). This program occupies the space between standard GIS tools, which are interactive but limited in the quality and type of figures that can be produced, and GMT, a powerful set of programs for manipulating and visualizing data in a scripting environment. tectoplot tries to hit a sweet spot between these tools by making programmatic figures while avoiding any scripting; even very complex maps can be generated with a single command.
tectoplot is open source, is built on open source packages (GMT, gdal, geod, and standard Unix commands), and can run natively on OSX or Linux, or on Windows using WSL. It is distributed under a 3-clause BSD license. If you find tectoplot useful, please drop me a quick email so I can better understand how it is being used.
Public outreach with tectoplot
At the Earth Observatory of Singapore, we use tectoplot for rapid event analysis and response, primarily after large earthquakes. Within minutes of receiving a notification, we can create a detailed map and quantitative cross section of the affected area. The output PDFs can be cleaned up in Adobe Illustrator and published within an hour. These data-rich figures differ significantly from the conceptual cartoons that are often the basis for science communication about earthquakes.
Check out ASE Asst. Prof. Judith Hubbard's Twitter feed (@JudithGeology) for other examples of how tectoplot can enable outreach. She also has a web page with a large number of tectoplot maps.
If you are interested in using tectoplot to make these kinds of public-outreach diagrams, please contact me and I can give you some pointers on building an efficient workflow!
Teaching with tectoplot
tectoplot forms the basis for my Global Tectonics course for upper-level geoscience students at ASE. This is an exploration-focused class, where students adopt a tectonic region and learn how to visualize and analyze many different types of data. They gain important technical skills (including the basics of working in a Unix command line environment) while creating a portfolio of maps and figures that illustrate their growing understanding of global tectonic processes. This exploratory approach mirrors the way plate tectonics was discovered - by synthesis of many types of data - and contrasts with the usual teaching approach of weekly 100-slide lectures filled with diagrams from textbooks and published papers.
What can tectoplot do?
Seismicity and focal mechanisms
Download and manage global earthquake hypocenter and focal mechanism data from web services: GCMT (https://www.globalcmt.org) - ISC (http://www.isc.ac.uk) - GFZ (https://geofon.gfz-potsdam.de/) - USGS/ANSS (https://www.earthquake.usgs.gov)
Import custom catalogs
Catalog functions: Homogenize magnitudes, cull equivalent earthquakes using catalog priority and a time-space-magnitude window
Calculate all focal mechanism-related parameters as necessary: Moment tensor, nodal plane strike-rake-dip, principal axes, slip vector azimuths
Plot centroid or origin locations and alternative locations
B-value analysis, Kostrov summation, declustering (Reasenberg, Gardner-Knopoff)
Select data in many ways
Select by time, depth, magnitude ranges
Custom polygon AOI (KML or XY format)
Select by proximity to Slab2.0 surface
Select data by Flinn-Engdahl geographic or seismic regions
Highly customizable topography visualizations
Hillshade / multi-hillshade / slope / terrain ruggedness index
Texture shading (Leland Brown)
Sky view factor
Cast shadows
Gamma correction / percent clip correction
RGB image fusion
Sentinel cloud-free imagery / Blue Marble
DEM extraction and tiling for rapid re-analysis or use in other programs
Event labeling based on ID, date, magnitude
Data management and attribution
All data are attributed, original data is archived before use, and intermediate steps are clearly recorded.
Output files can be uploaded to an online repository for easy
Automatic legend creation for supported data types
Plate motion models
MORVELNNR-56, PB2003, GSRM, tdefnode, and custom models
Plot plate motion vectors, plate velocity relative to any fixed plate
Calculate and plot plate boundary kinematics
Plot Euler poles and predicted velocities at points or on a grid
Fibonacci spiral grid, or regular lon/lat grid
Earthquake coseismic slip models
Query SRCMOD database for events or plot your own data
Plot slip distributions, with or without clipping polygon
Highly flexible profiling
Profile command file for complex profiles
Automated profiling tools for rapid analysis
Profile horizontal and vertical alignment to an XY crossing line
Oblique perspective profiles can be quickly adjusted
Multi-segment profiles can have across profile-along profile coordinates to avoid kink artifacts
Swath profiles
Calculate and plots 0/25/50/75/100 percentiles of gridded data
Data ranges are saved in a plain text file
Download and visualize a variety of geophysical datasets
Slab2.0
Gravity (WGM2012, Sandwell 2019)
EMAG_V2 crustal magnetization
Curie depth (GCDM)
EarthByte plate features (ridges, transforms, magmatic provinces, isochrons)
Ocean crust age
Global heatflow
World Stress Map
Global Strain Rate Map
Global Earthquake Model Active Faults
Enhance georeferenced maps with terrain and data overlays
RGB image blending with terrain intensity
Clipping masks for easy layering
Create oblique block diagrams of terrain
Rapidly update vertical exaggeration, look direction, and look altitude after initial plotting
3D modeling with Sketchfab
Option to export terrain, seismicity, Slab2.0 plate interface, volcanoes, and GPS vectors as textured 3D meshes (OBJ format) packaged into a Sketchfab model.
Make movies using Sketchfab's timeslice option
For examples, see my 3D Modeling page
Other functions
Seismicity versus time
Seismicity b-value analysis
Hypsometry
Stereonets
Data plotting using projected coordinates