Using Python to Design Water-Supply Wells

Vic Kelson

Audience level:


We've been using Python to analyze hydraulic data and design water wells in highly specialized, challenging, water-supply applications for over ten years. This poster will show some examples for innovative groundwater hydraulic analysis, explain how Python is used to do the work, and the open-source codes that support our work.


For groundwater hydrologists, there are many "off-the-shelf" mathematical and computational tools available for use in analyzing field tests, designing wells, and predicting the impacts of wells on nearby water resources, and potentially, contaminated sites. However, water supplies are becoming more scarce -- competition for water in developed areas is a growing challenge, water-quality issues are more and more important, and in more and more cases, we now seek to develop groundwater resources that have very specific challenges. An example is the encroachment of salty water into the aquifers that serve Baton Rouge, LA. Brackish water has been migrating northward from a fault in southern Baton Rouge since the 1960s; now it threatens an important public water-supply well field. While considering an innovative "scavenger well" strategy for removing the salty water and separating it from the overlying fresh water, we used Python to develop a 3D model of flow near the scavenger wells. Our model, based on the open-source Python code TimML, gave us the tools we needed to refine and evaluate the performance of the various design options. Now, the wells are under construction and should be on-line in 2014. We also have developed Python tools for analyzing aquifer tests in settings where the wells are specifically designed to pump water from surface waters. Once we understand our ability to withdraw water from the river, we use a Python tool to design large production wells and then to build input data for water-quality analysis. While our work is related to water development, the poster focuses on a more important question: What do we do when we have a problem that doesn't fit in with an established analysis toolkit? The purpose of this poster is to use our experiences to demonstrate that Python is a uniquely powerful tool for engineering design and analysis in the real world. Since it's a poster session, I anticipate that the most interest in this topic will be from people in business, engineering, and science whose major interest is based on real-world applications, creative problem-solving approaches, and rapid development of analytical tools. Also, folks who are focused on scientific applications (especially students and new Python users); we use all the "usual" Python scientific libraries, plus some that we've crafted ourselves.