(1) 第一段中'WEEKi数据按钮'应为'WEEK2数据按钮'。 (3) 第三段中'选择研究区的夜间灯光数据二值图'应为'选择研究区的夜间灯光强度数据'。 (4) 第二段和第四段中的'IRawPixels'应为'IRasterBand'。 (4) 第二段和第四段中的'TextBox1、2'应为'TextBox2、3','TextBox4、5'应为'TextBox5、6'。

优化后的内容:

(1) 点击WEEK1数据按钮、WEEK2数据按钮,将弹出文件选择对话框,可选择研究区的夜间灯光数据,并将读取数据,将数据显示在MapControl控件中。 数据选择依赖于功能类OpenFileDialog,实例化此类可以弹出一个文件对话框。 数据读取依赖于RasterLayer类。具体的,此功能需要使用ESRI.ArcGIS.DataSourcesRaster命名空间中的RasterWorkspaceFactory类、IRasterWorkspace接口、IRasterDataset接口、IRasterLayer接口等。具体过程为:首先创建RasterWorkspaceFactory实例,然后通过IRasterWorkspace接口打开栅格数据所在的工作空间,再通过IRasterDataset接口打开具体的栅格数据集,最后通过IRasterLayer接口将栅格数据集显示在MapControl控件中。

(2) 点击WEEK1夜间光照强度计算按钮、WEEK2夜间光照强度计算按钮,分别计算WEEK1数据、WEEK2数据的所有像元值之和,并将统计结果分别显示在下方。实现此功能需要使用ESRI.ArcGIS.DataSourcesRaster命名空间中的IRasterDataset接口、IRasterBandCollection接口、IRasterBand接口等。具体过程为:首先通过IRasterDataset接口获取栅格数据集,然后通过IRasterBandCollection接口获取栅格数据集中的所有波段,接着通过IRasterBand接口对每个像元进行读取,并将像元值累加求和,最后将统计结果显示在TextBox中。点击夜间光照强度变化按钮,获取TextBox2、3中的数字,然后进行数值计算,最后将计算结果显示在TextBox3中。

(3) 再次点击WEEK1数据按钮、WEEK2数据按钮,将弹出文件选择对话框,选择研究区的夜间灯光强度数据,并将读取数据,将数据显示在MapControl控件中。

(4) 点击WEEK1夜间光照面积计算按钮、WEEK2夜间光照面积计算按钮,分别计算WEEK1数据、WEEK2数据的所有像元值之和,并将统计结果分别显示在下方。类似地,对每个像元进行读取,并将像元值累加求和,最后将统计结果显示在下方。点击夜间光照面积变化按钮,获取TextBox5、6中的数字,然后进行数值计算,最后将计算结果显示在TextBox6中。

4.3.2 空间分析模块 本模块界面设计如下图所示。

(1) 夜间灯光数据的选择、读取类似于第一模块。 (2) 点击夜间灯光亮度空间变化按钮,使用IRaster接口,对两个栅格数据进行计算,由WEEKi数据减去WEEK1数据,将结果保存为一个新的栅格数据图层,并将其添加到MapControl控件中,以显示出计算后的结果。 (3) 重新选择数据为夜间灯光数据二值图,类似地,点击夜间光照面积空间变化按钮,对两个栅格数据进行计算,并显示出计算后的结果。

4.3.3 PII计算模块

(1) 数据的选择、读取类似于第一模块,使用时依次添加数据即可。 (2) 点击空间障碍函数计算按钮,使用多个栅格数据进行计算,可以使用RasterCalculator类来进行栅格计算。在Visual Studio中,使用ESRI.ArcGIS.SpatialAnalyst命名空间中的RasterCalculator类来进行栅格计算。使用ESRI.ArcGIS.Geodatabase和ESRI.ArcGIS.DataSourcesRaster命名空间中的IRasterDataset和Raster类来将计算结果转换为栅格数据。最后,将计算结果添加到地图中以便进行显示。使用ESRI.ArcGIS.Carto命名空间中的IMap和IRasterLayer接口来将栅格数据添加到地图中。

ArcGIS 夜间灯光数据处理模块错误修正与优化

原文地址: https://www.cveoy.top/t/topic/nJXm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录