栅格数据重采样,返回结果数据集。
命名空间:
SuperMap.Analyst.SpatialAnalyst程序集: SuperMap.Analyst.SpatialAnalyst (in SuperMap.Analyst.SpatialAnalyst)
版本: dll
语法
C# |
---|
public static Dataset Resample( Dataset sourceDataset, double newCellSize, ResampleMode resampleMode, Datasource targetDatasource, string targetDatasetName ) |
参数
- sourceDataset
- Type: SuperMap.Data..::.Dataset
指定的用于栅格重采样的数据集。支持影像数据集,包括多波段影像。
- newCellSize
- Type: System..::.Double
指定的结果栅格的单元格大小。
- resampleMode
- Type: SuperMap.Analyst.SpatialAnalyst..::.ResampleMode
指定的重采样计算方式。
- targetDatasource
- Type: SuperMap.Data..::.Datasource
指定的存储结果数据集的数据源。
- targetDatasetName
- Type: System..::.String
指定的结果数据集的名称。
返回值
结果数据集。备注
栅格数据经过了配准或纠正、投影等几何操作后,栅格的像元中心位置通常会发生变化,其在输入栅格中的位置不一定是整数的行列号,因此需要根据输出栅格上每个格子在输入栅格中的位置,对输入栅格按一定规则进行重采样,进行栅格值的插值计算,建立新的栅格矩阵。不同分辨率的栅格数据之间进行代数运算时,需要将栅格大小统一到一个指定的分辨率上,此时也需要对栅格进行重采样。
栅格重采样有三种常用方法:最邻近法、双线性内插法和三次卷积法。有关这三种重采样方法较为详细的介绍,请参见 ResampleMode 枚举类型。
下图为采用最邻近法,将单元格大小调整为500(原像元大小为70)的栅格重采样的实例。
示例
以下代码示范了如何进行栅格重采样操作,获取结果数据集。示例将分辨率为 30 的栅格数据重采样为分辨率为 50 的新的栅格数据,使用的重采样方法为最邻近法(ResampleMode.Nearest)。
CopyC#
private Dataset RasterResample(Dataset sourceDataset, Datasource targetDatasource) { //设置结果数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除 String targetDatasetName = "resultResample"; if (targetDatasource.Datasets.Contains(targetDatasetName)) { targetDatasource.Datasets.Delete(targetDatasetName); } //调用栅格重采样方法,并获取结果数据集 Dataset resultDataset = GeneralizeAnalyst.Resample(sourceDataset, 50, ResampleMode.Nearest, targetDatasource, targetDatasetName); return resultDataset; }