用(AE+C#)和ArcGIS中设置IDW插值后的栅格的空间范围

7 篇文章 0 订阅
4 篇文章 0 订阅

在AE中我想用IRasterAnalysisEnvironment接口的SetExtent方法来设置范围,虽然没报错,但是还是原先的样子。

private void toolStripMenuItem9_Click(object sender, EventArgs e)
        {
            IInterpolationOp pInterpolationOp;
            pInterpolationOp = new RasterInterpolationOpClass();

            IFeatureClass pFeatureClass;//进行插值的图层
            pFeatureClass = pTocFeatureLayer.FeatureClass;

            //根据范围矢量图层的名称获取其序号
            ind = OperateMap.GetLayerIndexByName(mainMapControl, "乡镇复制_pro");
            IFeatureLayer featureLayer = this.mainMapControl.Map.get_Layer(ind) as IFeatureLayer;//点图层在axMapControl控件的第一个,索引为0

            //设置搜索半径,本例为12
            IRasterRadius pRadius;
            pRadius = new RasterRadiusClass();
            object maxDistance = Type.Missing;
            pRadius.SetVariable(12, ref maxDistance);

            //设置进行插值的属性字段
            IFeatureClassDescriptor pFCDescriptor;
            pFCDescriptor = new FeatureClassDescriptorClass();
            string FieldName = " ";//注意,引号内为Idw插值中的Z值,即属性表中要进行对其进行插值的字段名
            pFCDescriptor.Create(pFeatureClass, null, FieldName);
            
            //设置输出像元大小 
            IRasterAnalysisEnvironment pEnv;
            pEnv = new RasterAnalysis();
            object dCellSize = 144.337439931631;//设置像元值(参考ARCMAP)
            pEnv = pInterpolationOp as IRasterAnalysisEnvironment;
            pEnv.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref dCellSize);
            object objectbarrier = Type.Missing;

            //设置空间处理范围
            object extent;
            IGeoDataset geo = featureLayer.FeatureClass as IGeoDataset;//featureLayer为“乡镇复制”
            extent = geo.Extent;
            pEnv.SetExtent(esriRasterEnvSettingEnum.esriRasterEnvValue, ref extent, ref maxDistance);

            //执行IDW,并输出栅格
            IGeoDataset rasDataset;
            rasDataset = pInterpolationOp.IDW((IGeoDataset)pFCDescriptor, 2, pRadius, ref objectbarrier);
            IRaster pOutRaster;
            pOutRaster = rasDataset as IRaster;
            pOutRasLayer = new RasterLayerClass();
            pOutRasLayer.CreateFromRaster(pOutRaster);

            this.mainMapControl.AddLayer(pOutRasLayer, 0);// 输出结果至axMapControl1,并放置在第一层
            mainMapControl.ActiveView.Refresh();//刷新视图
        }

在ArcGIS中,修改空间范围的两个方法:
(1)修改图层的数据框属性
在这里插入图片描述点击右下角的环境——处理范围——选择“与 某矢量图层 相同"
在这里插入图片描述点击确定即可。

(2)在插值时的界面上设置环境中的处理范围。
右击 内容列表中的 最上面的图层——选择属性
在这里插入图片描述

在这里插入图片描述范围设置为自动——裁剪选项中选择“裁剪至形状"——点击”指定形状“
在这里插入图片描述选择“要素的轮廓"——选择范围矢量图层

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值