AE栅格计算——创建常量栅格数据集

创建常量栅格数据集

方法一(此方法比较复杂):

/// <summary>
/// 创建常量栅格数据集
/// </summary>
/// <param name="inputData">输入模板数据(支持IRasterDataset、IRasterBand、IRaster)</param>
/// <param name="pValue">栅格像素值</param>
/// <param name="FullName">存储路径(包含.afr后缀!!)</param>
/// <returns></returns>
private IGeoDataset GetConstantDataset(object inputData, object pValue, string FullName)
{
    // 实例化IdentityFunction对象
    // 此对象用于从输入数据里提取信息
    IRasterFunction identFunction = new IdentityFunctionClass();
    identFunction.Bind(inputData);

    // 实例化ConstantFunctionArguments对象
    IConstantFunctionArguments rasterFunctionArguments = new ConstantFunctionArgumentsClass();
    // 设置填充栅格的像素值
    rasterFunctionArguments.Constant = pValue;
    // 使用IdentityFunction对象中的栅格信息
    rasterFunctionArguments.RasterInfo = identFunction.RasterInfo;

    // 实例化ConstantFunction对象(IRasterFunction接口)
    IRasterFunction rasterFunction = new ConstantFunctionClass();
    // 实例化FunctionRasterDataset对象(IFunctionRasterDataset接口)
    IFunctionRasterDataset functionRasterDataset = new FunctionRasterDatasetClass();
    // 为FunctionRasterDataset创建Name对象
    IFunctionRasterDatasetName functionRasterDatasetName = new FunctionRasterDatasetNameClass();
    // 为新生成的数据集指定存储路径
    functionRasterDatasetName.FullName = FullName;
    functionRasterDataset.FullName = functionRasterDatasetName as IName;
    // 使用rasterFunction和rasterFunctionArguments初始化新的FunctionRasterDataset
    functionRasterDataset.Init(rasterFunction, rasterFunctionArguments);

    return functionRasterDataset as IGeoDataset;           
}

 方法二:

使用RasterMakerOp类,此方法极其简单,不贴代码了。

原文地址:https://www.cnblogs.com/songqingguo/p/12725671.html