The Pfafstetter Coding System for Watershed Identification

Victor M. Ponce


The Pfafstetter system is a widely accepted methodology for the description of watershed/basin topology. The system describes the regional anatomy of a stream network using a hierarchical arrangement of decimal digits.

Pfafstetter Coding System

Fig. 1  The Pfafstetter coding system for watershed identification
(Click -here- to enlarge).

A Level 0 catchment corresponds to a continental-scale size or, alternatively, one that drains into the ocean. Higher levels represent progressively finer subdivisions of the Level 0 catchment. Theoretically, the system is not limited in the number n of levels. In practice, however, n = 6 to 8 levels are usually sufficient. At each level, each watershed is assigned a specific integer m, varying from m = 0 to 9, based on its location and function within the drainage network.

At each level, watersheds are assigned into three types: (1) basin, (2) interbasin, and (3) internal basin (Table 1). A basin is a watershed that does not have upstream inflow. An interbasin is a watershed that has upstream inflow from other watersheds, either basins or interbasins. An internal basin is a watershed that does not have outflow, i.e., it refers to an endorheic or closed basin.

Table 1.  Subdivision in Pfafstetter Coding System.
No. Type Inflow Outflow
1 Basin NO YES
2 Interbasin YES YES
3 Internal basin YES NO

For each level, from 1 to n, the assignment of Pfafstetter codes is performed as follows:

  1. From the catchment outlet, trace upstream along the main stem, and identify the four (4) tributaries with the largest drainage areas. The watersheds containing these four tributaries are classified as basins and assigned even digits (m = 2, 4, 6, and 8) from downstream to upstream.

  2. The intervening watersheds, i.e., those contributing lateral inflow to the main stem, are classified as interbasins and assigned odd digits (m = 1, 3, 5, and 7) from downstream to upstream.

  3. The last odd digit m = 9 is reserved for the headwater watershed, i.e., that tributary to interbasin 7.

  4. The largest internal basin, if present, is assigned the number m = 0. Other internal basins, if present, are incorporated into neighboring basins or interbasins.

  5. In the unusual case where two basins, say, 2 and 4, drain at the same place, on one side or opposite sides, the interbasin 3 would be considered a null interbasin, of zero area.

Figure 1 shows a 3-level example of the Pfasfstetter coding system. For each level, say Level 3, the assigned digits (XYm) are appended on to the Level 2 code (XY). For instance, watershed 849 is watershed 8 of Level 1 (coarser), watershed 4 of Level 2 (intermediate), and watershed 9 of Level 3 (finer).

Pfafstetter Coding System

Fig. 1  The Pfafstetter coding system for watershed identification (Click -here- to enlarge).


140310