AE开发实现GP工具IDW
IDW——空间插值

IDW(Inverse Distance Weighted)是一种常用而简便的空间插值方法,它以插值点与样本点间的距离为权重进行加权平均,离插值点越近的样本点赋予的权重越大。 设平面上分布一系列离散点,已知其坐标和值为Xi,Yi, Zi (i =1,2,…,n)通过距离加权值求z 点值,则z值见右上图公式。 IDW通过对邻近区域的每个采样点值平均运算获得内插单元。这一方法要求离散点均匀分布,并且密度程度足以满足在分析中反映局部表面变化。 IDW在ArcGIS里具体实现过程: 1)单击Spatial Analyst 下拉箭头,单击Interpolate to Raster,在一级菜单中单击Inverse Distance Weighted命令,打开IDW对话框。 2)单击Input points下拉箭头,选择参加内插计算的点数据集。 3)单击Z value field下拉箭头, 选择参加内插计算的字段名称。 4)在Power文本框中输入的IDW幂值。 5)单击Search radius type下拉箭头,选择搜索半径类型。 6)用Use barriers polylines选择河流、湖泊、水库等中断线文件,限制插值计算。 7)用Output cell size控制输出结果的栅格大小。 8)用Output raster文本框输入结果文件名称。
不直接调用GP:
IRasterLayer rl = new RasterLayerClass();
double cellsize = 0.001; ////设置越小效率越低
IGeoDataset fdataset = pFeaclsSHP as IGeoDataset; ////IDW的范围图层,图层图形外面的不处理
IDistanceOp2 distance = new RasterDistanceOpClass();
IInterpolationOp pInterpolationOp = new RasterInterpolationOpClass();
IRasterAnalysisEnvironment envir = pInterpolationOp as IRasterAnalysisEnvironment;
object extent = (object)fdataset.Extent;
object missing = System.Reflection.Missing.Value;
envir.SetExtent(esriRasterEnvSettingEnum.esriRasterEnvValue, ref extent, ref missing);
object cell = (System.Object)cellsize;
envir.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref cell);
envir.Mask = fdataset;
object barrier = System.Reflection.Missing.Value;
IFeatureClassDescriptor pFCDescriptor;
pFCDescriptor = new FeatureClassDescriptorClass();
pFCDescriptor.Create(feacls, null, "Z"); ////feacls是点图层,Z是点图层的Z字段
IGeoDataset rasDataset = pInterpolationOp.IDW(pFCDescriptor as IGeoDataset, , pRadius, ref barrier);
rl.CreateFromRaster(rasDataset as IRaster);
调用GP:
发现调用GP时无法实现按照指定的图形形状裁剪,并且需要设置一个临时路径,此路径不能已存在,否则不处理,所以不推荐。
IRasterLayer rl = new RasterLayerClass();
string idwpath = Application.StartupPath + "\\IDW";
ESRI.ArcGIS.Geoprocessor.Geoprocessor gp = new ESRI.ArcGIS.Geoprocessor.Geoprocessor();
ESRI.ArcGIS.SpatialAnalystTools.Idw pIDW = new ESRI.ArcGIS.SpatialAnalystTools.Idw(pFeaLyr, "Z", idwpath);
pIDW.in_barrier_polyline_features = pFeaLyrShp;
pIDW.power = ;
pIDW.cell_size = cellsize;
IGeoProcessorResult results = (IGeoProcessorResult)gp.Execute(pIDW, null);
rl.CreateFromFilePath(idwpath);
AE开发实现GP工具IDW的更多相关文章
- AE开发中栅格图层实现分级渲染
GP工具IDW执行后,生成的栅格图层是黑白二色,需要手动进行分级渲染,似乎不是所有栅格图层都可以进行分级渲染,注意异常处理.注意ARCMAP中是有颜色的,无需自己处理. IRasterClassify ...
- ArcGIS Engine开发中利用GP工具时常出现的错误
在用GP工具的时候常常会碰到这个错误: 调用 GP 对 COM 组件的调用返回了错误 HRESULT E_FAIL 解决方案: 这种情况一般有两种可能. 1.AE程序的license的级别不够. 2. ...
- 利用C#与AE调用GP工具
转自原文 利用C#与AE调用GP工具 第一,首先要明确自己需要调用arctoolbox里面的什么工具,实现什么样的功能. 第三,编写command或tool工具,编写自己要的功能工具. 1)首先创建一 ...
- AE调用GP工具的方法(转)
第一,首先要明确自己需要调用arctoolbox里面的什么工具,实现什么样的功能. 第二,按照需求看看在arctoolbox工具中是怎么实现功能的,然后确定需要的数据源. 第三,编写command或t ...
- 利用AE编写切图工具的一些探讨
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 这周利用晚上在家时间研究了下如何使用AE来开发切图工具.最初 ...
- AE开发使用内存图层
AE开发中,有时需要从磁盘中读取一些文件信息如坐标点转为图层并进行分析,此过程并不需要坐标点入库之类的操作,就可以创建一个内存图层解决问题.创建内存图层需要用到InMemoryWorkspaceFac ...
- AE开发概念辨析
樱木 原文 AE开发之概念辨析2,AE开发涉及相关概念,AE开发相关概念 1 AE中的类库 AE总共包括了21个子库,分别是SYSTEM,SYSTEMUI,GEOMETRY,DISPLAY,SERVE ...
- c# 调用ArcEngine的GP工具
转自原文c# 调用ArcEngine的GP工具,AE调用GP工具 IAoInitialize m_AoInitialize = new AoInitializeClass(); esriLicense ...
- AE开发能否实现TOC Control里添加多个Data Frame
问题: 在ArcMap中,菜单Insert下Data Frame,可以在TOC中增加Data Frame,在MapControl或者PageLayoutControl下都可以正常显示多个Data Fr ...
随机推荐
- 【转】jquery 中scrollTop在Firefox下不起作用
原文链接:http://stackoverflow.com/questions/8149155/animate-scrolltop-not-working-in-firefox Animate scr ...
- sql server几种读写分离方案的比较
在生产环境中我们经常会遇到这种情况: 前端的oltp业务很繁忙,但是需要对这些运营数据进行olap,为了不影响前端正常业务,所以需要将数据库进行读写分离. 这里我将几种可以用来进行读写分离的方案总结一 ...
- 从微软下载安装Windows10
如果你需要安装或重新安装 Windows 10,可以通过此页面上的工具,使用 U 盘或 DVD 创建你自己的安装介质. 开始之前 确保你具有以下内容: Internet 连接(可能产生 Interne ...
- 【小白的CFD之旅】16 流程
那天听了小牛师兄关于CFD应用的四种境界的说法后,小白发现自己连第一种境界都算不上,自己对于CFD还只是停留在做了少数几个案例的基础上,可以说是对其一无所知.不过小白不是那种遇到挫折就退缩的人,他决定 ...
- 帆软报表FineReport中数据连接之Jboss配置JNDI连接
使用sqlsever 2000数据库数据源来做实例讲解,帆软报表FineReport数据连接中Jboss配置JNDI大概的过程和WEBSPHERE以及WEBLOGIC基本相同,用JDBC连接数据库制作 ...
- 利用firebug调试功能辅助了解闭包和this
算一算,有段时间没写博客. 上午的时候翻看以前收藏的一个系列博文<深入理解javascript原型和闭包>, 讲闭包那节:http://www.cnblogs.com/wangfupeng ...
- kmeans算法实践
这几天学习了无监督学习聚类算法Kmeans,这是聚类中非常简单的一个算法,它的算法思想与监督学习算法KNN(K近邻算法)的理论基础一样都是利用了节点之间的距离度量,不同之处在于KNN是利用了有标签的数 ...
- BZOJ1026: [SCOI2009]windy数[数位DP]
1026: [SCOI2009]windy数 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 6346 Solved: 2831[Submit][Sta ...
- POJ2677 Tour[DP 状态规定]
Tour Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4307 Accepted: 1894 Description ...
- org.hibernate.HibernateException: No Session found for current thread
spring.springmvc和hibernate整合 在sessionFactory.getCurrentSession()时,出现以下异常 No Session found for curren ...