Orfeo ToolBox初探(一)Windows系统下绑定OTB至python3

一、初识Orfeo ToolBox

  • Orfeo ToolBox (OTB)是先进遥感技术的一个开源项目,其基于开源社区,可以处理 TB 级别的高分辨率光学、多光谱和雷达图像。从正射校正、全色锐化,一直到分类、SAR 处理等等有大量应用程序可供选择!
  • OTB 的所有算法都可以从 Monteverdi、QGIS、Python、命令行或 C++ 访问。
  • 其中,Monteverdi 是一个易于使用的可视化工具,重点是高分辨率图像(光学和 SAR)的硬件加速渲染。有了它,用户可以可视化巨大的原始图像产品并访问工具箱中的所有应用程序。
    Orfeo ToolBox官方文档

二、OTB安装

首先,需要安装OTB-Applications程序包,这是下载地址,分别有如下系统版本:

  • 适用于Windows 平台(7 或更高)
  • 适用于 64 位 Linux 发行版
  • 适用于 MacOS X
    Orfeo Toolbox下载

选择Windows版本,下载完成后选择合适的目录直接解压,注意解压以后文件夹不要再移动。
在OTB-8.0.1-Win64文件夹中:monteverdi.bat是Monteverdi 可视化工具的启动器脚本;otbenv.bat是用于初始化 OTB 可执行文件环境的脚本,用于启用 Python 3.7 的绑定。
OTB-8.0.1-Win64文件夹

三、python绑定otb模块

3.1 绑定须知

在不同操作系统上,不同版本OTB适配了不同的python版本:
对于OTB 6.7-7.4和 OTB 8.0以上版本分别是:
Windows:python3.5/python3.7
Linux:python3.5/python3.8
MacOS X:python3.5/python3.7

3.2 创建conda虚拟环境

首先,为调用otb模块,我们需要在conda中新建虚拟环境,指定匹配的python版本(OTB 8.0.1对应python3.7)。为避免不必要错误,请关闭代理/vpn。具体操作是,打开anaconda3的anaconda prompt窗口,进行如下输入:

(base) conda create -n py3.7 python==3.7 # python虚拟环境
(base) conda activate py3.7 # 激活虚拟环境
(py3.7) conda install numpy # numpy是otb的必须

注:py3.7为虚拟环境命名,python==3.7 指定python版本,()中为当前python环境


其次,为在jupyter notebook调用虚拟环境内核并使用otb模块,我们需要在虚拟环境中安装ipykernel包,并在base环境安装nb_conda_kernels包:

(py3.7) conda install ipykernel # 安装ipykernel
(py3.7) conda deactivate # 关闭环境
(base) conda install nb_conda_kernels

然后,打开jupyter notebook新建notebook,如图所示:
notebook

做如下测试,查看python版本等信息:
测试代码

虚拟环境中python版本正常后关闭jupyter notebook

3.3 py3.7绑定otb模块

① 打开anaconda3的anaconda prompt窗口,激活py3.7虚拟环境;
② 并输入otbenv.bat文件的绝对路径,按回车绑定otb模块;
③ 输入python进入python环境,导入模块,并进行DEM平滑处理;
命令及结果如下:

conda activate py3.7
C:\OTB-8.0.1-Win64\otbenv.bat
python
import os
import otbApplication as otb
os.chdir("E:\\Desktop")  # 更改当前工作目录
app = otb.Registry.CreateApplication("Smoothing")
app.SetParameterString("in", "DEM.tif")
app.SetParameterString("type", "mean")
app.SetParameterString("out", "DEM_smooth.tif")
app.ExecuteAndWriteOutput()

cmd_otb

④ exit()退出python环境,输入jupyter notebook并打开notebook页面,新建python3.7内核文件,检验otb是否可用;
jupyter-otb

3.4 一键启动

由于每次重启内核需要重新绑定otb模块,所以对以下操作构建.bat文件一键绑定otb模块并启动notebook。
nobat

新建一个txt文件,粘贴以下命令后直接修改文件后缀为.bat:

@echo otb for python3.7
D:
cd D:\Anaconda3\Scripts
call activate py3.7
C:
call C:\OTB-8.0.1-Win64\otbenv.bat
jupyter notebook
  • 第3行表示跳转至anaconda目录下的scripts文件夹
  • 第4行表示激活虚拟环境py3.7
  • 第6行表示执行otbenv.bat绑定otb至python3.7

完成后,双击.bat文件即可启动jupyter notebook,以py3.7为内核新建文件,导入otbApplication包。为方便起见,我们将其粘贴至开始菜单Anaconda3文件夹下,并构建快捷方式,如图所示,点击快捷方式即可启动:
bat

四、总结

  1. OK,到目前为止,我们完成了Orfeo ToolBox这个开源遥感图像处理程序在Windows系统上的安装,并介绍了如何利用conda新建python3.7虚拟环境,并在jupyter notebook新建以其为内核的文件。尤为重要的是给出了使用otbenv.bat绑定otb至该虚拟环境的流程,并使用.bat进行一键启动。
  2. 以上便是本文的主要内容,希望大家有所收获,并积极在python中探索如何使用OTB进行遥感图像处理。
  3. 关于在QGIS中如何配置Orfeo ToolBox,请参考这篇文章:
    QGIS配置Orfeo ToolBox(OTB)较新版本

五、彩蛋(必看)

2023年2月11日更:这是我向ChatGPT询问如何使用Python3调用Orfeo ToolBox的回答!
ChatGPT

附录:Conda常用命令

升级所有库:conda update --all
安装库:conda install package
安装本地库:conda install --use-local your-pkg-absolute-path
升级库:conda update package
查看所有库:conda list
查看某一库:conda list package
升级navigator:conda update anaconda-navigator
重置navigator:anaconda-navigator --reset

参考资料

参考1:如何在Windows系统上安装Orfeo ToolBox并使用Python(Anaconda)调用?
参考2:如何在 JupyterLab 中把 ipykernel 切换到不同的 conda 虚拟环境?
参考3:使用.bat文件一键启动虚拟环境下的jupyter notebook
参考4:使用bat打开Jupyter Notebook

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值