Chapter 2 Hydrology: Infiltration Models#
1. Introduction#

Fig. 4 **Figure 2.3 **: Soil Infiltration.#
🌱 Soil Infiltration: Definition, Importance & Applications#
📘 What Is Soil Infiltration?#
Soil infiltration is the process by which surface water—typically from rainfall, snowmelt, or irrigation—enters the soil profile and moves downward through pores and voids. It represents the transition from surface flow to subsurface storage, acting as a gatekeeper for groundwater recharge and surface runoff.
The rate of infiltration depends on:
Soil texture and structure
Moisture content
Vegetation cover
Surface conditions and compaction
Rainfall intensity and duration
📊 Comparative Table: Infiltration Models#
The Horton [Horton, 1940], Green-Ampt [Green and Ampt, 1911], φ-index [Chow et al., 1988], Modified Horton infiltration models [Bauer, 1974] represent a spectrum of approaches—from empirical decay-based formulations and physically grounded soil moisture dynamics to simplified loss-rate thresholds—each offering distinct advantages for estimating infiltration under varying rainfall and soil conditions.
Model Name |
Governing Equation |
Key Parameters |
Typical Use Cases |
Limitations / Assumptions |
---|---|---|---|---|
Horton |
\(( f(t) = f_c + (f_0 - f_c) e^{-kt} \)) |
\(( f_0 \)): initial rate, \(( f_c \)): final rate, \(( k \)): decay |
Urban hydrology, decay of infiltration over time |
Empirical, ignores soil layering |
Green–Ampt |
\(( f(t) = K \left( \frac{\Psi \Delta \theta}{F} + 1 \right) \)) |
\(( K \)): hydraulic conductivity, \(( \Psi \)): suction, \(( \Delta \theta \)): moisture change, \(( F \)): cumulative |
Detailed field modeling, unsaturated infiltration |
Assumes homogeneous soil and distinct wetting front |
SCS I&C |
\(( F(t) = I_a + \phi_c \cdot t \)) |
\(( I_a \)): initial abstraction, \(( \phi_c \)): constant rate |
Lumped rainfall abstraction (e.g. TR-55, NRCS) |
Ignores dynamic soil-water interaction |
Phi-Index |
\(( \phi = \text{constant} \)) |
\(( \phi \)): constant abstraction rate |
Simple runoff estimation for design storms |
Oversimplified, assumes constant abstraction |
Modified Horton |
Includes recovery during dry periods |
Same as Horton, plus recovery terms |
Long-term infiltration analysis |
Added complexity may require calibration |
🧭 Importance in Hydrological Analysis#
🔹 Runoff Estimation#
Infiltration governs how much rainfall is abstracted before contributing to runoff.
Key to SCS-CN, Horton, and Green–Ampt methods.
🔹 Groundwater Recharge#
Direct link to aquifer replenishment.
Influences sustainability in water-scarce regions.
🔹 Flood Mitigation#
Higher infiltration = reduced peak flows and surface water volumes.
Guides stormwater design strategies.
🔹 Soil Conservation#
Minimizes erosion by reducing surface velocity.
Enhances agronomic practices by retaining moisture.
🏗️ Hydrologic Applications#
Model/Analysis Context |
Role of Infiltration |
---|---|
Rainfall–Runoff Modeling |
Abstracts rainfall before surface flow initiates |
Urban Drainage Design |
Informs green infrastructure (e.g. rain gardens, swales) |
Irrigation & Agriculture |
Optimizes water delivery and reduces overland loss |
Watershed Planning |
Assesses land use impact on recharge and runoff |
Flood Routing |
Modulates hydrograph shape and lag time |
Fundamental Literature#
[Horton, 1940], [Green and Ampt, 1911], [Chow et al., 1988],[Bauer, 1974] represent the fundamental spectrum of infiltration modeling approaches in hydrology and soil physics. These works collectively underpin both empirical and physically based methods for estimating infiltration under varying rainfall and soil conditions. [Horton, 1940] introduced an empirical model describing how infiltration capacity decays exponentially over time during a storm, forming the basis for many urban runoff models. [Green and Ampt, 1911] developed a physically based infiltration model using Darcy’s law and moisture front dynamics, suitable for ponded conditions and widely used in engineering applications. [Chow et al., 1988] formalized the φ-index method, a simplified abstraction for estimating average infiltration losses during storm events, often used in design hydrology [Bauer, 1974]proposed modified Horton models, incorporating recovery functions and adjustments for antecedent moisture, improving applicability in variable soil and climate conditions.
2. Simulation#
💧 Overview: Interactive Infiltration Model Simulator#
This Jupyter-based script uses ipywidgets
to create interactive plots for four key infiltration models used in hydrology:
Green–Ampt
Horton
Phi-index
SCS Initial & Constant
⚙️ How It Works#
Inputs:
Sliders: Let users adjust model parameters like hydraulic conductivity (K), suction head (Ψ), decay rate (k), rainfall intensity (P), and abstraction rates.
Time Vector: Simulated over 5 hours to observe infiltration dynamics.
Models & Outputs:
Model |
Equation Structure |
Output |
---|---|---|
Green–Ampt |
Uses soil suction, conductivity, and moisture deficit |
Variable infiltration rate over time |
Horton |
Exponential decay of infiltration capacity |
Infiltration rate vs. time |
Phi-index |
Constant abstraction threshold |
Excess rainfall infiltration |
SCS I&C |
Cumulative abstraction = initial + constant rate |
Total infiltration volume vs. time |
📊 Visualization#
Each function generates a time-series plot of infiltration behavior.
Users interpret curve shapes, peak rates, and rate decay to compare soil/water interactions.
🧠 How to Interpret Results#
Green–Ampt: High suction or low initial infiltration → steep early curve, slows as soil saturates.
Horton: Decay curve shows how infiltration decreases due to surface sealing or saturation.
Phi-index: Flat line if rainfall > φ-index → constant excess infiltration.
SCS: Linear growth—great for estimating cumulative abstraction in design storms.
import numpy as np
import matplotlib.pyplot as plt
from ipywidgets import interact, FloatSlider, fixed
import warnings
warnings.filterwarnings('ignore')
def green_ampt_plot(K, Ψ, Δθ, F0):
time = np.linspace(0.01, 5, 100)
F = F0 + K * time
f_values = [K * ((Ψ * Δθ / Fi) + 1) if Fi > 0 else K for Fi in F]
plt.figure(figsize=(8,5))
plt.plot(time, f_values, label="Green–Ampt")
plt.xlabel("Time [hr]")
plt.ylabel("Infiltration Rate [mm/hr]")
plt.title("Green–Ampt Model")
plt.grid(True)
plt.legend()
plt.show()
def horton_plot(f0, fc, k):
time = np.linspace(0.01, 5, 100)
f_values = fc + (f0 - fc) * np.exp(-k * time)
plt.figure(figsize=(8,5))
plt.plot(time, f_values, label="Horton")
plt.xlabel("Time [hr]")
plt.ylabel("Infiltration Rate [mm/hr]")
plt.title("Horton Model")
plt.grid(True)
plt.legend()
plt.show()
def phi_index_plot(P, φ):
time = np.linspace(0.01, 5, 100)
f_values = [max(P - φ, 0) for _ in time]
plt.figure(figsize=(8,5))
plt.plot(time, f_values, label="Phi-index")
plt.xlabel("Time [hr]")
plt.ylabel("Infiltration Rate [mm/hr]")
plt.title("Phi-index Model")
plt.grid(True)
plt.legend()
plt.show()
def scs_plot(Ia, φc):
time = np.linspace(0.01, 5, 100)
f_values = Ia + φc * time
plt.figure(figsize=(8,5))
plt.plot(time, f_values, label="SCS Initial & Constant")
plt.xlabel("Time [hr]")
plt.ylabel("Cumulative Abstraction [mm]")
plt.title("SCS Model")
plt.grid(True)
plt.legend()
plt.show()
interact(green_ampt_plot,
K=FloatSlider(value=5, min=0.5, max=10, step=0.5, description='K'),
Ψ=FloatSlider(value=100, min=10, max=200, step=10, description='Ψ'),
Δθ=FloatSlider(value=0.2, min=0.05, max=0.5, step=0.05, description='Δθ'),
F0=FloatSlider(value=10, min=0, max=30, step=1, description='F₀'))
interact(horton_plot,
f0=FloatSlider(value=20, min=5, max=40, step=1, description='f₀'),
fc=FloatSlider(value=5, min=0.5, max=20, step=0.5, description='fᶜ'),
k=FloatSlider(value=1.0, min=0.1, max=5, step=0.1, description='k'))
interact(phi_index_plot,
P=FloatSlider(value=15, min=5, max=30, step=1, description='Rainfall'),
φ=FloatSlider(value=7, min=0, max=20, step=1, description='φ-index'))
interact(scs_plot,
Ia=FloatSlider(value=5, min=0, max=20, step=1, description='Ia'),
φc=FloatSlider(value=4, min=1, max=10, step=0.5, description='φc'))
<function __main__.scs_plot(Ia, φc)>
3. Self-Assessment#
🧠 Infiltration Modeling: Conceptual, Reflective & Quiz Questions#
🔍 Conceptual Questions#
Green–Ampt Model#
What physical processes does the Green–Ampt model attempt to simulate?
How do the parameters Ψ (suction head) and Δθ (moisture deficit) influence infiltration rate over time?
Horton Model#
Why does infiltration rate decay exponentially in the Horton formulation?
How do f₀ and fᶜ shape the infiltration curve in different soil types?
Phi-index Method#
What does the φ-index represent conceptually in a storm event?
Under what conditions would the φ-index yield zero infiltration?
SCS Initial & Constant Method#
How does initial abstraction Ia impact the timing and magnitude of runoff?
Why might the SCS method be favored in lumped watershed models?
💭 Self-Reflective Questions#
When using interactive sliders, which parameters felt most sensitive to changes in infiltration behavior?
Reflect on a design case: how did infiltration modeling influence drainage sizing or runoff prediction?
Which model aligns most closely with your field observations in sandy vs. clay soils?
How confident do you feel in explaining the physical meaning of Green–Ampt parameters to learners?
🧪 Quiz Questions#
Green–Ampt#
Q1. Increasing suction head (Ψ) while keeping other parameters constant will generally:
A. Reduce infiltration rate
B. Increase infiltration rate ✅
C. Not affect infiltration
D. Delay surface runoff
Horton#
Q2. The infiltration rate at time zero in Horton model equals:
A. fᶜ
B. f₀ ✅
C. k
D. Rainfall rate
Q3. Horton model is best suited for:
A. Saturated flow
B. Soil moisture redistribution
C. Infiltration decay over time ✅
D. Groundwater recharge estimation
Phi-index#
Q4. If rainfall intensity is 10 mm/hr and φ-index is 12 mm/hr, infiltration rate is:
A. 0 mm/hr ✅
B. 2 mm/hr
C. 10 mm/hr
D. 12 mm/hr
SCS Method#
Q5. The cumulative abstraction after 2 hours with Ia = 5 mm and φc = 4 mm/hr is:
A. 8 mm
B. 9 mm
C. 13 mm ✅
D. 15 mm