The **Topographic Wetness Index (TWI)** measures how moisture accumulates across a landscape. The formula is:
**TWI = ln(Flow Accumulation / tan(Slope))**
Here's how to calculate it in ArcGIS Pro:
---
### Step 1: Prepare Your DEM
- Make sure your DEM is in a **projected coordinate system** (not geographic/WGS84) so slope and flow calculations are accurate.
- Fill sinks: **Spatial Analyst Tools → Hydrology → Fill**
---
### Step 2: Calculate Flow Accumulation
1. **Flow Direction**: Spatial Analyst → Hydrology → **Flow Direction** (use your filled DEM)
2. **Flow Accumulation**: Spatial Analyst → Hydrology → **Flow Accumulation** (use the flow direction output)
---
### Step 3: Calculate Slope in Radians
1. Go to **Spatial Analyst → Surface → Slope**
2. Set output measurement to **DEGREE**
3. Then convert to radians in Raster Calculator (next step)
---
### Step 4: Raster Calculator Formula
Open **Spatial Analyst Tools → Map Algebra → Raster Calculator** and enter:
```
Ln(("flow_accum" + 1) / Tan("slope_degrees" * 3.14159 / 180))
```
**Key details:**
- `+ 1` is added to flow accumulation to **avoid ln(0)** errors in flat/headwater areas
- Multiply degrees by `π/180` to convert to **radians** before applying Tan
- If slope has zero values, Tan(0) = 0 causes division errors — the `+1` on flow accumulation helps but you may also want to add a small constant to slope: `Tan(("slope" * 3.14159 / 180) + 0.001)`
---
### Step 5: Interpreting Results
|TWI Value|Meaning|
|---|---|
|**Low (~2–4)**|Ridges, well-drained uplands|
|**Medium (~5–8)**|Hillslopes|
|**High (~10+)**|Valley bottoms, wetlands, convergent areas|
---
### Tips & Common Issues
- **Negative or NoData outputs**: Usually caused by zero or negative slope values — add a small offset to slope
- **Resolution matters**: Coarser DEMs produce smoother TWI; finer DEMs capture more detail
- **Normalize the DEM first** if working across large areas with varying terrain
- The `+ 1` on flow accumulation is a common convention but some workflows use `+ 0.001` — results vary slightly