克里金插值及栅格渲染

1、首先写一个栅格渲染的方法:

步骤:1计算立方图 2创建色带 3渲染

//渲染
        private void Renders(IRasterLayer layer)
        {
            IRasterClassifyColorRampRenderer classRender = new RasterClassifyColorRampRendererClass();

IRasterRenderer rasterRender = classRender as IRasterRenderer;
            IRaster raster = layer.Raster;
            IRasterBandCollection collection = raster as IRasterBandCollection;
            IRasterBand rasterBand = collection.Item(0);
            if (rasterBand.Histogram == null)
            {
                rasterBand.ComputeStatsAndHist();//计算立方图 
            }

classRender.ClassCount = 8;

IAlgorithmicColorRamp ramp = new AlgorithmicColorRampClass();
            ramp.FromColor = GetColor(255, 0, 0);
            ramp.ToColor = GetColor(0, 255, 0);
            ramp.Size = 8;
            bool ok=true;
            ramp.CreateRamp(out ok);

IFillSymbol fillSymbol = new SimpleFillSymbolClass();
            for (int i = 0; i < classRender.ClassCount; i++)
            {
                fillSymbol.Color = ramp.get_Color(i);  //不能用ramp.colors.Next()
                classRender.set_Symbol(i, fillSymbol as ISymbol);
                classRender.set_Label(i, "class" + i.ToString());

}
            IRasterRenderer render = classRender as IRasterRenderer;
            render.Update();
            layer.Renderer = classRender as IRasterRenderer;
        }

2克里金插值,与IDW插值类似

private void kringToolStripMenuItem_Click(object sender, EventArgs e)
        {
         
            IGeoDataset geodataset = axMapControl1.get_Layer(0) as IGeoDataset;
            object Etn=geodataset.Extent;
            IFeatureLayer layer = axMapControl1.get_Layer(0) as IFeatureLayer;
            IFeatureClassDescriptor descriptor = new FeatureClassDescriptorClass();
            descriptor.Create(layer.FeatureClass, null, "value");

IRasterRadius radius = new RasterRadiusClass();
            object missing = null;
            radius.SetVariable(12, ref missing);
            //double dSearch=10;
            //object dSearchCount=3;
            //radius.SetFixed(dSearch, ref dSearchCount);

IInterpolationOp interpolation = new RasterInterpolationOpClass();

object CellSize=15;
            IRasterAnalysisEnvironment environment = interpolation as IRasterAnalysisEnvironment;
            environment.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref CellSize);
            environment.SetExtent(esriRasterEnvSettingEnum.esriRasterEnvValue, ref Etn, ref missing);

IGeoDataset dataset=   interpolation.Krige((IGeoDataset)descriptor, esriGeoAnalysisSemiVariogramEnum.esriGeoAnalysisSphericalSemiVariogram, radius, false, ref missing);
            MessageBox.Show("插值成功!");
            IRaster raster = new ESRI.ArcGIS.DataSourcesRaster.Raster();
            raster = dataset as IRaster;
            IRasterLayer rasterlayer = new RasterLayerClass();
            rasterlayer.CreateFromRaster(raster);
            Renders(rasterlayer);
            axMapControl1.AddLayer(rasterlayer);
          
            MessageBox.Show("插值成功!");

}

时间: 2024-10-12 10:56:09

克里金插值及栅格渲染的相关文章

openlayers4 入门开发系列之前端动态渲染克里金插值 kriging 篇(附源码下载)

前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子,这个也是学习 openlayers4 的好素材. openlayers4 入门开发系列的地图服务基于 Geoserver 发布的,关于 Geoserver 方面操作的博客,可以参考以下几篇文章: geoserver 安装部署步骤 geoserver 发布地图服务 WMS geoserver 发布地

克里金插值程序

克里金插值的原理的阅读笔记,在下面下载DOWN LINK.此原理让你很快明天克里金插值的原理,论文写的十分的好.推荐你下载并阅读,如果没有CSDN积分,可以去知网或者百度学术中下载.只是上面没有我的笔记而已. 下面说说程序的事情. 这个程序有两个版本,第一个是Matlab版本的,在CSDN中可以下载,地址为 Download_LINK. 这个matlab版本的缺点是运行慢,太大的数据会慢的受不了.所以,我在网上找了一段时间,花费一天时间.终于找到一个c++版本的,这个版本的大家想必也知道.只是不

R: Kriging interpolation and cross validation 克里金插值及交叉验证浅析

