Input Variables

Input Variables are:

#variables we are using for Theis Analysis
Q_100 = 100.0   # pumping rate in gpm (min)
Q_200 =200.0 # pumping rate in gpm (max)
r = 10.0  # radius
t_25 = 9125.0    # 9125 days = 25 years 
t_10 = 3650.0    #3650 days = 10 years

#clean up (unit conversions)
T = 173.0 #Transmissivity for 2018 (well test solutions) in ft^2/day corresponding to thickness of 46 ft
T_828 = 828.0 #Transmissivity for 2021 (FOT) in ft^2/day corresponding to thickness of 216
S_9 = 0.0009 #Storativity case 1 (unitless) 
S_3=0.0003 #Storativity case 2 (unitless)
Q = Q_100 * 192.5 #pumping rate converted to ft^3/day
Q_M = Q_200 * 192.5 #pumping rate converted to ft^3/day

The Theis equation is a model for time dependent pumping test interpretation: drawdown

s = drawdown (i.e., decline in hydraulic head associated with pumping) Q = extraction rate K = hydraulic conductivity b = aquifer thickness.

The Theis well function is given by: wellfunction

y = integration variable and u: udef

r = radial distance from the pumping well (idealized as a vertical line source) t = elapsed pumping time Ss = specific storage coefficient for the aquifer.

Spot Check

## W(u)_910 = 1.66e+01
## W(u)_925 = 1.75e+01
## W(u)_310 = 1.77e+01
## W(u)_325 = 1.86e+01
## W(u)_910828 = 1.81e+01
## W(u)_925828 = 1.91e+01
## W(u)_310828 = 1.92e+01
## W(u)_325828 = 2.02e+01
## Drawdown_910 = 1.47e+02 ft
## Drawdown_925 = 1.55e+02 ft
## Drawdown_310 = 1.56e+02 ft
## Drawdown_325 = 1.65e+02 ft
## Drawdown_910828 = 3.36e+01 ft
## Drawdown_925828 = 3.53e+01 ft
## Drawdown_310828 = 3.56e+01 ft
## Drawdown_325828 = 3.73e+01 ft
## Drawdown_910828M = 6.71e+01 ft
## Drawdown_925828M = 7.05e+01 ft
## Drawdown_310828M = 7.12e+01 ft
## Drawdown_325828M = 7.46e+01 ft

Create Data

Creating Data 1. Distance min (rwell) to Distance max (rmax) (in feet!) 2. Input for well function 3. Calculating input in the well function for every value of r ( I think) 3a. Drawdown (ft) 3b. Increase in pressure (drawdown/2.31) (psi)

#1
rwell = 10 # in feet
rmax = 10560
r_vec = np.linspace(rwell,rmax,num=200)
r_vec_mi=r_vec*0.000189394 #feet to miles

#2
u_vec_910 = r_vec**2*S_9/(4*T*t_10)
u_vec_925 = r_vec**2*S_9/(4*T*t_25)
u_vec_310 = r_vec**2*S_3/(4*T*t_10)
u_vec_325 = r_vec**2*S_3/(4*T*t_25)

u_vec_910828 = r_vec**2*S_9/(4*T_828*t_10)
u_vec_925828 = r_vec**2*S_9/(4*T_828*t_25)
u_vec_310828 = r_vec**2*S_3/(4*T_828*t_10)
u_vec_325828 = r_vec**2*S_3/(4*T_828*t_25)

#Drawdown (Q=100 gpm, T=173)
r_drawdown_910 = list(map(lambda u_vec_910: wf.well_fxn(u_vec_910,tol)*Q/(4*T*np.pi),u_vec_910))
r_drawdown_925 = list(map(lambda u_vec_925: wf.well_fxn(u_vec_925,tol)*Q/(4*T*np.pi),u_vec_925))
r_drawdown_310 = list(map(lambda u_vec_310: wf.well_fxn(u_vec_310,tol)*Q/(4*T*np.pi),u_vec_310))
r_drawdown_325 = list(map(lambda u_vec_325: wf.well_fxn(u_vec_325,tol)*Q/(4*T*np.pi),u_vec_325))

#Drawdown(Q=100 gpm, T=828)
r_drawdown_910828 = list(map(lambda u_vec_910828: wf.well_fxn(u_vec_910828,tol)*Q/(4*T_828*np.pi),u_vec_910828))
r_drawdown_925828 = list(map(lambda u_vec_925828: wf.well_fxn(u_vec_925828,tol)*Q/(4*T_828*np.pi),u_vec_925828))
r_drawdown_310828 = list(map(lambda u_vec_310828: wf.well_fxn(u_vec_310828,tol)*Q/(4*T_828*np.pi),u_vec_310828))
r_drawdown_325828 = list(map(lambda u_vec_325828: wf.well_fxn(u_vec_325828,tol)*Q/(4*T_828*np.pi),u_vec_325828))

