Earth Surface Dynamics (May 2020)

Short communication: Landlab v2.0: a software package for Earth surface dynamics

  • K. R. Barnhart,
  • K. R. Barnhart,
  • K. R. Barnhart,
  • E. W. H. Hutton,
  • E. W. H. Hutton,
  • G. E. Tucker,
  • G. E. Tucker,
  • G. E. Tucker,
  • N. M. Gasparini,
  • E. Istanbulluoglu,
  • D. E. J. Hobley,
  • N. J. Lyons,
  • M. Mouchene,
  • S. S. Nudurupati,
  • J. M. Adams,
  • C. Bandaragoda

DOI
https://doi.org/10.5194/esurf-8-379-2020
Journal volume & issue
Vol. 8
pp. 379 – 397

Abstract

Read online

Numerical simulation of the form and characteristics of Earth's surface provides insight into its evolution. Landlab is an open-source Python package that contains modularized elements of numerical models for Earth's surface, thus reducing time required for researchers to create new or reimplement existing models. Landlab contains a gridding engine which represents the model domain as a dual graph of structured quadrilaterals (e.g., raster) or irregular Voronoi polygon–Delaunay triangle mesh (e.g., regular hexagons, radially symmetric meshes, and fully irregular meshes). Landlab also contains components – modular implementations of single physical processes – and a suite of utilities that support numerical methods, input/output, and visualization. This contribution describes package development since version 1.0 and backward-compatibility-breaking changes that necessitate the new major release, version 2.0. Substantial changes include refactoring the grid, improving the component standard interface, dropping Python 2 support, and creating 31 new components – for a total of 58 components in the Landlab package. We describe reasons why many changes were made in order to provide insight for designers of future packages. We conclude by discussing lessons about the dynamics of scientific software development gained from the experience of using, developing, maintaining, and teaching with Landlab.