David Lawrence Miller

Other software

A lot of the software I’ve written involves the package Distance, a Windows program for analysing distance sampling data. I’m part of a team of about 5 people around the world who develop the software. My work is mainly on the R components.

Most of my ongoing projects can be found on my github profile. Here is a (rough) list of software I’ve developed or helped develop.

Note that as of December 2022 I am no longer involved in the development of distance sampling-related projects! Please don’t contact me about them!

Distance An R package (not to be confused with the Windows program) that allows one to perform simple distance sampling analyses. This is basically just a more user friendly version of mrds

dsm An R package for spatial modelling of distance sampling data (following the approach of Buckland & Hedley, 2004). As part of my (first) postdoc at CREEM, I re-wrote most of the previous implementation (by Eric Rexstad and Louise Burt) and included new features.

mrds An R package that allows you to perform more complex analyses of distance sampling data (including things like double observer studies, to account for imperfect detection on the transect line). Jeff Laake was the package maintainer until 2014, I took over until 2022, having contributed code since starting on the team in 2005.

mmds An R package for performing distance analyses using mixture model detection functions. This formulation allows you to avoid non-monotonically decreasing detction functions, which usually cause bias in analyses. (The package is based on ideas from this paper by me and Len Thomas.)

msg A way of performing smoothing (using splines in a generalized additive model framework) over a geographical region with a complex shape (for example peninsulae or coastlines). The github page has an example of how to use msg. This is an implementation of the methods I developed as part of my PhD.

soap_checker A small script to check whether a soap film smoother boundary, knots and data make sense.

Other stuff?

Here is a list of other, smaller or sillier software that I’ve worked on…

gltps: R code to run Geodesic Low-rank Thin Plate Spline (GLTPS) models a la Wang, H. and Ranalli, M.G. (2007). Low-rank smoothing splines on complicated domains. Biometrics 63(1), 209–217.

vis.concurvity: visualise concurvity between GAM terms.

beyonce: set of colour palettes for R based on the Beyoncé palettes provided at beyoncepalettes.tumblr.com.

wiggly: animation to visualise derivatives, 2nd derivatives and hence GAM penalties

watchr: an small R script that checks if a (R markdown) file has changed, then knits it.

horse: an R library for taking people’s tweets, generating a 1st order Markov chain and then using this to generate text that looks like their tweets. A minimal example can be found here.

RXMPP: an R library for communicating via the XMPP protocol (using the wocky library). This is useful if you want to get R to tell you your simulations have finished via Google Talk.

fw2dot: quick hack to get the foodweb output into a format compatible with GraphViz. This allows you to nicely plot which functions call each other in an R package.

Contributions to other people’s software

rphylopic: added support to use base graphics for this package (which allows one to add silhouettes of animals to R plots).

stegasaur: added functionality to hide the code that generated a plot in the plot itself to this package (which implements steganography in R).

staRtrek: an R library for accessing information about the TV series Star Trek. Joint work with internetfriends from Twitter.