Delineating subwatersheds based on size without a defined pour point- HELP

4323
9
08-30-2011 06:24 AM
Labels (1)
PatriciaIngelido
New Contributor
Hi- I know this is a broad questions, but I was wondering if there is a way to create subwatersheds starting at the most upstream location and define the subwatersheds based on an area for example 25 acres rather then specific pour points. I have worked on doing it the opposite way when you have a point you delinate your drainage upstream. But now this is converse, getting the pour point and the drainage based on an area.

So basically I want to break down an exsisting watershed into smaller subwatershed that are 25 acres in size.

Thank you so much in advance for any suggestions.
Tags (2)
0 Kudos
9 Replies
LornaMurison
Occasional Contributor
I can't think of a way of doing this beyond trial-and-error...
0 Kudos
MattMead
New Contributor III
As Lady_Jane said, its most likely going to be trial and error.  If you are in the US, the USGS has the stream stats application for a very quick drainage area delineation.  Only down side is that it is limited to points on a stream so if you are trying to break your watershed up before it reaches the stream you are out of luck.  Also, the quality of the data will depend on the state I think.  Indiana for example has a 10m DEM as the base terrain data while Ohio may use something more or less detailed(I only know Indiana).

The app can be found here: http://water.usgs.gov/osw/streamstats/ssonline.html

Just zoom to the area you are interested in and select a blue dot.
0 Kudos
MarkBoucher
Occasional Contributor III
pingelid,

It seems like you could use the flow accumulation grid somehow to do this.

I tried to look at the one I'm working on using the "unique values" symbology. I removed all the values and then tried to add values. I have a 10'x10' grid so 25 acres  = 10890 grids. I tried to add multiples of 10890, but only rarely did I see an exact multiple. It was time consuming and I could see that I wasn't going to get what I wanted early on.

The USGS tool might be useful, but not if you need the results in your specific dataset on you desk top.

In the Arc Hydro workflow, there is a point where, before the stream definition, you ask it to start the stream only at a certain number of cells. I set the value at 10890 (25 acres) and ran the whole Arc Hydro workflow to AdjointCatchement step. Then used the Point Delineation tool and checked. Sure enough, when I delineate a watershed at the upstream end of of the drainage lines, I get really close to 25 acres.

So, this would take a while, but you could:
* run the process up through stream definition and then once you have the fac grid use 25 acres, 50, 100, 125, etc. worth of grid cells to produce several str grids (str25, str50, etc)
* convert the strs to lines using Conversion Tools > From Raster > Raster to Polyline.
* Place (snap) batch points at the upstream ends of the stream networks (this would be much easier than stopping at the str grids and visually trying to place the points on the grid cells).
* Run batch subwatershed delineation on the points.

It seems it would take some patience to place the points, but you could use model builder create automate the creation of str25, str50, etc. grids and convert them to polylines.Then, after you manually place the batch points, you could do the subwatershed delineation in one operation.

If there was tool to place the points a the upstream ends of the str's polylilnes automatically that would allow automation of the whole process. Maybe someone could write a script to place a point at the high value grid cells of the str grids (?).

FYI - I tried this to the 25 and 50 acre level. The results were mixed. I got mostly 25 acre watersheds, did get some larger, up to 39 acres.

It seems that the stream segmentation function may have some logic in it where it allows a watershed to be larger when there is a certain condition. I can see this when two small watershed branches come together and each subwatershed is smaller than the desired starting stream size, but when they come together, combined they are larger. At this point, I think it would start the stream at the confluence.

Let us know what works out in the end.
0 Kudos
LornaMurison
Occasional Contributor
Good idea Mark,
Couldn't you use raster calculator to convert all the flow accumulation values of the value you are looking for to a 1 or something, then convert that grid to points.
Let's say you want 25 acres, with a 10m resolution grid that is roughly 4,047 cells.  So use the raster calculator CON function to convert all flow accumulation cells with a value of around 4,047 to 1.  Then convert that grid to points.
There you would have your pour points, and none of the ones that occur at a confluence producing a larger watershed.
No need to play around with stream definition either.
0 Kudos
MarkBoucher
Occasional Contributor III
I tried using your idea with my project.

The result was it identified only 3 points out of the more than 2 dozen that it should have. I checked one of the upstream grids cells that my method identified. That point had 11301 cells in its fac grid where I wanted to have 10890. Identifying the fac grids around it revealed that they all had less than 10890, but when they accumulated at that grid cell, the next grid cell downstream for both of them, they had 11301.

So the Con() function may not locate all the points. After going through this, I almost certain that you will not be able to delineate watersheds with any specific area. You can come close, but can't do it perfectly.
0 Kudos
LornaMurison
Occasional Contributor
Wouldn't that just mean that it is impossible to delineate a 25acre (if that's what you were going for) watershed at that particular area?  Maybe there are only 3 possibilities if you need to be that specific.  The con() could be used on a broader range of values if you don't need to be that specific.
0 Kudos
MarkBoucher
Occasional Contributor III
I think I understand your point, Lady_Jane. Correct me if you think I'm missing it.

If you put a broader range of values in the con() function, I suspect you will get a "cloud" of points that you would have to sort through thus not making the job any easier than other ways already discussed.
0 Kudos
LornaMurison
Occasional Contributor
You're right.
So it's either, get exactly the area you are looking for, or spend the time to manually sort through the points and/or streams like you suggested above.
0 Kudos
DarrenMcCormick
New Contributor
Delineating watersheds by size can be done.... I have automated this task with a Python script (ArcGIS 9.3). As someone suggested, you need to use the flow accumulation grid to accomplish this task, along with the flow direction grid for the extent.

The GUI for the script I created requires the user enter a size threshold with padding that defines the size of watersheds that will be delineated. For example, specifying 1 sq km watersheds, plus or minus 30% would yield watersheds spread across the data extent that range in size between 0.7 and 1.3 sq km. A set of points is generated along each link in the drainage network, as illustrated in the attached graphic. Remaining steps:

1) Accumulation values get attached to the points
2) Links within the drainage network are assigned a unique id
2) Set of points (0.7 to 1.3 sq km) are assigned the link id for which they are associated with
2) Points within lakes are deleted
3) Points with median accumulation value for each unique link id is selected and used as a pour point to delineate watersheds

The government organization I work with operates on a policy of keeping atleast one version behind the latest release of ArcGIS. We are expecting to get ArcGIS 10 soon - this will require me to update my python script to work with this version.
0 Kudos