[GRASS-user] Re: stream network from DEM

Thanks Dylan

In ArcInfo, If DEM data is g, do the following:
/*get flow direction, gfdir is the flowdirection grid
gfdir = flowdirection(g)

/*get curvature, gcurv is the curvature grid
gcurv = curvature(g)

/*threshold curvature, gcthresh is thresholded grid of curvature, cells with curvature > 0.03 will be set 1, otherwise will be set to nodata. here using 0.03 as an example
gcthresh = con(gcurv > 0.03, 1)

/*the above grid is a 1 or nodata grid that should represent the streams but may be broken segment, to connect them, do the following
gfacc = flowaccumulation(gfdir,gcthresh)

/*set stream grid to 1 on nodata background
gstrm = con(gfacc > 10, 1)

Is there any other command to calculate flowaccumulation in GRASS which function is the same as FLOWACCUMULATION in ArcInfo?
FLOWACCUMULATION(<dir_grid>, {weight_grid})

------------------------------
Date: Mon, 26 Feb 2007 19:59:05 -0800
From: Dylan Beaudette <dylan.beaudette@gmail.com>
Subject: [GRASS-user] Re: stream network from DEM
To: Xiaoyan Li <xlia@gmu.edu>, grassuser@grass.itc.it
Message-ID: <200702261959.05473.dylan.beaudette@gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

On Sunday 25 February 2007 07:38, Xiaoyan Li wrote:
> hi,Dylan,
>
> I searched the following discusses about flow accumulation
calculations on
> Internet. http://grass.itc.it/pipermail/grassuser/2006-
May/034150.html> http://grass.itc.it/pipermail/grassuser/2006-
February/032744.html
Hi!

Apologies for the late reply. Those messages should have some good
hints on calculating flow accumulation.

> Do you think it is possible to do the same thing in GRASS as
extracting> stream network via detection of curvatures from DEM?

It might be, but I am not the one to tell you how to do it. You
might have to contact some of the developers like Helena for the specifics.

> I tried to do the same using following commands:
> Filling DEM: r.fill.dir
> Calculating tangential curvature: r.slope.aspect
> Thresholding tangential curvature surface: r.mapcalc (?guess)
> Thinning the result grid to get network segments: r.thin
> Run flowaccumulation function with network segments as weight to
> connect stream segments: r.watershed or r.flow or r.terraflow
> Weight to connect stream segments? r.mapcalc (?guess)

Seems like you are on the right track, but again I am not a
hydrologist and do not have a lot of time to investigate further.

> I don't know about hydrology. Someone ask me help to implement
this in
> GRASS. I am in a bit of quandary here:
> How to threshold tangential curvature surface?
> How to weight to connect stream segments?
>

Try asking again, but with a more concise description of a part of
the problem. Simple questions -- easier for more to answer.

Cheers,

--
Dylan Beaudette
Soils and Biogeochemistry Graduate Group
University of California at Davis
530.754.7341

------------------------------

_______________________________________________
grassuser mailing list
grassuser@grass.itc.it
http://grass.itc.it/mailman/listinfo/grassuser

End of grassuser Digest, Vol 10, Issue 54
*****************************************

On 2/27/07 9:02 AM, "Xiaoyan Li" <xlia@gmu.edu> wrote:

Thanks Dylan

In ArcInfo, If DEM data is g, do the following:
/*get flow direction, gfdir is the flowdirection grid
gfdir = flowdirection(g)

=aspect (r.slope.aspect or r.param.scale or calculated from r.mapcalc)

/*get curvature, gcurv is the curvature grid
gcurv = curvature(g)

=profile curvature (r.slope.aspect, or r.param.scale)

/*threshold curvature, gcthresh is thresholded grid of curvature, cells with
curvature > 0.03 will be set 1, otherwise will be set to nodata. here using
0.03 as an example
gcthresh = con(gcurv > 0.03, 1)

do in r.mapcalc, using curvature map from r.slope.aspect/r.param.scale

/*the above grid is a 1 or nodata grid that should represent the streams but
may be broken segment, to connect them, do the following
gfacc = flowaccumulation(gfdir,gcthresh)

Multiple ways of getting flow accumulation (r.terraflow, r.flow,
r.watershed). Choose your algorithm and optimization parameters depending on
your problem.

/*set stream grid to 1 on nodata background
gstrm = con(gfacc > 10, 1)

I'm not sure what the con() function is in this statement. Probably you need
an r.mapcalc statement here.

Is there any other command to calculate flowaccumulation in GRASS which
function is the same as FLOWACCUMULATION in ArcInfo?
FLOWACCUMULATION(<dir_grid>, {weight_grid})

As I indicated above, there are multiple algorithms for calculating flow
accumulation. They are well-documented (as opposed to at least some of the
algorithms in Arc*).

r.watershed also will automatically generate a stream network for you as one
of its output options.

Hope this is helpful

Michael

------------------------------
Date: Mon, 26 Feb 2007 19:59:05 -0800
From: Dylan Beaudette <dylan.beaudette@gmail.com>
Subject: [GRASS-user] Re: stream network from DEM
To: Xiaoyan Li <xlia@gmu.edu>, grassuser@grass.itc.it
Message-ID: <200702261959.05473.dylan.beaudette@gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

On Sunday 25 February 2007 07:38, Xiaoyan Li wrote:

hi,Dylan,

I searched the following discusses about flow accumulation

calculations on

Internet. http://grass.itc.it/pipermail/grassuser/2006-

May/034150.html> http://grass.itc.it/pipermail/grassuser/2006-
February/032744.html
Hi!

Apologies for the late reply. Those messages should have some good
hints on calculating flow accumulation.

Do you think it is possible to do the same thing in GRASS as

extracting> stream network via detection of curvatures from DEM?

It might be, but I am not the one to tell you how to do it. You
might have to contact some of the developers like Helena for the specifics.

I tried to do the same using following commands:
Filling DEM: r.fill.dir
Calculating tangential curvature: r.slope.aspect
Thresholding tangential curvature surface: r.mapcalc (?guess)
Thinning the result grid to get network segments: r.thin
Run flowaccumulation function with network segments as weight to
connect stream segments: r.watershed or r.flow or r.terraflow
Weight to connect stream segments? r.mapcalc (?guess)

Seems like you are on the right track, but again I am not a
hydrologist and do not have a lot of time to investigate further.

I don't know about hydrology. Someone ask me help to implement

this in

GRASS. I am in a bit of quandary here:
How to threshold tangential curvature surface?
How to weight to connect stream segments?

Try asking again, but with a more concise description of a part of
the problem. Simple questions -- easier for more to answer.

Cheers,

--
Dylan Beaudette
Soils and Biogeochemistry Graduate Group
University of California at Davis
530.754.7341

------------------------------

_______________________________________________
grassuser mailing list
grassuser@grass.itc.it
http://grass.itc.it/mailman/listinfo/grassuser

End of grassuser Digest, Vol 10, Issue 54
*****************************************

__________________________________________
Michael Barton, Professor of Anthropology
School of Human Evolution & Social Change
Center for Social Dynamics & Complexity
Arizona State University

phone: 480-965-6213
fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton