Soil Erodibility in GIS

Hi there,
I am a bit confused in creating the soil erodibility map (K) for the SDR model. I’ve checked out the links provided in the user manual for soil maps but it is not clear to me if K is included in these maps or if it needs to be calculated. I also understand because my research is within the U.S. I should use the USDA one but I am also not sure once I am on that site which tool/data to use. From there, I am completely lost. I am a beginner GIS user and first time InVEST user so things are not always so straightforward to me.

I was wondering if someone could explain the steps on how to get the soil erodibility map I need from the data set and to calculate K. Unit conversions and what not I can do but I just am not sure how to get K factors from this soil data and which data I should be using.

Any explanation or information is extremely helpful, thank you in advance!

Edit: I found this K factor map in ArcGIS data online, would this be suitable for the model? (see image)

-Michelle van Hilten

Hi @michelle.vanhilten -

I looked up the layer you referenced from ArcGIS online. It sounds like it was derived from the same underlying data that I’ve used in the US (gNATSTO and gSSURGO). But, it also says this about units: “The values are in units of Micrometers per second (μm/s).” This is odd, since the description explicitly says that this layer is used in the USLE, but the USLE requires different units. And I’m really not sure how to convert micrometers per second to the complicated annual units (ton⋅ha⋅hr⋅(ha⋅MJ⋅mm)−1) that are required.

That said, I’m looking back at my notes about how I derived this layer recently in the US, and was reminded about the eternal problem of K factor units. Sometimes people use imperial units in place of metric units when they’re using the USLE and don’t seem to care. Sometimes no units are listed at all. Case in point, I have not yet found any documentation that explicitly says what the units of K factor are, as derived from either the old tool I used to use (Soil Data Viewer) or the new tool (Soil Data Development Toolbox), or in the underlying metadata for gSSURGO. And people use them all the time in USLE-based analyses. Based on the values the tools return, I have been assuming that the units are imperial, and convert them to metric accordingly. But this may be a naïve assumption!

If you are using the results in a relative way (identifying high/low values, not needing absolute values), then the units might not matter as much, since they still give an indication of whether the soil is more or less erodible. I’m sorry this all just muddies the waters, but it is a long-standing issue, and I don’t work in the US very often.

If you’re using ArcGIS, here are quick instructions I wrote up recently for how to use the Soil Data Development Toolbox, which is what I’d recommend if you want to derive this layer yourself.


Download gNATSGO data itself for whatever state(s) are needed (or CONUS, if working with a larger area, but it’s coarser resolution), from buttons on this page.

Also linked on this page, download “ArcTools for Working with gNATSGO”. Unzip the download, open an ArcMap session and add the Soil Data Development Toolbox to ArcToolbox.

Also linked on this page, look at the document “How to Create Soil Property or Interpretation Grid”. What follows is how I followed this doc to create the Kfactor.

From the gNATSGO geodatabase, add MapunitRaster_10m to the Arc session.

  • Note that this is a huge file (32GB), but if you clip it before creating the soil map, you lose options in the tool interface, so it looks like you need to clip the result instead.

In the ArcGIS toolbox, open gSSURGO Mapping Toolset > Create Soil Map.

  • Map Unit Layer = MapunitRaster_10m
  • SDV Folder = Soil Erosion Factors
  • SCV Attribute = K Factor, Whole Soil
  • Aggregation Method = Dominant Condition (you can play with this)
  • Top Depth = 0cm
  • Bottom Depth = 5cm (play with this too, really we just need the surface, but it’s unclear how far down is recommended to consider)
  • Leave the rest of the settings unchanged (many you won’t be able to change anyway)
  • Run the tool

Export the resulting layer to a TIFF. Clip the result as needed.

The result will have an attribute table, including a Kfact column. Note that (I think - even the SSURGO table metadata doesn’t list units!) these values are in US units, they must be converted to metric for use in SDR. Thus sayeth the User Guide: “multiplication by 0.1317 is needed to convert from US customary units to ton⋅ha⋅hr⋅(ha⋅MJ⋅mm)−1, as detailed in Appendix A of the USDA RUSLE handbook (Renard et al., 1997).”

~ Stacie


Thank you for these really helpful and descriptive instructions. I followed them and was successful in creating a new layer with k factor in the attribute table. I just wanted to double check, in the attribute table there are now 5 columns with k factor, “SDV_Kfact” each with slightly different text following. Does this sound right?

Furthermore, I will now need to cut my map down from OR state to the Willamette Valley and change the projection system and resolution, you mentioned that clipping should be done at a specific time, is it ‘safe’ to go ahead and make these adjustments now?

Thanks in advance.
Kind regards,

Yes, @michelle.vanhilten, that sounds right. There should be a column named something like SDV_KfactWS_DCD_0to5.KFACTWS_DCD, with fractional values like 0.24. Those are the values that I’ve been assuming are in imperial units that need to be converted to metric.

And yes, once the tool has created the Kfact raster, it’s now safe to clip it.

Glad that worked for you!

~ Stacie