Software and Tools
Triangular Transport Toolbox
Triangular transport is a powerful tool for generative modelling, density estimation, and Bayesian inference. Transport methods seek a transformation between an often non-Gaussian target density π, the object of interest, and a much simpler, user-specified reference density function η, often a standard Gaussian distribution.
Once such a map has been found, we can use to not just generate new realizations of the target density function π, but also any of its conditional distributions. This latter property makes triangular transport extremely useful for Bayesian inference: If the target density is the joint distribution of prior and likelihood, then the posterior is just one such conditional distribution.
This Python toolbox includes the tools to construct, optimize, and utilize a wide range of different triangular map variations. I have also included example files which demonstrate its use in various settings. Some of my past introduction videos to triangular transport can be found here and here.
A Simple Analytic Element Toolbox
The Analytic Element Method (AEM) is an exotic groundwater modelling technique. Where numerical approaches require a grid to assemble a solution in small spatial increments, AEM does not rely on computing a grid of local solutions. Instead, this method constructs the full, global solution to the flow equations through super-position of analytic elements which project their influence over the entire flow domain.
The advantages of this are two-fold: First, this makes the method highly computationally efficient (In fact, efficient enough to implement it as a browser-based interactive widget, explore the interactive example to the left). Second, the method does not require enclosure through finite boundaries. Such boundaries are a computational necessity for numerical models, but rarely exist in reality. AEM allows us to induce regional flow without such rigid boundaries.
Both properties make AEM extremely well-suited for uncertainty estimation. To facilitate this better (and, frankly, personal curiosity), I have created a Python toolbox which implements a basic AEM routine and provides an in-built Markov Chain Monte Carlo (MCMC) algorithm. My hope is that this toolbox will allow hydrogeologists less familiar with Bayesian statistics (or other environmental scientists unfamiliar with hydrogeological modelling) to incorporate basic groundwater flow uncertainty estimates into their work. This toolbox has a corresponding publication.