In preparing to work with large DEM files, I've been trying to understand the differences between burn, fill, and breach pre-processing methods in terms of the resulting accuracy of stream networks, catchment delineation, etc. The discussion between John Lindsay (@Whiteboxdev) and Richard Barnes (@Richard) regarding performance of depression filling algorithms was excellent.
I am working with several rasters in the order of 1E8 pixels, but have run into unexpectedly long compute times (~1h) using the Whiteboxtools (WBT) breach_depressions_least_cost
function, even downsampled to ~1E6 pixels. I collected a sample of 8 unique DEMs in the order of 1E6 to 1E8 pixels and ran breach depressions using Whiteboxtools and RichDEM (Python libraries). The computation time was comparable (and fast!) for 6 of 8 DEMs, but one result in particular stood out:
It turns out that the corresponding DEM (Haida Gwaii) includes extensive flat areas where the ocean hasn't been trimmed:
I'm taking the step now to create a polygon of the littoral line to avoid unnecessary processing on the ocean (and in general taking care to avoid large bodies of water), but I also created a side-by-side comparison of the magnitude of change comparing the methods (note the limits were set to +/- 10m, while actual changes were substantially greater):
Above-left is a heat map describing the DEM difference between original and WBT, center is original minus RichDEM, and at right is RichDEM minus WBT, where it seems WBT imposes a deep cut across land.
In general, I understand that the appropriate pre-processing steps are a function of the question being asked of the data, and also that less modification of the DEM is preferable, but it is not clear to me if there is some sort of hierarchy or order to pre-processing methods based on the data -- in terms of actual topography, and also in terms of vestigial artifacts of the dem format and processing.
Is there a "best practice", or set of pre-processing diagnostic tests to determine what method is more appropriate? For example, if I am interested in delineating basins accurately and have shape files describing streams at sufficient resolution, is a stream burn generally preferable to a fill/breach? There is some mention of advantages of certain tools over others in Whiteboxtools, but I'm missing the bigger picture.