The Jenson Snap Pour Points tool can be used to move the location of pour points (i.e. outlets used in a watershedding operation) to the nearest stream grid cell within a specified distance. The user must specify the names of the pour point (i.e. outlet) file, the streams raster, and the output file. The pour points file can be either a raster or a vector. If a raster file is specified as the pour point input, it would typically contain a zero or NoData-valued background with individual pour point identifiers specified by non-zero values. Pour point rasters can be created from X, Y, Z text files using the XYZTextToRaster tool. Alternatively, it is possible to create a new blank image using the New Image From Base Raster tool and manually entering outlet cells using the Modify Pixel Values in Active Map Layer tool from the toolbar. Vector pour point files can be created by on-screen digitizing. If the output of the Snap Pour Points tool is to be used with the Watershed tool, the streams raster should be generated using the D8 algorithm. The snap distance, measured in the same units as the XY units of the raster (usually meters), must also be specified. This distance will serve as the search radius placed around each pour point during the search for the nearest stream cell. There is generally little consequence in setting a relatively large search distance because the outlet will be relocated to the nearest stream grid cell within the search window. It is more problematic if this value is set too small, it is likely that some outlet points will not contain any stream cells within the search window. Notice that using this method, if the initial outlet point is located on a stream cell, it will not be moved at all. This is why Jenson's method is superior to the Snap Pour Point (ArcGIS) method.
For a detailed discussion of this technique, and other more sophisticated techniques for adjusting pour point locations used in watershedding operations, please see the following article:
Lindsay JB, Rothwell JJ, and Davies H. 2008. Mapping outlet points used for watershed delineation onto DEM-derived stream networks, Water Resources Research, 44, W08442, doi:10.1029/2007WR006507.
NoData values in the input flow pointer raster are assigned NoData values in the output image. The output raster is of the float data type and categorical data scale.
The following is an example of a Python script that uses this tool:
wd = pluginHost.getWorkingDirectory()
outletsFile = wd + "outlets.shp"
streamsFile = wd + "streams.dep"
outputFile = wd + "output.dep"
snapDist = "1200.0"
args = [outletsFile, streamsFile, outputFile, snapDist]
pluginHost.runPlugin("JensonSnapPourPoints", args, False)
This is a Groovy script also using this tool:
def wd = pluginHost.getWorkingDirectory()
def outletsFile = wd + "outlets.dep"
def streamsFile = wd + "streams.dep"
def outputFile = wd + "output.dep"
def snapDist = "1200.0"
String args = [outletsFile, streamsFile, outputFile, snapDist]
pluginHost.runPlugin("JensonSnapPourPoints", args, false)