使用ArcGIS Pro自带的Notebook计算多个遥感指数

在之前的分享中,我们介绍了如何使用ArcPy将GEE下载的遥感影像转为单波段文件。基于前面创建的单波段文件,我们可以一次性计算多种遥感指数,例如NDVI、EVI、NDSI等。我这里直接在ArcGIS Pro中自带的Notebook进行的运行。如下图所示,我们可以直接在ArcGIS Pro菜单栏中分析选项卡下的Python新建Notebook,也可以直接在Catalog中新建一个notebook文件。

新建.ipynb文档后,将以下代码复制进文档,可以将代码均放入一个单元格,点击运行将会一次性计算所有的指数;也可以将代码分别放入不同的单元格,只计算需要用到的指数。需要注意的是,这里需要导入arcpy.sa,我没深入分析这个问题,按说ArcGIS Pro自带的Notebook已经默认导入了ArcPy包,但是我不导入arcpy.sa确实会报错。

# 导入sa模块用于Power
from arcpy.sa import *
#读取单波段数据,并栅格化
inPath = "E:/输入的单波段影像路径/"
outPath = "E:/输出结果指数路径/"

NIR = arcpy.ia.Raster(inPath+"NIR.tif")
R = arcpy.ia.Raster(inPath+"R.tif")
G = arcpy.ia.Raster(inPath+"G.tif")
B = arcpy.ia.Raster(inPath+"B.tif")

# 计算NDVI
NDVI =  (NIR-R)/(NIR+R)
NDVI.save(outPath+"NDVI.tif")
# 计算EVI
EVI = 2.5*(NIR-R)/(NIR+R*6-7.5*B+1)
EVI.save(outPath+"EVI.tif")
# 计算IFe2O3
IFe2O3 = R/NIR
IFe2O3.save(outPath+"IFe2O3.tif")
# 计算NDSI
NDSI = (R-NIR)/(R+NIR)
NDSI.save(outPath+"NDSI.tif")
# 计算corsi
CORSI = (B+G)/(R+NIR)*(NIR-R)/(NIR+R)
CORSI.save(outPath+"CORSI.tif")
# 计算BI
BI = Power((Power(R,2)+Power(NIR,2)),0.5)
BI.save(outPath+"BI.tif")
# 计算SI1
SI1 = R*NIR/G
SI1.save(outPath+"SI1.tif")
#需要计算其他指数的话,直接补充其他计算公式即可

如下所示,我将导入单波段的代码与栅格化的代码各放入了一个单元格中,计算各个指数的代码也各在一个单元格中,这样需要计算哪个指数时,仅仅运行某一个指数即可。

更多分享见合集:ArcGIS_Pro_Python

### 使用 ArcGIS Pro 进行多幅遥感影像拼接 #### 准备工作 为了确保能够顺利地完成多幅遥感影像的拼接,首先要准备好所有要参与拼接的影像文件。这些文件应当存储在一个易于访问的位置,并且最好已经完成了初步预处理,比如辐射定标、大气校正等。 #### 创建镶嵌数据集 在 ArcGIS Pro 中,创建一个新的镶嵌数据集来管理即将被拼接在一起的多个影像。这可以通过 Catalog 窗口中的 `Create Mosaic Dataset` 工具实现[^2]。选择合适的地理数据库作为保存位置,并指定坐标系和其他参数以匹配目标应用的需求。 #### 添加影像到镶嵌数据集中 利用 `Add Rasters To Mosaic Dataset` 工具可以方便地将准备好的各个单片影像加入到之前建立的镶嵌数据集中去。此步骤允许设置一些选项用于定义如何导入以及显示新增加的内容,例如裁剪边界、重采样方法等。 #### 处理色彩一致性问题 当来自不同传感器或拍摄时间点的图片组合成一幅完整的图像时,可能会遇到颜色差异的问题。为此,在 ArcGIS Pro 提供了几种解决方案,包括但不限于通过调整直方图均衡化、拉伸变换等方式改善视觉效果的一致性和连续性。 #### 执行最终拼接操作 最后一步就是正式实施影像间的无缝连接了。此时可借助于软件内置的功能按钮——“Build Footprints and Boundary”,它会自动计算并构建每张子图的有效范围及其共同构成的整体轮廓线;接着再运行一次 “Calculate Cell Size Ranges” 来优化内部结构布局,从而达到最佳展示目的。 ```python import arcpy # 设置环境变量 arcpy.env.workspace = "C:/data" # 创建镶嵌数据集 mosaic_dataset_path = r"C:\path\to\your.gdb\MosaicDataset" arcpy.CreateMosaicDataset_management(r"C:\path\to\geodatabase.gdb", "MosaicDataset", spatial_reference) # 向镶嵌数据集中添加栅格 raster_type = "Raster Dataset" input_rasters = ["image1.tif", "image2.tif"] for raster in input_rasters: arcpy.AddRastersToMosaicDataset_management(mosaic_dataset_path, raster_type, raster) # 构建足迹和边界 arcpy.BuildFootprints_management(mosaic_dataset_path) arcpy.CalculateCellSizeRanges_management(mosaic_dataset_path) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值