Landlab: lowering the barrier for earth-surface process modeling
The sciences of the earth’s surface are evolving rapidly, and new data, discoveries, and ideas continue to fuel the need for new computational models. Numerical models are crucial to the earth-science enterprise because they enable us to explore and visualize quantitative hypotheses, and compare hypotheses with data. Yet the task of building, modifying, and maintaining the necessary software behind earth-surface dynamics models can be a daunting one. To sustain progress, it’s important that computational software be sufficiently flexible and adaptable that it promotes, rather than impedes, the discovery process. To help meet this need, Greg Tucker and a team of colleagues at CIRES, Tulane University, and the University of Washington have created a software library that help scientists rapidly create, explore, modify, and combine two-dimensional numerical models. The Landlab Toolkit (http://landlab.github.io) is a support system for model development that (1) is written in a modern high-level language with a rich set of scientific computing libraries, (2) takes care of common but labor-intensive tasks, such as grid creation and input/output, with a convenient set of functions and data structures, (3) packages useful operations and calculations into reusable components, and (4) provides a simple mechanism for a scientific programmer to combine components. Landlab is written in Python, thereby taking advantage of the rapidly growing popularity of Python as an efficient, high-level programming language for scientific computing. Landlab provides a gridding module that allows a researcher to create and configure a grid in just one or a few lines of code. Grids may be structured (e.g., raster or hexagonal) or unstructured (Delaunay/Voronoi). State variables and other distributed data can be attached to a grid, and staggered-grid numerical schemes are easy to implement. Landlab includes a set of process components written by the development team to model a wide variety of processes. These include, for example, incident solar radiation on terrain, evapotranspiration, overland flow, soil creep, stream network erosion, and flexure of the lithosphere. Landlab aims to foster progress in earth-surface dynamics by helping modelers focus on their science rather than the computer code behind it.