#Drawdown (Q=200 gpm, T=828)
r_drawdown_910828M = list(map(lambda u_vec_910828: wf.well_fxn(u_vec_910828,tol)*Q_M/(4*T_828*np.pi),u_vec_910828))
r_drawdown_925828M = list(map(lambda u_vec_925828: wf.well_fxn(u_vec_925828,tol)*Q_M/(4*T_828*np.pi),u_vec_925828))
r_drawdown_310828M = list(map(lambda u_vec_310828: wf.well_fxn(u_vec_310828,tol)*Q_M/(4*T_828*np.pi),u_vec_310828))
r_drawdown_325828M = list(map(lambda u_vec_325828: wf.well_fxn(u_vec_325828,tol)*Q_M/(4*T_828*np.pi),u_vec_325828))

#PSI (Q=100 gpm, T=173)
r_psi_910 = list(map(lambda u_vec_910: (wf.well_fxn(u_vec_910,tol)*Q/(4*T*np.pi))/2.31,u_vec_910))
r_psi_925 = list(map(lambda u_vec_925: (wf.well_fxn(u_vec_925,tol)*Q/(4*T*np.pi))/2.31,u_vec_925))
r_psi_310 = list(map(lambda u_vec_310: (wf.well_fxn(u_vec_310,tol)*Q/(4*T*np.pi))/2.31,u_vec_310))
r_psi_325 = list(map(lambda u_vec_325: (wf.well_fxn(u_vec_325,tol)*Q/(4*T*np.pi))/2.31,u_vec_325))

#PSI (Q=100 gpm, T=828)
r_psi_910828 = list(map(lambda u_vec_910828: (wf.well_fxn(u_vec_910828,tol)*Q/(4*T_828*np.pi))/2.31,u_vec_910828))
r_psi_925828 = list(map(lambda u_vec_925828: (wf.well_fxn(u_vec_925828,tol)*Q/(4*T_828*np.pi))/2.31,u_vec_925828))
r_psi_310828 = list(map(lambda u_vec_310828: (wf.well_fxn(u_vec_310828,tol)*Q/(4*T_828*np.pi))/2.31,u_vec_310828))
r_psi_325828 = list(map(lambda u_vec_325828: (wf.well_fxn(u_vec_325828,tol)*Q/(4*T_828*np.pi))/2.31,u_vec_325828))

#PSI (Q=200 gpm, T=828)
r_psi_910828M = list(map(lambda u_vec_910828: (wf.well_fxn(u_vec_910828,tol)*Q_M/(4*T_828*np.pi))/2.31,u_vec_910828))
r_psi_925828M = list(map(lambda u_vec_925828: (wf.well_fxn(u_vec_925828,tol)*Q_M/(4*T_828*np.pi))/2.31,u_vec_925828))
r_psi_310828M = list(map(lambda u_vec_310828: (wf.well_fxn(u_vec_310828,tol)*Q_M/(4*T_828*np.pi))/2.31,u_vec_310828))
r_psi_325828M = list(map(lambda u_vec_325828: (wf.well_fxn(u_vec_325828,tol)*Q_M/(4*T_828*np.pi))/2.31,u_vec_325828))

Save data to CSV

Save data to “TheisExp.CSV”:

#creating CSV

#first create data frome with distance and drawdown scenarios
list_of_tuples = list(zip(r_vec_mi, r_vec, r_drawdown_910,r_drawdown_310,r_drawdown_925,r_drawdown_325,
r_drawdown_910828,r_drawdown_310828,r_drawdown_925828,r_drawdown_325828,
r_drawdown_910828M,r_drawdown_310828M,r_drawdown_925828M,r_drawdown_325828M,
r_psi_910,r_psi_310,r_psi_925,r_psi_325,
r_psi_910828,r_psi_310828,r_psi_925828,r_psi_325828,
r_psi_910828M,r_psi_310828M,r_psi_925828M,r_psi_325828M))
df = pd.DataFrame(list_of_tuples,
                  columns=['distancemi','distanceft', 
                  'drawdown 0.000910173100', 'drawdown 0.000310173100','drawdown 0.000925173100', 'drawdown 0.000325173100',
                  'drawdown 0.000910828100',  'drawdown 0.000310828100', 'drawdown 0.000925828100','drawdown psi 0.000325828100', 
                  'drawdown 0.000910828200', 'drawdown 0.000310828200', 'drawdown 0.000925828200','drawdown 0.000325828200', 
                  'psi 0.000910173100', 'psi 0.000310173100','psi 0.000925173100', 'psi 0.000325173100', 
                  'psi 0.000910828100', 'psi 0.000310828100', 'psi 0.000925828100','psi 0.000325828100',
                  'psi 0.000910828200', 'psi 0.000310828200', 'psi 0.000925828200', 'psi 0.000325828200'])
#then export to csv change name to be descriptive
df.to_csv('Theis2018.csv')

Save data as png figure 10 Y

Static Graph: All Cases, 10 Years

Save data as png figure 25 Y

Static Graph: All Cases, 25 Years

Interactive Graph 10 Y

Interactive Graph: All Cases, 10 Years (Pressure Increase at Nearby Wells [2mi] at 10 Years)

Interactive Graph 25 Y

Interactive Graph: All Cases, 25 Years (Pressure Increase at Nearby Wells [2mi] at 25 Years)