【arcgis实用小技巧1】利用Arcgis修改栅格影像异常值

本文介绍了如何在ArcGISPro中利用栅格计算器进行异常值替换。通过Con函数,可以将特定异常值(如-9999或NoData)替换为其他数据源的对应值,以确保数据分析的准确性。

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

主要利用栅格计算器con(,)

打开arcgis/arcgispro,找到地理处理—搜索—栅格计算器—复制内容,根据自己的内容修改修改

 

1、异常值为-9999

 Con("2003_SOF.tif" ==-9999 ,"2004_SOF.tif", "2003_SOF.tif")

如果2003年的影像中出现-9999的值则用2004年中同位置的值代替,其余部分不变仍然为2003年的值

2、异常值为nodata

Con(IsNull(“mod_19_01_25”),“mod_19_02_02.tif”,“mod_19_01_25.tif”)

如果mod_19_01_25影像中出现空值则空值部分用mod_19_02_02.tif影像中的数据代替其余部分值不变

ArcGIS Engine 是 Esri 公司提供的一套用于构建定制 GIS 应用程序的软件开发工具包(SDK)。通过 ArcGIS Engine,开发人员可以在自己的应用程序中实现地图显示、编辑、空间分析等功能。要添加栅格影像并计算其归一化植被指数(NDVI),可以按照以下步骤进行: 1. 添加栅格影像:首先,你需要使用 ArcGIS Engine 提供的 API 来加载栅格影像数据。这通常通过调用加载栅格数据的方法来完成,比如使用 `IRasterDataset` 接口的 `Open` 方法。 2. 计算 NDVI:NDVI 是通过近红外波段(NIR)和红光波段(Red)的反射值来计算的。其计算公式为:NDVI = (NIR - Red) / (NIR + Red)。在 ArcGIS Engine 中,你需要读取这两个波段的栅格数据,然后根据 NDVI 公式进行计算。这可能需要访问栅格波段数据,执行像素值的运算,并创建一个新的栅格数据集来存储计算结果。 3. 显示结果:计算完成后,可以将结果栅格影像加载到地图上显示。 以下是使用 ArcGIS Engine 计算 NDVI 的基本代码框架示例(假设使用的是 ArcObjects 的某种编程语言,比如 C#): ```csharp // 加载栅格数据 IRasterDataset rasterDataset = (IRasterDataset)AoInitialize.GetAOFactory(AoInitializeersive.AoFactoryType.AoFactoryEsriGeodatabase); IRasterLayer rasterLayer = new RasterLayerClass(); rasterLayer.Create(rasterDataset.PathName, ""); // 获取栅格数据的波段 IRasterProps rasterProps = rasterDataset.RasterStorage; IRasterBandCollection bandCollection = (IRasterBandCollection)rasterProps; IRasterBand redBand = bandCollection.get_Band(0); // 假设红色波段是第一个波段 IRasterBand nirBand = bandCollection.get_Band(1); // 假设近红外波段是第二个波段 // 计算 NDVI IRaster redRaster = redBand.Raster; IRaster nirRaster = nirBand.Raster; IRaster resultRaster = ... // 这里需要创建一个新的栅格数据集,并进行像素计算 // 显示计算结果 IRasterLayer resultRasterLayer = new RasterLayerClass(); resultRasterLayer.Create(resultRaster); // 将结果栅格图层添加到地图中 IMap map = ... // 获取或创建地图对象 IMapServer mapServer = ... // 获取或创建地图服务器对象 mapServer.AddLayer(map, resultRasterLayer, 0, 0); ``` 请注意,上述代码仅为示例框架,实际实现时需要进行适当的错误处理和资源管理,例如使用 `try...catch` 语句来捕获异常,并确保在完成栅格数据操作后正确释放资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值