PIE SDK克里金插值法

 

1.算法功能简介

    克里金插值法基于一般最小二乘法的随机插值技术没用方差图作为权重函数,被应用于任何点数据估计其在地表上分布的现象,被称为空间自协方差最佳插值法,是一种最优内插法也是一种最常用的空间插值算法,例如地质学中的地下水位和土壤湿度的采样;环境科学研究中的大气污染(例如臭氧)和土壤污染物的研究;以及大气科学中的近地面风场、气温、降水等的单点观测。

 

    PIE支持算法功能的执行,下面对等值线生成算法功能进行介绍。

2.算法功能实现说明

2.1. 实现步骤

第一步

算法参数设置

第二步

算法执行

第三步

结果显示

2.2. 算法参数

C#算法DLL

PIE.CommonAlgo.dll

C#算法名称

PIE.CommonAlgo. KrigingInterpolationAlgo

参数结构体

KrigingInterpolation_Exchange_Info

参数说明

CellSize

double

像元大小

FieldIndex

Int

字段索引

Height

Int

输出栅格高

Width

int

输出栅格宽度

InputFeatureDataset

IFeatureDataset

输入数据集

OutputRasterDataset

IRasterDataset

输出数据集

OutputRasterFilePath

string

输出的栅格数据文件路径(*.tif;*.tiff) 【输出信息】

OutputRasterType

string

输出栅格类型

SearchMaxDis

double

搜索最大距离

SearchPoints

int

搜索点数

2.3. 示例代码

数据路径

百度云盘地址下/PIE示例数据/矢量数据/Shape/省会城市.shp

视频路径

百度云盘地址下/PIE视频教程/10.算法调用/实用工具/克里金插值算.avi

示例代码

 1          /// <summary>
 2         /// 克里金插值算法测试
 3         /// </summary>
 4         private void Test_KrigingInterpolationAlgo()
 5         {
 6             #region 1、参数设置
 7             string strFileName = @"D:\data\China\省会城市.shp";
 8             IFeatureDataset fDataset = PIE.DataSource.DatasetFactory.OpenFeatureDataset(strFileName);
 9             if (fDataset.GetGeomType() != GeometryType.GeometryPoint) return;
10             KrigingInterpolation_Exchange_Info info = new KrigingInterpolation_Exchange_Info();
11             info.InputFeatureDataset = fDataset;
12             info.FieldIndex = 1;
13             info.SearchPoints = 20;
14             info.OutputRasterFilePath = @"D:\temp\省会城市克里金插值测试.tiff";
15             info.OutputRasterType = "GTIFF";
16             info.Width = 1000;
17             info.CellSize = fDataset.GetExtent().GetWidth() / info.Width;
18             //info.CellSize = fDataset.GetExtent().GetWidth() / 100;
19             #endregion
20             //2、算法执行
21             PIE.CommonAlgo.KrigingInterpolationAlgo alog = new KrigingInterpolationAlgo();
22             alog.Params = info;
23             bool result = alog.Execute();
24             int errCode = -1;
25             string errMsg = string.Empty;
26             alog.GetErrorInfo(ref errCode, ref errMsg);
27             //3、结果显示
28             ILayer layer = LayerFactory.CreateDefaultLayer(info.OutputRasterFilePath);
29             if (layer == null)
30             {
31                 MessageBox.Show("执行失败");
32                 return;
33             }       
34             m_HookHelper.FocusMap.AddLayer(layer);     m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
35             (fDataset as IDisposable).Dispose();
36             fDataset = null;
37         }
View Code

2.4. 示例截图

 

 

原文地址:https://www.cnblogs.com/PIESat/p/10150796.html