计算曲率,并返回平均曲率栅格数据集。
命名空间:
SuperMap.Analyst.SpatialAnalyst程序集: SuperMap.Analyst.SpatialAnalyst (in SuperMap.Analyst.SpatialAnalyst)
版本: dll
语法
C# |
---|
public static DatasetGrid CalculateCurvature( DatasetGrid sourceDatasetGrid, double zFactor, Datasource targetDatasource, string averageCurvatureName, string profileCurvatureName, string planCurvatureName ) |
参数
- sourceDatasetGrid
- Type: SuperMap.Data..::.DatasetGrid
指定的的待计算曲率的 DEM 栅格。
- zFactor
- Type: System..::.Double
指定的高程缩放系数。该值是指在 DEM 栅格中,栅格值(Z 坐标,即高程值)相对于 X 和 Y 坐标的单位变换系数。通常有 X,Y,Z 都参加的计算中,需要将高程值乘以一个高程缩放系数,使得三者单位一致。例如,X、Y 方向上的单位是米,而 Z 方向的单位是英尺,由于 1 英尺等于 0.3048 米,则需要指定缩放系数为 0.3048。如果设置为 1.0,表示不缩放。
- targetDatasource
- Type: SuperMap.Data..::.Datasource
指定的存储结果数据集的数据源。
- averageCurvatureName
- Type: System..::.String
指定的平均曲率结果数据集的名称。
- profileCurvatureName
- Type: System..::.String
指定的剖面曲率结果数据集的名称。可选参数,如不需要剖面曲率,此参数可设为null。
- planCurvatureName
- Type: System..::.String
指定的平面曲率结果数据集的名称。可选参数,如不需要平面曲率,此参数可设为null。
返回值
平均曲率栅格数据集。备注
输出结果为地形栅格每个像元的表面曲率,是通过将目标像元与八个相邻像元拟合为二次曲面,再对此拟合曲面求(0,0)位置处的曲率而得。地形曲率是表达地形曲面结构的主要参数之一。
可供选择的输出曲率类型为:剖面曲率(即沿最大斜率方向的曲率)和平面曲率(即垂直于最大斜率方向的曲率)。
新生成的三种曲率数据集都是和原数据集等大且分辨率相同的数据集。
对于全部三种曲率结果,曲率为正说明像元所处的表面向上凸,曲率为负说明像元所处的表面开口朝上凹入,曲率为 0 说明像元所处的表面是平坦的。
曲面的平均曲率Ca、剖面曲率Cp、平面曲率Cc的计算公式分别为:
其中,fx、fy、fxx、fyy、fxy为目标像元e4与八个相邻像元拟合成的二阶曲面的各阶偏导数。它们在e4处的取值如下:
注意:
计算曲率时,要求地形栅格值(即高程值)的单位与 x,y 坐标的单位相同。如果不一致,可通过高程缩放系数(方法中对应 zFactor 参数)来调整。
但注意,当高程值单位与坐标单位间的换算无法通过固定值来调节时,则需要通过其他途径对数据进行处理。最常见的情况之一是 DEM 栅格采用地理坐标系时,单位为度,而高程值单位为米,此时建议对 DEM 栅格进行投影转换,将 x,y 坐标转换为平面坐标。
如果待计算单元格为无值,则计算结果也为无值。需要注意,对于位于栅格数据集边缘的单元格,其 3 × 3 邻域包含了位于数据集范围之外的单元格,对于这些单元格,将使用待计算单元格的高程值来计算,因此,得出的曲率可能比实际要小。对于周围单元格中的无值,也采用相同的方式处理。