Python tools for running General Lake Model (GLM) simulations.
GLM is a 1-dimensional lake water balance and stratification model. It can also be coupled with a powerful ecological modelling library to support simulations of lake water quality and ecosystem processes.
GLM is suitable for a wide range of natural and engineered lakes, including shallow (well-mixed) and deep (stratified) systems. The model has been successfully applied to systems from the scale of individual ponds and wetlands to the scale of Great Lakes.
For more information about running GLM, please see the model website's scientific basis description and the GLM workbook.
The GLM model is available as an executable for Linux (Ubuntu), MacOS, and Windows. It is actively developed by the Aquatic EcoDynamics research group at The University of Western Australia.
glm-py provides a series of classes, functions, and data structures that support running GLM simulations, preparing model input data and configurations, and processing model outputs.
Its goal is to make running and deploying GLM in a range of environments easy, e.g., building APIs for web applications or cloud services that use GLM, running batches of GLM simulations on HPCs, and running GLM simulations locally within Python environments such as JupyterLab or QGIS.
Classes that store model parameters and methods that generate .nml
configuration files for running GLM.
Turns simple user descriptions of lake geometries and dimensions into appropriate morphometry parameters.
Tools to convert JSON data to .nml
format data. Useful for handling client requests if GLM is deployed within a web API / REST API.
Classes to handle running GLM simulations and processing output data into CSV, JSON, NetCDF files, or generating a JSON stream to pass onto clients.
Matplotlib-based plotting methods that process and plot GLM's output files.