ArcGIS Engine点密度分析

本文介绍了一种基于核密度分析的邻域设置方法,通过定义特定的邻域类型来增强空间数据的分析效果。具体实现中,使用了20栅格单元大小的圆形邻域进行点密度运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在核密度分析的基础上,需指定邻域类型。

IRasterNeighborhood rhn=new RasterNeighborhoodClass();
rnh.setCircle(20,esriGeoAnalysistUnitsEnum.esriUintCells);

全部代码(函数):

        private ILayer pointDensityOp (IFeatureClass pFeatureClass,string pFileName,double pCellSize)
        {
            //定义分析接口
            IDensityOp pDensotyOp = new RasterDensityOpClass();

            //设置分析环境
            IRasterAnalysisEnvironment pEnv = pDensotyOp as IRasterAnalysisEnvironment;
            object obj_cellSize = (object)pCellSize;
            pEnv.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref obj_cellSize);

            //设置参数
            object Missing = Type.Missing;

            //设置邻域大小(必需)
            IRasterNeighborhood rnh = new RasterNeighborhoodClass();   //邻域分析
            rnh.SetCircle(20, esriGeoAnalysisUnitsEnum.esriUnitsCells);  //20栅格单元大小

            //定义分析要素类
            IFeatureClassDescriptor pFCD = new FeatureClassDescriptorClass();  //注意别搞错了,是这个类
            pFCD.Create(pFeatureClass, null, pFileName);

            //设置参数
            IRaster pRaster=pDensotyOp.PointDensity(pFCD as IGeoDataset,rnh,ref Missing) as IRaster;

            IRasterLayer pRasterLayer = new RasterLayerClass();
            pRasterLayer.CreateFromRaster(pRaster);
            ILayer pLayer = pRasterLayer as ILayer;
            return pLayer;

        }

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值