I am the primary developer of all of the software on this page and offer it to anyone with no expectation of compensation nor offer of technical support. Unless otherwise stated, all software below are licensed under the GNU General Public license. The spirit of the GNU license is as follows:

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

If you find a bug or you simply like any of my codes, please let me know. Contributions are welcome.

  • fourDvel: Routine for inferring time-dependent, 3d velocity fields from geolocated displacement data following Minchew et al. 2017. (Download)
  • OffsetFields: ISCE plugin to compute complete offset fields from synthetic aperture radar (SAR) or optical data using ampcor or denseOffset subroutines. OffsetFields handles topo corrections, detrending, filtering, and geocoding. Current ISCE users can email me to get the beta version. OffsetFields is now part of the current ISCE release!
  • PySAR: A perpetually incomplete, general-purpose toolbox for common post-processing tasks involving synthetic aperture radar (SAR). Users can find interferometric SAR (InSAR) and polarimetric SAR (PolSAR) tools along with tools for 1D data sets, such as GPS and seismic data. Contents include command-line Python scripts and Python, C/C++, and Fortran functions. (Download | Doc)
  • Recon3D: 3D velocity field reconstruction using Laplacian to form the prior model covariance matrix following Minchew et al. 2015. (Download)
  • VectorDisp: A simple routine to infer 3d (vector) displacements from unwrapped, geolocated InSAR data and/or 2D offset fields. (Download)
  • PolarDecomp: A collection of decomposition routines for polarimetric synthetic aperture radar (PolSAR) applications written in Fortran. Available decomposition methods include Pauli, eigenvalue/eigenvector, Cloude-Pottier H/A/α, and Shannon. (Download)
  • UAVSAR_webpy: Simple routines to download polarimetric and interferometric UAVSAR data from Alaska Satellite Facility. Can be used with various options to download single files or batches of data. Requires Python >= 2.6 and Mechanize toolkit. (Download | Doc)
  • Oil/Water Mixing Index: Estimate the extent of mixing of oil and seawater using co-polarized (HH and VV) synthetic aperture radar data by applying the method of Minchew (2012). This code employs a hybrid parallelization scheme, in that it uses shared and distributed memory parallelization, in order to take advantage of nodal clusters, where a number of CPUs with shared memory are distributed across several mostly independent compute nodes. This can significantly reduce elapsed processing time and was written as a prototype for a real-time spill response tool. (It's worth noting that the computational load is almost entirely due to the (naive) filtering routine and that a more sophisticated filtering approach would eliminate the need for complex parallelization. In my defense, I wrote this code as part of a course on parallelization.) Requires Python >= 2.6, a C++ compiler (only tested on GNU compiler), and an MPI installation. (Download)

Other codes
  • DixEz: Time saving routines for automating Dix Seismo Lab Seminar announcements and scheduling. This package will format and send announcement and reminder emails via user's Gmail account. Reminder emails can be sent automatically 2 hours before the talk if the email routine is run on a Linux machine. This package will format and send the speakers meeting schedule to the speaker committee and everyone on the schedule, but not the speaker. (Download | Doc)
  • Human Bingo: Simple routines for making randomized bingo cards with random facts. I wrote this as part of my obligation to provide an icebreaker game for the SeismoLab Student/Faculty Retreat. I dislike monotonous tasks, so I spent roughly as much time writing the code as it would have taken me to make the cards individually. I provide the code here on the off-chance that it's useful for others. The source code is the documentation. Most users should be able to download, untar (run: tar -xzf humanbingo.tar.gz), modify facts.txt as necessary, and run: ./ Requires Python 2.6 or greater and pdflatex. (Download)