The ArcGIS.com Soil Atlas Group provides access to soil data, services, and applications. In addition to other resources, the group currently contains 17 dynamic services derived from the National Resource Conservation Service’s Soil Survey Geographic Database (SSURGO).
SSURGO provides a vast array of information about soils in the United States. These data are stored in over 60 tables that provide information at three basic levels – map units, soil components, and soil horizons. Map unit polygons are the geographic unit associated with the SSURGO tables. Each map unit polygon has an “MUKEY” that connects it to a record in the map unit table.

Map unit polygons provide the basic geographic unit of the SSURGO dataset.
Records in the map unit table are associated with one or more records in the component table. Each component is associated with one or more records in the horizon table and each record in the horizon table represents one soil horizon for its associated component.

The map unit is the basic geographic element of the SSURGO database. Each map unit is associated with one or more components and each component is associated with one or more horizons.
With a few exceptions, the other tables in the SSURGO dataset are linked to the map unit, component, or horizon tables through the key fields MUKEY, COKEY or CHKEY.
Mapping some SSURGO fields is relatively straight forward. For example, the map unit table contains fields that can be mapped by joining the map unit polygons and the map unit table. Similarly, the map unit aggregated attribute table (MUAGGATT) provides nearly 40 fields that can be directly joined to the map unit polygons using the MUKEY field.
Our first efforts to provide direct access to the more challenging tables in SSURGO dataset have involved the component table. In order to map data from the component table, the 1-to-many relationship with the map unit polygons must be flattened to 1-to-1. For numeric fields (e.g. slope_r, elev_r), the most straightforward way to aggregate components for each map unit is to calculate the weighted average of each component. Each component has a field (comppct_r) that contains its relative proportion in the associated map unit allowing the calculation of a weighted average for each map unit.
We recently added the SSURGO Component Weighted Average tool to the Hydro Resource Center that calculates weighted average for numeric fields in the SSURGO Component Table. The script tool, build using Python and ArcGIS 10.0 takes three inputs:
- A list of component table fields to process separated by semicolons
- A path to a geodatabase containing two tables – “component” and “mapunit”
- A path to an output folder or geodatabase
For each component field in the input list of fields, the script tool makes an output table using the name of the field. The script then iterates through the records in the Map Unit table selecting the components associated with each one. The script multiplies the value of each component by the proportion of that component in the map unit and then sums the product for each map unit. Because the components of some map units do not sum to 100%, the script divides the sum of values by the sum of the proportion field. The final weighted average value and MUKEY for the map unit are then written to the output table.

An example of an output table created using the SSURGO Weighted Average script tool. The script uses the component field as the output table name (e.g. map_r.dbf ) and adds fields and values for MUKEY and the weighted average of the selected field for all components in each map unit.
Note that input fields must be a numeric type (float, double, short integer, long integer) and that the two data tables (map unit and component) must both be in the same geodatabase.
To find the tool, please check out the Hydro Resource Center Script Gallery.
For more information, comments, and to share ideas contact Richard Nauman (RNauman@esri.com) or Michael Dangermond (MDangermond@esri.com).
Citation
Soil Survey Staff, Natural Resources Conservation Service, United States Department of Agriculture. Soil Survey Geographic (SSURGO) Database for [Survey Area, State]. Available online at http://soildatamart.nrcs.usda.gov.
Special thanks to NRCS for providing SSURGO data.