使用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确实会报错。

python 复制代码
# 导入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

相关推荐
钱栈up40 分钟前
番茄小说榜单爬虫失效排查:从页面路由变更到API参数映射的全流程复盘
python
唐璜Taro1 小时前
Agent Harness 系列 · 第 1 篇|Agent 不只是换一个更强的模型
人工智能·python
泡茶喝茶写代码1 小时前
量化数据进阶:多维实战篇(第 11 篇):历史涨跌停价:涨跌停序列与止损线测算
java·python·股票数据api·股票数据·股票数据api接口·股票api数据接口·股票量化数据api
ikun_文2 小时前
Django开启跨域请求
python·pycharm·django
外收内放2 小时前
Python与AI应用(项目开发实战:AI智能伴侣第三版)
python·学习·ai编程
别动我齐刘海2 小时前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
Logintern092 小时前
“以一致的顺序获取锁“是预防死锁最核心、最有效的手段
python·postgresql·锁机制
打工仔折腾 AI2 小时前
Prometheus 告警推钉钉:从单群 Webhook 到跨网络 Alertmanager 实战
人工智能·后端·python·性能优化
Ivanqhz2 小时前
Ping-Pong 双缓冲
开发语言·人工智能·python·深度学习·mlir
三十岁老牛再出发2 小时前
9月18日总结
python·深度学习·机器学习