The quality of life depends on the cost of water and energy. Hydrogeology and geology relate to both.
This website (DunnHydroGeo) contains Python programs developed by Darrel Dunn that can support hyrogeology projects, especially projects involved in the development of groundwater resources. Most of the programs are translations of Fortran programs developed many years ago when Fortran was a good choice for scientific computing and Python did not exist. Now Python is a good choice for scientific computing. Python is concise, readable, and powerful. It includes many useful libraries and modules that can be included in a program to increase its capability without adding much code. Python is an interpreted language that is relatively slow, but Python functions that execute slowly can be greatly accelerated by compiling them.
List of Python programs developed by Darrel Dunn and presented in this website followed by their imported modules and their hydrogeology applications:
spcap.py | numpy | Calculates aquifer transmissivity from water well specific capacity.
PYSTEP.py | numpy, math, matplotlib, pandas, sys | Fits lines to water well step test data by least squares and prints the slope and intercept for calculation of transmissivity and well loss coefficient.
PYLAQ.py | numpy, matplotlib, PYLAQ_INP | Generates type curves for leaky aquifer pumping tests and compares them to observed data.
PYWTAQ.py | math, sys, matplotlib, scipy, PYWTAQ_INP.py | Generates type curves for unconfined aquifer pumping tests and compares them to observed data.
FDPY.py | numpy, FDPY_in.py | Simple steady-state, two-dimensional, finite-difference groundwater model.
FDPYJIT.py | numpy, numba.njit, FDPY_in.py | Modification of FDPY.py that uses the JIT compiler to speed execution.
stream_hydrograph.py | numpy, matplotlib, pandas, USGS_data_rtv.py , dataretrieval | Produces a streamflow hydrograph from USGS streamflow data.
hyswap_fdc.py | numpy, hyswap, dataretrieval | Imports USGS streamflow data and plots a flow duration curve.
fdcontour.py | numpy, fdcontour_in.py | Uses Gauss-Sidel iteration to produce an array of values that are the average of the surrounding cells. Known values are input with fdcontour_in. The array of values is contoured with array_contour.py.
Posted July 22, 2026.