1.算法功能简介

反距离权重 (IDW) 插值使用一组采样点的线性权重组合来确定像元值。权重是一种反距离函数。进行插值处理的表面应当是具有局部因变量的表面。此方法假定所映射的变量因受到与其采样位置间的距离的影响而减小。例如,为分析零售网点而对购电消费者的表面进行插值处理时,在较远位置购电影响较小,这是因为人们更倾向于在家附近购物。

根据给定的控制点对和控制点的位移矢量(方向和距离),实现图像每一个像素点的位移。反距离加权插值的方法是通过得到每一个像素点和选定控制点对的逼近关系,以及相对应的权重关系,求得像素点相对应的变化关系,逼近函数可以理解为对像素点p的影响程度,而权重函数则可以看成是对距离的权重,距离越远,权重越小。

PIE支持算法功能的执行,下面对反距离权重算法功能进行介绍。

2.算法功能实现说明

2.1. 实现步骤

第一步

算法参数设置

第二步

算法执行

第三步

结果显示

2.2. 算法参数

C#算法DLL

PIE.CommonAlgo.dll

C#算法名称

PIE.CommonAlgo. InverseDistanceInterpolationAlgo

参数结构体

InverseDistanceInterpolationInfo_Exchange_Info

参数说明

m_dCellSize

double

像元大小

m_nHeight

int

输出栅格高度

m_nWidth

int

输出栅格宽度

m_pInputFeatDs

IFeatureDataset

输入要素数据集

m_pOutputRasterDs

IRasterDataset

输出栅格数据集

m_sOutRasterFilePath

string

输出栅格路径

m_sOutRasterType

string

输出栅格类型

m_ZFieldIndex

int

选择字段索引

2.3. 示例代码

数据路径

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

视频路径

百度云盘地址下/PIE视频教程/10.算法调用/实用工具/反距离权重算.avi

示例代码

          /// <summary>
/// 反距离权重测试
/// </summary>
private void Test_InverseDistanceInterpolation()
{
#region 1参数设置
string filePath = @"D:\\data\\China\\省会城市.shp";
IFeatureDataset fDataset = DatasetFactory.OpenDataset(filePath, OpenMode.ReadOnly) as IFeatureDataset;
PIE.CommonAlgo.InverseDistanceInterpolationInfo_Exchange_Info info = new InverseDistanceInterpolationInfo_Exchange_Info();
info.m_pInputFeatDs = fDataset;
info.m_sOutRasterType = "GTIFF";
info.m_sOutRasterFilePath = @"D:\\temp\\省会城市反距离权重测试.tiff";
info.m_ZFieldIndex = ;
info.m_nWidth = ;
info.m_dCellSize = fDataset.GetExtent().GetWidth() / info.m_nWidth;
info.m_dSearchMaxDis = ;
info.m_nSearchPoints = ;
#endregion
//2、算法执行
PIE.CommonAlgo.InverseDistanceInterpolationAlgo algo = new InverseDistanceInterpolationAlgo();
algo.Params = info;
algo.Execute();
//3、结果显示
ILayer layer = LayerFactory.CreateDefaultLayer(info.m_sOutRasterFilePath);
if (layer == null)
{
MessageBox.Show("执行失败");
return;
}
m_HookHelper.FocusMap.AddLayer(layer);
m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
(fDataset as IDisposable).Dispose();
fDataset = null;
}

2.4. 示例截图

