This may be better for Engineering? Not sure.

Background: Previously I have downloaded SSURGO soil data for the state of Pennsylvania by downloading each county and merging the shapefiles. I then combined the mapunit and muaggatt tables and joined them with the spatial data based on the soil name (e.g. "GbC", "WhB"). I use this to create thematic maps of Farmland classification and Hydric conditions programmatically using arcpy.

Goal: Now I would like to do the same to create thematic maps of Hydrologic Soil Classification. It looks like the appropriate table is comp.txt however this table doesn't appear to have a similar soil name field.

Question: Has anyone done this before? That is, linked SSURGO soil spatial data to appropriate tables to display Hydrologic Soil Classification? Or does anyone have guidance on any pathways that would be best to look into?

As pointed out in the answer to the question linked below, some have used PostgreSQL to connect to GIS, (would be fantastic) but I have no experience using databases and I can't find any descriptions of how exactly to do this. Can I download the entire NRCS SSURGO database?


The Soil Data Viewer from the NRCS makes querying single attributes from SSURGO data relatively easy.

  • 1
    I remember trying to use this once and had issues. But after getting the latest version and newer soil data, it seems to work beautifully! Now I can create the statewide dataset to use with arcpy. Thanks for reminding me about this tool! For anyone else using the tool, don't forget to connect the database to the tables first using Access.
    – RossV
    Apr 29 '15 at 17:49

I use the Gridded Soil Survey Geographic (gSSURGO) by State data provided by Geospatial data gateway. Two Geodatabases are provided with the download (gSSURGO_PA.gdb, valu_fy2016.gdb) along with a User Guide on how to use the data.

Inside the gSSURGO_PA.gdb you will find a raster called "MapunitRaster_PA_10m" and a featurclass called "Map Unit Polydons - PA". Both items have 'mukey' fields in their attribute tables to join data to.

Inside the valu_fy2016.gdb there is a table called "valu1". The field that governs hydric ratings is called pwsl1pomu. Simply join the field to either the raster or polygon based on the 'mukey' fields. The metadata for the 'pwsl1pomu' field is as follows:

"Potential Wetland Soil Landscapes" (PWSL) is expressed as the percentage of the map unit that meets the PWSL criteria. The hydric rating (soil component variable “hydricrating”) is an indicator of wet soils. For version 1 (pwsl1), those soil components that meet the following criteria are tagged as PWSL and their comppct_r values are summed for each map unit. Soil components with hydricrating = 'YES' are considered PWSL. Soil components with hydricrating = “NO” are not PWSL. Soil components with hydricrating = 'UNRANKED' are tested using other attributes, and will be considered PWSL if any of the following conditions are met: drainagecl = 'Poorly drained' or 'Very poorly drained' or the localphase or the otherph data fields contain any of the phrases "drained" or "undrained" or "channeled" or "protected" or "ponded" or "flooded". If these criteria do not determine the PWSL for a component and hydricrating = 'UNRANKED', then the map unit will be classified as PWSL if the map unit name contains any of the phrases "drained" or "undrained" or "channeled" or "protected" or "ponded" or "flooded". For version 1 (pwsl1), waterbodies are identified as "999" when map unit names match a list of terms that identify water or intermittent water or map units have a sum of the comppct_r for "Water" that is 80% or greater. NULL values are presented where data are incomplete or not available.


Use mukey to link the soils, not musym(the soil's name).

If you are having continued problems, contact the specific state's NRCS State Soil Scientist for the assistance. They will have someone on staff that can help with more specific questions.

When we make Hydrological group soil maps, we don't use the break downs from the Web Soil Survey(WSS). We redefine them into less broad breakdowns. WSS is nice, but too general.

  • Thanks KoS. Instead of joining with mukey I am going to use the Soil Data Viewer and export the shapefiles for each county. Can you elaborate on "less broad breakdowns" I use the WSS to get the soil groups for us in hydrological calculations which are required for land development submissions.
    – RossV
    May 1 '15 at 15:14
  • I can't get into specifics since I'm not a soils scientist.
    – KoS
    May 1 '15 at 15:35
  • 1
    I can't edit my previous comment. But whenever I made maps for guys, our assistant soil scientists always goes in and tweaks the categories. Basically, the categories that are "default", our guys don't like them, fine them too board. So, for our state, we break them down even farther. For your purpose, what's in SDV is probably more than fine. It's a difference between general users of the data and more advance users like soil scientists.
    – KoS
    May 1 '15 at 15:51
  • Yep, I think the general classifications are fine for my purposes, but that's very interesting though. Something to discuss with one of our soils experts at some point. Thanks!
    – RossV
    May 1 '15 at 15:57

Although using the Soil Data Viewer is great. I was able to figure out how to accomplish what I originally set out to do. This document was a good resource. Extracting Soil Orders From STATSGO

Instead of getting soil orders I wanted hydrologic groups. I used some python to combine all of the comp.txt files for the state of pennsylvania. I then brought this into excel and sorted by mukey (column 108) and then by percent (descending).

As explained in the document, this is necessary because each mukey is split into multiple rows, each representing some percent of the map unit. I want to get the hydrologic soil group (column 80) for the dominant percentage. So sorting descending puts the highest percent for each group on top. I then use the remove duplicates tool and this keeps the first entry which is what I want.

I can now use this table to do a join with the PA soil map based on mukey

One note to keep in mind is that there are a limited number of map units who have equal parts as dominant (25% is the highest percent for two or three different soil types within that map unit). I just picked one.


MUKEY is your join column. Use a dominant component sql on the Soil Data Access site

select m.mukey, hydgrp
from legend l
inner join mapunit m on l.lkey=m.lkey and areasymbol like 'PA%'
inner join component c on m.mukey=c.mukey and c.cokey = (SELECT TOP 1 component.cokey FROM component WHERE component.mukey=m.mukey ORDER BY component.comppct_r DESC)
ORDER by mukey

Import the results into your GIS session, then join to the spatial.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.