克里金插值的基本介绍可以参考ARCGIS的帮助文档[1]. 其本质就是根据已知点的数值,确定其周围点(预测点)的数值.最直观的方法就是找到已知点和预测点数值之间的关系,从而预测出预测点的数值.比如IDW插值方法,就是假设已知点和预测点的值跟它们相对距离成反比.克里金插值的精妙之处在于它不仅考虑了已知点和预测点的距离关系,还考虑了这些已知点之间的自相关关系. 如何衡量已知点之间的自相关关系呢?通常使用的就是半变异函数,其公式如下[1]: Semivariogram(distance h) = 0.

ArcGIS教程:不同的克里金模型

克里金方法依赖于数学模型和统计模型.通过添加包含概率的统计模型,可将克里金方法从空间插值的确定性方法中描述的确定性方法中分离出来.对于克里金法,您会将某种概率与预测值相关联;也就是说,这些值不能完全基于统计模型进行预测.以在某一地区测得的氮值这一样本为例.显然,即使样本很大,您也无法预测某个未测量位置处的准确氮值.因此,您不但要尝试预测该值,而且还要评估预测的误差. 克里金方法依赖于自相关概念.相关性通常被视为两种变量相关的趋势.例如,股票市场在利率降低时倾向于上涨,所以称其为负相关.但是,股票

克里访华明确中美八项合作重点:含两军事合作(1)

克里访华清楚中好八项合作重面:露两军事合作(1) 克里访华:特性较着 降真成果仍面对挑战刘平好国国务卿克里昨天禀开北京前去雅加达,竣事担任国务卿以去的第两次中国之止.正在一天半的接睹中,克里有七场勾当,清楚中好2014年八项合作重面,收布了一份配合声明.这场中好建交35周年之际单圆的尾次高层面对面接触,正在马年元宵节和2014年情人节中开端,正在北京又一个重霾天色中竣事,没有像情人节那般浪漫,也没有像元宵节那样完竣,但该当讲接睹有助于推动天下最首要的一对单边闭系的建立."会讲是倡议性和坦白的且气

战争的逻辑(6)(印度对英国为何如此重要,拿破仑远征埃及,英国的克里米亚战争都是因为这个)

第三章 印度 印度对于大英帝国来说实在是太过于重要了,以至于被称为“大英帝国皇冠上的明珠”.但其实把印度比作大英帝国的**更为确切,有了印度英国就是男人,就是大英帝国:没了印度英国就没了阳刚之气,就不再是大英帝国了.曾任印度总督的冠松勋爵就说:“没有印度就没有大英帝国(转引自周一良.吴于廑:<世界通史·近代部分>下册,北京:人民出版社,1962年,第262页)”(1).英国政治家帕麦斯顿就认为,”失去印度就意味着英国变成像荷兰或者比利时那样的二流国家(赵军秀:<英国对土耳其海峡政策的演变

1.《天空之城》- 尤克里里指弹入门版

<天空之城>- 尤克里里指弹入门版,源自趣弹音乐. 原文地址:https://www.cnblogs.com/Nick-Hu/p/10319869.html

追忆克鲁伊夫:颠覆足球三观的25条克圣金句

约翰-克鲁伊夫者,球观异于常人,其言亦然. 克公留名史册,皆因其球场视野广阔:审时度势,顺势而为,知其可为与不可为,可为者为我所控.故每克公发言,众人洗耳恭听. 克公之语,夺人眼球,盖因其言乃振聋发聩之深刻洞见.克公或傲然处事,此则无所不知.鹤立鸡群之故. 今有克公名论廿五条,横贯其球员.教练及解说之生涯,供诸位一窥其足球之见地,抑或颠覆尔等之足球观念. 1. 有人颠球能颠1000下,那可不叫技术.那是任何人都可以通过训练做到的,然后就是去马戏团上班咯.技术是一脚出球,同时球速适中,正好能传到你

World Wind Java开发之十——AnalyticSurface栅格渲染(转)

http://blog.csdn.net/giser_whu/article/details/43017881 1.AnalyticSurfaceDemo ArcGIS下对栅格的各种分级渲染效果是非常好的,可以做出很漂亮的图,现在在WW下也可以做出同样的效果了,看到这里是不是有点小兴奋呢.先看下WW自带的AnalyticSurfaceDemo的运行效果图: 通过看源代码可以知道给出了三种渲染示例,其中两种是动态的,这里我需要的是对dem数据或者是单波段影像的渲染,也就是左上方的渲染效果. 2.A