# Mark Lake's software repository

I am a Senior Lecturer in Archaeology at the UCL Institute of Archaeology. You can find out more about my research and teaching on my official UCL webpage. This is a repository of software I have written.

## Extensions for GRASS GIS

I have made extensive use of GRASS GIS in my research since 1995, and have taught many students to use GRASS, primarily through the UCL MSc GIS and Spatial Analysis in Archaeology and its successor, the UCL MSc Computational Archaeology: GIS, Data Science and Complexity. In that time I have written a number of modules for GRASS. This page lists current modules and those of enduring interest.

### Current modules for GRASS 7.x

The following are new modules, first publicly released on 10/12/2020, which can be downloaded from here and compiled locally as per these instructions. I am also in the process of making them available as GRASS Addons, at which point it should be possible to install them more easily using the GRASS extension manager.

• v.percolate performs continuum percolation analysis, which is essentially a means of studying the growth of clusters of points over multiple distance thresholds, usually with the aim of identifying 'natural' clustering thresholds. This module has specialised application, so the existing module v.cluster will usually be more appropriate. Read the manual or download the source code. This was written with Theo Brown.
• r.skyline computes the Skyline Index and/or finds the horizon cells in a raster viewshed. The Skyline Index can be used to ascertain whether an object would appear above, on or below the horizon behind it. This must be use in conjunction with r.viewshed (or the older r.los) and offers different functionality to the existing module, r.horizon. Read the manual or download the source code.
• r.bearing.distance finds the bearing and/or straight-line distance from all non-null cells to the specified point. Read the manual or download the source code.

The following is part of the main GRASS 7 release.

• v.build.polylines builds polylines from lines or boundaries. This was updated by Radim Blazek and additional functionality was added by Martin Landa and Markus Metz.

### Legacy code compatible with GRASS release 7

The following compiles cleanly as part of of GRASS release 7, but I have not exhaustively tested its run-time functionality. Nor have I checked that the code conforms to current GRASS programming guidelines.

• r.boxcount calculates the box-counting (fractal) dimension of a binary raster map. Read the manual or download the legacy source code.

### Legacy code not compatible with GRASS release 7

The following is a list of modules which do not currently compile as part of GRASS release 7 and/or have been deprecated for other reasons. The code is provided for users with legacy installations, or as a starting point for update to GRASS 7/8.

• r.cva performs various kinds of cumulative viewshed analysis, including 'total' viewshed analysis. It was available as a GRASS Addon prior to the release of GRASS version 7. The algorithm it used for generating viewsheds is substantially slower than that used in r.viewshed, so today it is preferable to script the generation of cumulative viewsheds with r.viewshed. Benjamin Ducke made substantial contributions to an update of r.cva for GRASS version 5. Read the manual or download the GRASS 5 source code.
• r.rifs generates a raster map and/or graphical image of a fractal specified in terms of a random iterated function system. Read the manual or download the GRASS 4 source code