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 ...
随机推荐
- .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)
阅读目录: 1.需求背景介绍(Model元数据设置项应该与View绑定而非ViewModel) 1.1.确定问题域范围(可以使用DSL管理问题域前提是锁定领域模型) 2.迁移ViewModel设置到外 ...
- WPF DEV控件-ChartControl用法
WPF常用的第三方控件集,DevExpress 下面介绍如何生成Chart界面: <dxc:ChartControl AnimationMode="OnDataChanged" ...
- Markdown:让书写更美好
http://www.jianshu.com/p/17fdcf17bbb4 http://sdutlinux.org/t/218 文档整体解决方案 在自己的服务器上安装GitBook markdo ...
- linux 文件系统结构及命令
1.linux 文件系统结构 / 根目录 root |--mnt/ | |--sdcard/ 挂载点 | |--usb0 | |--cdrom |--home | |--soft01 <- 用 ...
- 关于mysql数据库插入数据,不能插入中文和出现中文乱码问题
首先,推荐一篇博客:http://www.cnblogs.com/sunzn/archive/2013/03/14/2960248.html 当时,我安装完mysql数据库后,新建一个数据库后插入数据 ...
- java设计模式之备忘录模式
备忘录模式 备忘录模式是一种软件设计模式:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态.一听到备忘录这个字的时候想起了小小时打的游 ...
- C#学习笔记-数据的传递以及ToolStripProgressBar
代码: 方法一:窗体的代码-->可以直接通过预设的Click事件来实现控制进度条. public partial class Form1 : Form { public Form1() { In ...
- c++适配器
容器适配器是是标准库中通用的概念,包括容器适配器.迭代器适配器和函数适配器,本质上,适配器是使一种事物的行为类似于另一种事物的的行为的一种机制,容器适配器使一种已经存在的容器类型采用另一种不同的抽象类 ...
- IBM云的商务动作之我见(2):IBM 和 VMware 战略合作推进混合云
本系列文章基于公开信息,对IBM云的近期商务动作比如收购.战略合作.整合等,给出本人的快速分析,仅仅代表本人个人观点,和本人所在的公司和所在的岗位没有任何关系: (1)IBM 收购 Blue Box ...
- jQuery超链接提示,提示跟随鼠标动
功能:实现鼠标移动到一个超链接时,鼠标右下角产生一个提示,并跟谁鼠标移动,知道鼠标离开超链接. 效果: 源码: <!--本案例是鼠标放在超链接上时,鼠标旁边有提示这是个超练级,以及放在图片上时图 ...