An implementation of the Implicit Drainage Area method. An implicit, parallelizable method for calculatingdrainage area. An implementation of the Implicit Drainage Area method (regular and hybrid versions) for calculating drainage area from flow directions using parallel iterative solvers.



Initial contribute: 2021-09-07


Is authorship not correct? Feed back


Method-focused categoriesData-perspectiveGeoinformation analysis

Detailed Description

English {{currentDetailLanguage}} English

IDA formulates the task of determing the drainage area, given flow directions, as a system of implicit equations. This allows the use of iterative solvers, which have the advantages of being parallelizable on distributed memory systems and widely available through libraries such as PETSc.

Using the open source PETSc library (which must be downloaded and installed separately), IDA permits large landscapes to be divided among processors, reducing total runtime and memory requirements per processor.

It is possible to reduce run time with the use of an initial guess of the drainage area. This can either be provided as a file, or use a serial algorithm on each processor to correctly determine the drainage area for the cells that do not receive flow from outside the processor's domain.

The hybrid IDA method, which is enabled with the -onlycrossborder option, uses a serial algorithm to solve for local drainage on each processor, and then only uses the parallel iterative solver to incorporate flow between processor domains. This generally results in a significant reduction in total runtime.

Currently only D8 flow directions are supported. Inputs and outputs are raw binary files.

One of the advantages of IDA is that the number of communication stages, when processors communicate with each other to transfer data from the boundaries of their domains to neighbors, is almost independent of the number of processors. This compares favorably to methods such as ParallelArea, where increasing the number of processors will lead to a larger number of communication stages.

 The algorithm formulates the calculation as a system of linear equations. This system can then be solved with a preconditioned iterative solver. By avoid-

ing the recursive nature of other drainage area algorithms and taking advantage of widely available, paralle-lizable linear solvers, IDA is well adapted for parallel processing. We demonstrate that the IDA algorithm exhibits good scaling to large numbers of processors. This suggests that it is well suited to large, high-resolution data sets. The conventional serial algorithm may be fastest for small data sets, and queue-based parallel algorithms are potentially best suited to modest numbers of processors, but IDA’s continued per-formance improvements even at large numbers of processors suggest that it might be an appropriate method for many-core systems such as large GPU clusters. A hybrid approach, which combines the efficiency of the serial calculation with IDA’s parallel scalability, reduces the problem size at which IDA becomes competitive. The option to provide an initial guess to the iterative solver creates the possibility of reducing the solution time when performing repeated flow routing calculations on similar terrain, such as in numerical landscape evolution models, by using the solution from the previous step as an initial guess. We anticipate that further performance improvements could be obtained through a judicious choice of solver and preconditioner. With a small modification, this method can be used to delineate drainage basins with the same suitability for parallel computation.

Applying the IDA algorithm to the HydroSHEDS 3 arc sec data set, we demonstrate the suitability of this method for processing very large data sets. At such a resolution it is possible to obtain more meaningful val-ues of topographic slope than with coarser grids, which in turn permits more accurate estimates of quanties such as large-scale erosion rates and sediment yields. With drainage area data at a scale that permits meaningful slope calculations, it becomes possible to compare predictions of riverine suspended sediment flux based on slope with predictions based on topographic relief, which is frequently used as a surrogate for slope at coarse spatial resolutions. We show that an empirical model based on drainage area and slope accounts for a larger fraction of the variance in a data set of continental sediment fluxes than a model relying only on drainage area and drainage basin relief. Calculating drainage area at high resolution allows us to apply this relationship to predict average coastal sediment flux for small basins.

For principles and details on the IDA model, see the literature: "IDA: An implicit, parallelizable method for calculating

drainage area".




Alan Richardson (2021). IDA, Model Item, OpenGMS,


Initial contribute : 2021-09-07



Is authorship not correct? Feed back


Last modifier
Yihan Zhang
Last modify time
Modify times
View History

QR Code


{{'; ')}}



Drop the file here, orclick to upload.
Select From My Space
+ add


Cancel Submit
{{htmlJSON.Cancel}} {{htmlJSON.Submit}}
{{htmlJSON.Localizations}} + {{htmlJSON.Add}}
{{ item.label }} {{ item.value }}
{{htmlJSON.Cancel}} {{htmlJSON.Submit}}
名称 别名 {{tag}} +
系列名 版本号 目的 修改内容 创建/修改日期 作者
摘要 详细描述
{{tag}} + 添加关键字
* 时间参考系
* 空间参考系类型 * 空间参考系名称

起始日期 终止日期 进展 开发者
* 是否开源 * 访问方式 * 使用方式 开源协议 * 传输方式 * 获取地址 * 发布日期 * 发布者

编号 目的 修改内容 创建/修改日期 作者

时间分辨率 时间尺度 时间步长 时间范围 空间维度 格网类型 空间分辨率 空间尺度 空间范围
{{tag}} +
* 类型

* 名称 * 描述
示例描述 * 名称 * 类型 * 值/链接 上传

{{htmlJSON.Cancel}} {{htmlJSON.Submit}}
Title Author Date Journal Volume(Issue) Pages Links Doi Operation
{{htmlJSON.Cancel}} {{htmlJSON.Submit}}
{{htmlJSON.Add}} {{htmlJSON.Cancel}}


Authors:  {{articleUploading.authors[0]}}, {{articleUploading.authors[1]}}, {{articleUploading.authors[2]}}, et al.

Journal:   {{articleUploading.journal}}

Date:   {{}}

Page range:   {{articleUploading.pageRange}}

Link:   {{}}

DOI:   {{articleUploading.doi}}

Yes, this is it Cancel

The article {{articleUploading.title}} has been uploaded yet.

{{htmlJSON.Cancel}} {{htmlJSON.Confirm}}