Machine Learning Supported Groundwater Model Calibration with Modflow, Flopy, PySal and Scikit Learn - Tutorial
/The quality of a groundwater modeling work relies on three factors: The spatio-temporal distribution of observed data, the model construction and calibration and the conclusions made from the predictive simulations. Based on the complexities of the numerical tools, the amount of the parameters involved, the groundwater calibration could be an extreme challenge for beginner, intermediate or advanced modelers with many success and failure cases often accompanied with psychological stress.
Advances on machine learning algorithms need to be coupled with numerical groundwater modeling tools to improve the modeler capability to understand the overall model performance, the correlation between observed and calculated and a best set of parameters that represents the observed conditions of groundwater flow and quality.
We have done a tutorial on a low-level-complexity model with rivers, lakes, recharge and regional groundwater flow done in Model Muse in a previous tutorial. The model was imported as an object in Python with Flopy. A sensibility analysis was done with SALib to assess the response for the object model groundwater flow to a different sample of parameters and a resulting set of parameters and corresponding heads (parameters to heads) were recorded. Then a machine learning regression was performed with Scikit-Learn with the inverse set (heads to parameters) to get the predicted parameters for the observed data. Different error measurements were performed for two model cases to assess the overall quality of the neural network regressor.
WARNING: The use of the machine learning algorithms for model calibration or any other numerical tool is not a substitute to the groundwater modeler criteria. Machine learning is just a tool, and as any human tool should be used in a proper way under the control of our intelligence. Remember that if we use computers as a “black box” for model calibration we are risking the quality of the conclusions and the whole modeling work.
Tutorial
Useful links
Flopy site:
Flopy documentation:
flopy.readthedocs.io/en/3.3.2/
SALib site:
salib.readthedocs.io/en/latest/
Scikit MLP Regressor information:
scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPRegressor.html
Input data
You can download the input data from this link.