创建常量栅格数据集
方法一(此方法比较复杂):
/// <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类,此方法极其简单,不贴代码了。