General steps to create watershed boundary in ArcGIS Spatial Analyst?

Here are the general steps involved in creating a watershed boundary.

  1. You need to work with a raster DEM, not vector contours. This means that you have two options; you can either try to interpolate your contours or you can look for an existing raster DEM of the study area. Most of the interpolation methods contained within ArcGIS's interpolation toolbox are really intended to work with points rather than contour lines. You're right that the Topo to Raster tool is one interpolation routine that was specifically designed to work with contour lines and stream lines to create a hydrologically corrected DEM. If this is the route you decide to go, Topo to Raster is probably your best bet. However, depending on the necessary resolution (scale) and extent of the study area, you might be able to find an already existing DEM that would be suitable for application and therefore skip the interpolation step entirely. One common DEM data source that people commonly use for this type of application is the SRTM dataset. In the US, this is a 30 m resolution DEM covering the entire territory. Outside of the US it is 90 m resolution.

  2. Once you have your raster DEM you must make sure that it is hydrologically pre-processed. The interpolation method will generally introduce numerous artifact topographic depressions and possibly even flat areas. These are problematic because the grid cells contained in these features have no downslope neighbours, which is the whole basis for DEM flow-path routing. So you need to remove artefact depressions and flat areas from a DEM before performing flow analysis. In Spatial Analyst, your only option for this step is the Fill tool, although those who know me know that I much prefer depression breaching methods over filling.

  3. You then need to create a raster grid containing the information about flow directions, i.e. for each grid cell, which of it's eight neighbours does any water within the cell get directed towards. For this step you use the Flow Direction tool, which is based on the D8 flow algorithm. While the D8 algorithm is the most basic method for performing DEM based flow path analysis, it is appropriate for your application of watershed delineation (see here). Importantly, you must input the hydrologically corrected DEM from step 2 into the Flow Direction tool.

  4. Once you've created your flow direction grid (pointer) you can input it into the Flow Accumulation tool. This grid, again based on the D8 flow algorithm, will measure the size of the upslope area for each grid cell. While the flow direction grid isn't much to look at, the flow accumulation grid is a digital work of art. In particular, the grid cells with high flow accumulation will correspond nicely with streams and valley bottoms.

  5. Define your outlet cell, or what ESRI like to call a Pour Point. This is essentially the lowest point in your watershed; the point at the bottom to which all flow is directed. In the flow accumulation raster, an outlet is likely to correspond with a high-valued cell. You may get your pour point(s) in one of several ways. Perhaps you have GPS points of particularly areas of interest (e.g. a hydromet station where discharge and water quality are being monitored). Perhaps you want to extract the watershed for a particular tributary of a stream network, in which case you want the point directly above the confluence of your tributary of interest with the stream network. In this case, you would likely digitize your point of interest (pour point) from a vector stream network into a pour point vector file.

  6. Before you extract your watershed, you must ensure that your pour point coincides with the 'digital stream', i.e. the flowpath of high flow accumulation values in the flow accumulation raster. Even if your pour point falls off the digital stream by one grid cell, your extracted watershed will be extremely small, what I call a stub watershed (see here). So you need to use the Snap Pour Point to relocate the pour point onto the digital flowpath. You'll need to input that flow accumulation grid from step 4 here. Also, if you read that blog I linked to above, you'll see that I am not a fan of the Snap Pour Point tool, but using Spatial Analyst, it is your only option. In particular, you will need to be careful when using this tool if your pour point is anywhere near a confluence in a stream network because it is likely going to relocate the point downstream of the confluence and your extracted watershed will be much larger than you expect.

  7. Finally, you can use the Watershed tool to extract the watershed polygon(s) for the pour point(s). Afterwards, you may want to convert this raster watersheds to vectors so that you can overlay them nicely with other data.

It's a bit of an involved workflow but it is important that each step be completed properly otherwise you're very unlikely to get a satisfactory watershed at the end.