PIE SDK反距离权重插值算法的更多相关文章

  1. [原创.数据可视化系列之十三]idw反距离权重插值算法的javascript代码实现

    图形渲染中,idw反距离权重插值算法是一个应用非常广泛的方法,但是js实现的比较少,目前实现一个: //idw算法 //输入[[x:0,y:0,v:0],[x:0,y:0,v:0],[x:0,y:0, ...

  2. 反距离权重插值inverse distance weighting,IDW

    反距离权重 (IDW) 插值显式假设:彼此距离较近的事物要比彼此距离较远的事物更相似.当为任何未测量的位置预测值时,反距离权重法会采用预测位置周围的测量值.与距离预测位置较远的测量值相比,距离预测位置 ...

  3. PIE SDK 文章目录索引

    1.PIE SDK介绍 1.1.  PIE软件介绍 1.2.  PIE SDK介绍 1.3.  PIE支持项目介绍 1.4.  PIE.NET-SDK插件式二次开发介绍 1.5.  PIE.NET-S ...

  4. PIE SDK Command&&Tool工具命令一览表

    PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls ...

  5. PIE SDK 距离分类和最大似然分类

       1.算法功能简介 监督分类,也叫训练场地法.训练分类法,是遥感图像分类的一种,用被确认类别的样本像元去识别其他未知类别像元的过程.监督分类算法有平行算法.平行六面体法.最小距离法.最大似然法.马 ...

  6. PIE SDK栅格增强控制

    1. 功能简介 亮度是指发光体(反光体)表面发光(反光)强弱的物理量:对比度指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量:透明度是描述光线透过的程度 栅格数据增强控制主要是通过对亮 ...

  7. PIE SDK K-Means分类

    1.算法功能简介 K-Means 算法的基本思想是:以空间中 k 个点为中心进行聚类,对最靠近他们的对象归类.通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果. 算法首先随机从数据集中选 ...

  8. PIE SDK神经网络聚类

    1.算法功能简介 神经网络是模仿人脑神经系统的组成方式与思维过程而构成的信息处理系统,具有非线性.自学性.容错性.联想记忆和可以训练性等特点.在神经网络中,知识和信息的传递是由神经元的相互连接来实现的 ...

  9. PIE SDK地图平移校正

    地图平移校正,当加载两幅空间参考一样的影像,其中一幅影像有点偏移,这时就以另一幅影像为基准将其进行平移校正,然后保存,再次加载就不会出现偏移了. 下面来介绍下实现的主要代码: 首先通过选中目录树中的要 ...

随机推荐

  1. UML类之间的关系

    原文:http://www.cnblogs.com/me115/p/4092632.html 下面详细介绍这六种关系: 类之间的关系 泛化关系(generalization) 类的继承结构表现在UML ...

  2. 编写高质量代码改善C#程序的157个建议——建议30:使用LINQ取代集合中的比较器和迭代器

    建议30:使用LINQ取代集合中的比较器和迭代器 LINQ提供了类似于SQL的语法来实现遍历.筛选与投影集合的功能. static void Main(string[] args) { List< ...

  3. LibreOJ 6003 魔术球 (最大流)

    题解:每次加入两个点,对于和为平方数的两个值所对应的点建边,反正网络流可以跑残量网络,所以就没有什么关系了…… 代码如下: #include<cmath> #include<queu ...

  4. java學習書

    轉載 成为Java顶尖程序员 ,看这11本书就够了 以下是我推荐给Java开发者们的一些值得一看的好书.但是这些书里面并没有Java基础.Java教程之类的书,不是我不推荐,而是离我自己学习 Java ...

  5. vs2017安装后自动应用许可证

    Vs2017专业版 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\StorePI ...

  6. Kotlin 函数

    至于什么函数,在计算机里面就是一个密闭的执行程序的代码块(个人理解) 我们先来看看什么是函数 fun main(agrs : Array<String>) { println(" ...

  7. jstack应用-查找CPU飚高的原因

    场景 在系统上线后,经常会遇到运维的同学跑过来说:“这次发版后,cpu线程使用率到一场,到100%了”.这时候不要慌,可以使用堆转储来分析到底是哪个线程引起的. 查找元凶 发现pid=17850的进程 ...

  8. python中局部变量和全局变量

    局部变量,就是在函数内部定义的变量 不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响 局部变量的作用,为了临时保存数据需要在函数 在函数外边定义的变量叫做全局变量 全局变量能够在所有 ...

  9. ASP.NET Core 一个Json返回类

    很多时候(如Ajax)我们需要从Web应用中得到标准的反馈以便进行数据分析. 为此,我将各类返回标准化封装,客户端将统一得到 JSON:[{"status":200,"m ...

  10. javascript中构造器(函数)的__proto__与prototype初探

    背景:最近没什么需求,快要闲出屁了,所以重温了一下js的原型,结果大有收获,且偶然看到Snandy大神的<JavaScript中__proto__与prototype的关系> 这篇文章,感 ...