Richard Styron’s Python tool for calculating fault slip rates from offset marker data

Richard Styron has published several interesting tools for fault/stress analysis and other geoscience problems, see his website here: The latest Python tool he is sharing with us is for calculating fault slip rates from offset topography data – great stuff for paleoseismologists! He announced this a few days ago and allowed me to spread the news. Check it out and let him know what you think!

Hi all,

Last year I built a tool to calculate fault slip rates from offset marker data (age and offset distance of features cut by faults).  Although I will be publishing a paper using it eventually, I’d like to spread the word about it now and just get it out to the community.  The Slip Rate Calculator can be found here:, with more documentation.

The tool is conceptually similar to, and inspired by, previous work by Ryan Gold and Zechar and Frankel, but offers some more functionality:

  1. The ability to use arbitrary PDFs of age and/or fault offset that may come directly from mapping, a cosmogenic age calculator, OxCal models, etc.  This is particularly helpful with multi-modal PDFs, for example because the dated feature on one side of a fault may be plausibly matched with two features on the other fault block, so you are not forced into picking one: just ascribe relative probabilities to both possibilities.
  2. The ability to fit multiple offset markers with either a single line or a piecewise line, representing a change in rate at some time. Both the first and second rates, as well as the time of rate change, are solved in the model.  Furthermore, the likelihood of a slip rate change given the data is estimated using the Bayesian Information Criterion (which penalizes for model complexity).
  3. A nice graphical user interface.

The slip rate calculator uses Python, and a lot of the typical Python science packages (numpy, matplotlib, pandas) and PyQt.  I strongly recommend using Anaconda Python 3 for it (and any scientific work, really).  Downloading/installing Python and dependencies using Anaconda is pretty darn easy, although it does take a little bit of hard drive space.
Now, I must ask for some favors from any potential users.  I am looking for funding to improve this (I’m currently out of free time for it), so any community interest/feedback would be pretty helpful here in both guiding and supporting a proposal.  Here are the big two areas for improvement:

  • I would really like to make a web-based version, both to keep it updated and so that occasional users don’t have to download a bunch of Python packages to use it. If you think you would prefer a web version, please, please let me know!  Just an email saying “I would use this online” is sufficient.
  • I also would like to make it more useful to paleoseismologists.  Although I hang out in trenches sometimes, I don’t do this work myself and I’m not sure exactly how to extend functionality in this direction; maybe simply recurrence interval calculations, without slip rates in cases where offset is not determined?  Any suggestions are welcome.

Any other feedback is quite welcome too!  I want to make useful things, and I mostly have what I need out of this, but I think that with some modification it could be useful for a wider range of geoscience.  I can field suggestions through email, or if anyone wants to use the ‘Issues’ page on GitHub, that’s also convenient.

Also, citations:  There will eventually be a paper, but in the mean time, the project has a DOI and can be cited as:

Richard Styron (2015). Slip Rate Calculator, v. 0.1.2. Zenodo. doi:10.5281/zenodo.33360

(or using whatever version is current at the time).

Thanks, and enjoy!



Thanks a lot Richard for programming and sharing these great tools!

Leave a Reply

Your email address will not be published. Required fields are marked *