栅格切割,即根据给定的切割线将栅格数据集或影像数据集切割为两部分,分别存储为两个新的数据集。
命名空间:
SuperMap.Analyst.SpatialAnalyst程序集: SuperMap.Analyst.SpatialAnalyst (in SuperMap.Analyst.SpatialAnalyst)
版本: dll
语法
C# |
---|
public static bool Split( Dataset sourceDataset, GeoLine splitLine, Datasource targetDatasource, string targetLeftDatasetName, string targetRightDatasetName ) |
参数
- sourceDataset
- Type: SuperMap.Data..::.Dataset
指定的待切割的数据集。支持栅格数据集和影像数据集。
- splitLine
- Type: SuperMap.Data..::.GeoLine
指定的用于切割数据集的二维线。注意,不支持复杂线对象。
- targetDatasource
- Type: SuperMap.Data..::.Datasource
指定的用于存储结果数据集的数据源。
- targetLeftDatasetName
- Type: System..::.String
指定的位于切割线左侧的结果数据集的名称。
- targetRightDatasetName
- Type: System..::.String
指定的位于切割线右侧的结果数据集的名称。
返回值
一个布尔值,代表是否切割成功。如果成功,返回 true,否则返回 false。备注
当需要将已有栅格数据的一部分作为研究范围,且希望保持原有栅格数据的空间范围时,可以对栅格进行切割。
栅格切割功能根据给定的一条二维线(称为“切割线”)对栅格(影像)数据集进行切割,切割的结果为两个新的栅格(影像)数据集,分别为切割线左侧和右侧的部分。切割线可以是直线、折线或多边形等。
该方法通过判断每一个单元格是位于距离它最近的线段(注意不是线对象)的左侧还是右侧,将该单元格分配到左侧结果数据集或右侧结果数据集,因此对于自相交的线对象,切割的效果可能与预期不符。对于位于数据集范围内部的线对象,同样依据该方式来切割。左侧和右侧是指线段的节点序列方向的左侧和右侧。对于切割线所经过的那些单元格,与栅格裁剪中的“精确裁剪”方式相同,即如果单元格的中心点位于最近线段的左侧(或右侧),则该单元格分配到该侧。
值得注意的是,与栅格裁剪不同,栅格切割得到的两个结果数据集的空间范围与原栅格数据的空间范围一致,无数据的部分被赋予“无值”,而栅格裁剪的结果为一个数据集,并且空间范围即为裁剪出来的区域的范围,比原数据的范围要小。
下图为栅格切割的一个实例。
异常
异常 | 条件 |
---|---|
System..::.ArgumentException | sourceDataset 指定的数据集的类型为矢量。 |