dtarb / TauDEM

Terrain Analysis Using Digital Elevation Models (TauDEM) software for hydrologic terrain analysis and channel network extraction.
http://hydrology.usu.edu/taudem
Other
228 stars 116 forks source link

Is there any plan to include DInf flow direction in the streamnet computation? #177

Closed WindingWinter closed 6 years ago

WindingWinter commented 6 years ago

Referring to StreamNet documentation here.

StreamNet -fel <felfile> -p <pfile> -ad8 <ad8file> -src <srcfile> -ord <ordfile> -tree <treefile> -coord<coordfile> -net <netfile> [ -netlyr netlayername] [ -o <outletfile>] [ -lyrname <layer name>] [ -lyrno <layer number>] -w <wfile> [ -sw]

pfile: Input D8 flow directions grid 'p'

srcfile: Input stream raster grid 'src'

ordfile: Output grid of channel network Strahler order 'ord'

ad8file: Input grid with D8 contributing area 'ad8'

It seems that StreamNet only supports D8 flow direction, any plans to support D-Infinity flow direction?

dtarb commented 6 years ago

Fundamentally we do not have a way to represent stream networks as objects that diverge or spread out. The model for stream networks is a binary tree with links that represent stream segments. Stream segments are constructed as paths from cell to cell to cell following D8 flow directions down from source cells. If Dinfinity was used these paths would need to diverge or split, and fundamentally be represented differently. There are options here, e.g. admitting polygon area regions that have width into the representation of stream networks or, allowing diverging, e.g. braided flow paths. Details for doing this have not been worked out, thus there are no plans in place for using Dinfinity to map stream networks.

@nsoonhui is there a use case or need you have that requires something different than D8.

WindingWinter commented 6 years ago

Yes there is.

I am thinking about doing watershed analysis on highly developed urban area, involving a lot of flat areas. So for this purpose I think D8 may not be suitable because all the flow goes into one cell only. Is DInfinity a better choice?

Or is there a better algorithm for this?

dtarb commented 6 years ago

I think DInfinity is better when the flow is dispersed across a surface, but when flow concentrates into channels D8 is better. Flat areas are challenging because elevation does not inform where water will flow and both approaches have trouble. You will need to evaluate which seems to represent the actual situation better in the case you are working on. I do not think there is a general rule.

WindingWinter commented 6 years ago

David, is there any pointer on how is this done, for some specific flat surface ?

dtarb commented 6 years ago

I do not have a good pointer. You may need some sort of model that represents shallow water flow equations and directs flow according to hydraulic gradient rather than topographic gradient.