Abstract
Abstract. 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.
Highlights
Landlab is a Python package to support the creation of numerical models in Earth surface dynamics
Numerical modeling is especially important for Earth surface dynamics because of the timescale mismatch between human observation and system evolution
We found the presence of ∗args and ∗∗kwds in the run_one_step problematic because it complicated wrapping components with a Basic Model Interface (BMI; Peckham et al, 2013; Hutton and Piper, 2020a) for use with the Python Modeling Tool (PyMT; Hutton and Piper, 2020b)
Summary
Landlab is a Python package to support the creation of numerical models in Earth surface dynamics. Landlab is an open-source Python-language package that provides the common elements of infrastructure needed to support the creation of new models. Based on experience using and developing with Landlab, the development team identified changes to Landlab that were not backwards compatible, indicating a major release was necessary to convey to Landlab users to expect substantial changes This motivated the creation of Landlab v2.0, the focus of this contribution. A new major version was needed to support (a) backward-compatibility-breaking changes associated with refactoring core data structures and (b) removal of support below Python version 3 The scope of this contribution is to review the core concepts that underpin Landlab’s design We will not present detailed description of the use of the software, discuss numerical methods, or review the literature that supports each process implemented in Landlab. Methods and supporting literature can be found in key publications introducing each component (see Sect. 5), and guidance on software usage can be found on the Landlab website
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.