TPI CI Tool Bathymetric Low¶
This tool maps bathymetric low features from bathymetry data using a combination of Topographic Position Index (TPI) [Weiss, 2001] and Convergence Index (CI) [Thommeret et al., 2010] method. Negative TPI usually indicates bathymetric low location. Negative CI usually indicates location of convergence (or bathymetric low).
The followings are the key steps of this tool:
Calculate the Aspect raster from the input bathymetry raster
Calculate CI from the Aspect raster
Calculate TPI from the input bathymetry raster using the TPI Circle Radius parameter
Calculate the CI threshold using equation (1), where c is the CI STD Scale parameter, mean_CI and STD_CI are the mean and standard deviation statistics of the CI raster. The CI threshold should always have a negative value
(1)¶\[CI\_threshold = mean\_CI - c * STD\_CI\]Calculate the TPI threshold using equation (2), where c is the TPI STD Scale parameter, mean_TPI and STD_TPI are the mean and standard deviation statistics of the TPI raster. The TPI threshold should always have a negative value
(2)¶\[TPI\_threshold = mean\_TPI - c * STD\_TPI\]Select the first set of areas that have CI values smaller than the CI threshold
Select the second set of areas that have TPI values smaller than the TPI threshold
Mosaic the two sets of areas together to form a set of bathymetric low features
Remove the polygons with areas smaller than the Area Threshold parameter to obtain the final set of bathymetric low features as output
The TPI radius should be large enough to capture the largest bathymetric low features in the dataset. For example, for a 5m resolution bathymetry raster, a radius of 50 cells should be used to capture any bathymetric low features that is smaller than 500m in length. Users should also experiment the TPI STD Scale, the CI STD Scale and the Area Threshold parameters to obtain an optimal output solution.
1from arcpy import env
2from arcpy.sa import *
3arcpy.CheckOutExtension("Spatial")
4
5# import the python toolbox
6arcpy.ImportToolbox("C:/semi_automation_tools/User_Guide/Tools/BathymetricLow.pyt")
7
8env.workspace = 'C:/semi_automation_tools/testSampleCode/Gifford.gdb'
9env.overwriteOutput = True
10
11# specify input and output parameters of the tool
12inBathy = 'gifford_bathy'
13outTPI = 'gifford_tpi10'
14outCI = 'gifford_ci'
15outFeat = 'tpi10_1std_ci_1std_300000m2_BL'
16areaT = '300000 SquareMeters'
17tpiRadius = 10
18tpiSTD = 1.0
19ciSTD = 1.0
20tempWorkspace = 'C:/Users/u56061/Documents/ArcGIS/Projects/UserGuide/UserGuide.gdb'
21tempFolder = 'C:/semi_automation_tools/temp4'
22# execute the tool
23arcpy.BathymetricLow.TPI_CI_Low_Tool(inBathy,outTPI,outCI,outFeat,areaT,tpiRadius,tpiSTD,ciSTD,tempWorkspace,tempFolder)