栅格数据查找替换。
命名空间:
SuperMap.Analyst.SpatialAnalyst程序集: SuperMap.Analyst.SpatialAnalyst (in SuperMap.Analyst.SpatialAnalyst)
版本: dll
语法
C# |
---|
public static DatasetGrid Replace( DatasetGrid sourceDataset, Dictionary<double, double> replaceTable, Datasource targetDatasource, string targetDatasetName ) |
参数
- sourceDataset
- Type: SuperMap.Data..::.DatasetGrid
指定的待操作的栅格数据集。
- replaceTable
- Type: System.Collections.Generic..::.Dictionary<(Of <(Double, Double>)>)
指定的查找表,用于确定查找替换对应关系,是一个字典对象,其键代表源栅格值,值代表结果栅格值。
- targetDatasource
- Type: SuperMap.Data..::.Datasource
指定的用于存储结果数据集的数据源。
- targetDatasetName
- Type: System..::.String
指定的结果栅格数据集的名称。
返回值
进行查找替换操作后的结果栅格数据集。备注
该功能根据查找表,将待操作栅格的某些值替换为新的值,结果为一个新的栅格数据集,源栅格不会被修改。查找表用于记录待操作栅格的值和替换值的对应关系。该方法要求传入一个字典(Dictionary)对象,字典的键为原值,即源栅格数据集的栅格值,字典的值为对应的替换值,即期望得到的结果栅格数据集的栅格值。
下图为栅格查找替换的示意图,假设源栅格的无值的值为 -9999。注意,无值的值不一定都是 -9999,可以通过 DatasetGrid 的 NoValue 属性获取或设置。
注意:
- 当源栅格的像素类型(PixelFormat)为整型时,替换值为包含小数位的数值时,最终替换结果将是替换值的整数部分;
- 当替换值超出源栅格像素类型的值域时,替换结果将不正确。
示例
CopyC#
private void ReplaceExample(Datasource datasource) { //获取待进行查找替换的栅格数据集 DatasetGrid sourceGrid = datasource.Datasets["Grid"] as DatasetGrid; //制作查找表 Dictionary<Double, Double> repalceTable = new Dictionary<Double, Double>(); Double noValue = sourceGrid.NoValue; repalceTable.Add(0, noValue); repalceTable.Add(7, 10); repalceTable.Add(12, 19.3); repalceTable.Add(21.5,16); repalceTable.Add(noValue,30); //进行查找替换,获取结果栅格 DatasetGrid resultGrid = GeneralizeAnalyst.Replace(sourceGrid, repalceTable, datasource, "NewGrid"); }