You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Landlab is a toolkit for landscape evolution modeling which has recently gained popularity in the community of geomorphologists. It provides its own framework, which is similar in many aspects with the xarray-simlab framework. It has been (and is still) a great source of inspiration for the development of xarray-simlab! The two frameworks differ on some points, though (disclaimer: I explain the differences below within the limits of my understanding of how landlab is designed and implemented):
xarray-simlab is domain-agnostic while landlab (framework and library of components) is applied to landscape evolution. For example, xarray-simlab doesn't provide any feature for setting model grids/meshes while landlab supports a variety of structured or unstructured meshes.
landlab comes with batteries included (i.e., lots of model components), while xarray-simlab only provides the bare-bones framework (model components are implemented in 3rd-party packages).
xarray-simlab's API for setting and running simulations is declarative while landlab's API is more imperative.
In xarray-simlab every variable is declared inside processes, at a unique place, including state variables that are also used in other processes (via references or "foreign variables"), while such shared variables are usually defined outside of landlab components (and redefined inside each component). Landlab relies on standard names for shared variables, while xarray-simlab allows more flexibility.
landlab doesn't seem to automate aspects like workflow dependencies and model inputs, although maybe this could be easily supported?
The text was updated successfully, but these errors were encountered:
Landlab is a toolkit for landscape evolution modeling which has recently gained popularity in the community of geomorphologists. It provides its own framework, which is similar in many aspects with the xarray-simlab framework. It has been (and is still) a great source of inspiration for the development of xarray-simlab! The two frameworks differ on some points, though (disclaimer: I explain the differences below within the limits of my understanding of how landlab is designed and implemented):
xarray-simlab is domain-agnostic while landlab (framework and library of components) is applied to landscape evolution. For example, xarray-simlab doesn't provide any feature for setting model grids/meshes while landlab supports a variety of structured or unstructured meshes.
landlab comes with batteries included (i.e., lots of model components), while xarray-simlab only provides the bare-bones framework (model components are implemented in 3rd-party packages).
xarray-simlab's API for setting and running simulations is declarative while landlab's API is more imperative.
Interfaces of xarray-simlab processes (i.e., Python classes, after Redesign access to variables and their values in Process subclasses #19 based on attrs) are generally more compact and "pythonic" than interfaces of equivalent landlab components (BMI interface).
In xarray-simlab every variable is declared inside processes, at a unique place, including state variables that are also used in other processes (via references or "foreign variables"), while such shared variables are usually defined outside of landlab components (and redefined inside each component). Landlab relies on standard names for shared variables, while xarray-simlab allows more flexibility.
landlab doesn't seem to automate aspects like workflow dependencies and model inputs, although maybe this could be easily supported?
The text was updated successfully, but these errors were encountered: