SplashTool 3.0 is available

After about a year since the last release, I’m very excited to announce another major update this time! The installer for SplashTool Version 3.0, as well as the updated installation instructions and procedure description, are now available in the password-protected customer area! Here are the most important new features.

New Calculation of Flow Accumulation

SplashTool has received an updated computational core in both the CPU and GPU variants. The analysis still works on the same principle. Water flows from cell to cell according to the water levels in each iteration step until an approximately stationary state is established. What has changed is the determination of flow accumulation. In old versions, this was determined as a single sum value per cell. For example, if water leaves the cell in the negative X direction (westward), this leads to an increase in flow accumulation just as if water leaves the cell in the positive X direction (eastward). In the new computational core, flow accumulation in the X direction and in the Y direction is balanced separately. Negative values can also occur in magnitude if accumulation occurs in the negative X or Y direction, so that the accumulation rasters provide information about the prevailing direction. In contrast to the previous approach, the total flow accumulation is no longer calculated as the sum of the accumulations in X and Y directions, but as the square root of the sum of the squares of the accumulations in X and Y directions:

flow_xy = (flow_x^2 + flow_y^2)^0.5

This approach corresponds more to a direction-dependent accumulation and leads to more meaningful results, especially for flow paths that run diagonally across the grid and have components in both X and Y directions.

IMPORTANT: This means that the flow accumulation with the new approach is lower than with the old approach, where the values were summed. Likewise, accumulations could “eliminate” each other with the new approach if, for example, water flows in different directions in a grid cell at different iteration steps. Since the accumulation is lower, the change in accumulation is also lower, so the iteration may reach the convergence criterion earlier than before. Please check whether the convergence criterion you have chosen still produces sufficiently stationary results with the new calculation method.

If you want to use the old calculation method for flow accumulation with SplashTool Version 3.0, you can do so without any problems. Simply check the “legacy flowacc” box in the settings.

Postprocessing and Display of Flow Arrows

The new calculation method for flow accumulation makes it possible to create flow arrows after the iteration using a postprocessing algorithm. These flow arrows are created in areas with higher flow accumulation and serve for visualization. The thinning algorithm used for this employs a complex procedure that ensures the flow arrows are displayed where the highest flow accumulations occur. No upsampling or averaging takes place, allowing for appealing visual quality of the thinning. You can define both the threshold of flow accumulation from which arrows should be created, as well as the average distances of the points from each other. Specify multiple values separated by ; to create multiple result datasets. For example:

16, 32, 64

to create three result datasets with average point distances of 16, 32, and 64 meters.

The thinned datasets are exported as ESRI point shapefiles. You can visualize these with an appropriate symbol (for example, an arrow) by defining the attribute field “RICHTUNG” as the rotation field in geographic rotation (0 degrees points north, the angle increases clockwise).

This blog post explains how to visualize the point shapefiles in QGIS or ArcGIS Pro.

An example package with result data and GIS projects for visualizing the flow arrows in QGIS and ArcGIS can be downloaded here.

Release of Graphics Card Memory

The graphics card memory is now released directly after the end of an iteration with the GPU computational core and not only when SplashTool is closed.

Better Consideration of NODATA Definitions in Input GeoTIFs

If an input GeoTIF has a dedicated NODATA value, this is taken into account when reading. Only if no NODATA value is defined is the NODATA threshold defined in the configuration used for determination. All cells smaller than the threshold are interpreted as NODATA. The default value for the NODATA threshold in the new .splashconfig is -88.888 and can be adjusted by the user if necessary. When exporting GeoTIF, NODATA is set to -8.888.888.

Performance of SplashTool 3.0 Compared to Version 2.2

The “legacy computational core” of SplashTool 3.0 is identical in both the calculation approach and performance to the computational core of SplashTool 2.2.

The new GPU computational core is about 3 percent slower due to the somewhat more complex calculation than the old computational core, the CPU computational core is 12% slower. Since more data needs to be processed, about 25% to 30% more RAM is required for CPU and graphics card. Since more output files are written, and due to the postprocessing at the end of the iteration, writing the result data also takes a bit longer.

Due to the improved method for determining accumulation, and the possibility of postprocessing, I recommend accepting the small speed loss if your hardware has sufficient RAM. You benefit from more meaningful results and helpful visualizations.

Scroll to Top