Classify Bathymetric High Features¶
This tool classifies each bathymetric high feature into one of these 10 morphology feature types:
|
|
Based on the attibutes calculated using AddAttributes Toolset.
The classification scheme is based on this publication [Dove et al., 2020].
The classification rules largely follow the [Dove et al., 2020] scheme, with some modifications. They are as follows:
1if LengthWidthRatio >= ridge_lwRationT:
2 feature_type = "Ridge"
3elif depthRange >= 1000: # metres
4 feature_type = "Seamount"
5elif depthRange >= meanWidth:
6 feature_type = "Pinnacle"
7elif (profileShape == "Triangle") and ((profileSideSlope == "Moderate") or (profileSideSlope == "Steep")) and (polygonCircularity >= cone_circularityT):
8 feature_type = "Cone"
9elif (profileSlope == "Flat") and (minDepth <= bank_minDepth) and (polygonArea >= bank_areaT):
10 feature_type = "Bank"
11elif (profileSlope == "Flat") and (polygonArea > plateau_areaT) and ((one_profileSideSlope == "Moderate") or (one_profileSideSlope == "Steep")):
12 feature_type = "Plateau"
13elif depthRange >= 500: # metres
14 if profileShape == "Regular":
15 feature_type = "Knoll"
16 else:
17 feature_type = "Hill"
18elif (depthRange <= hummock_depthRangeT) and (polygonArea <= hummock_areaT):
19 feature_type = "Hummock"
20else:
21 feature_type = "Mound"
Where:
LengthWidthRatio is the LengthWidthRatio attribute
depthRange is the depthRange attribute
meanWidth is the mean_width attribute
profileSlope is evaluated either from the profile_top_SlopeClass attribute when the profileShape is not Triangle or from the profile_side_SlopeClass attribute when the profileShape is Triangle or from the combination of both attributes
profileSideSlope is the profile_side_SlopeClass attribute
minDepth is the minDepth attribute
profileShape is the profileShape attribute
polygonCircularity is the Cirularity attribute
polygonArea is the Shape_Area attribute.
Note that a range of default values have been set for those threshold values.
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/ClassificationFeature.pyt")
7
8env.workspace = 'C:/semi_automation_tools/testSampleCode/Gifford.gdb'
9env.overwriteOutput = True
10
11# specify input and output parameters of the tool
12inFeat = 'test_BH'
13ridge_LWR = 5.0
14bank_MD = 200.0 # in meters
15bank_areaT = 1.0 # in km2
16plateau_areaT = 100.0 # in km2
17hummock_DR = 10.0 # in meters
18hummock_areaT = 1000.0 # in m2
19cone_C = 0.75
20
21### execute the tool with default parameters
22##arcpy.ClassifyFeatures.Classify_Bathymetric_High_Features_Tool(inFeat)
23# execute the tool with user-defined parameters
24arcpy.ClassifyFeatures.Classify_Bathymetric_High_Features_Tool(inFeat,ridge_LWR,bank_MD,bank_areaT,plateau_areaT,hummock_DR,hummock_areaT,cone_C)