ENVI Services Engine(简称ESE)是Exelis
VIS公司最新推出的云遥感服务解决方案,ESE是以服务方式部署遥感功能,即以Web
Services形式存在的IDL和ENVI在云端处理,客户端可以在线,按需(on-line,on-demand)请求遥感服务。ESE采用开源标准,与中间件无关的体系结构,可以将一个资源上部署的图像分析功能传递给多个平台,允许用户通过Internet在Web客户端或者移动客户端上进行大数据量的高级分析。
在阅读下面内容前,我们简单了解以下几个概念:
l<wbr><wbr></wbr></wbr>云计算
远程处理或储存,经常用于提高运算性能,扩展性,数据分配等。
l<wbr><wbr></wbr></wbr>集群Cluster
很多计算机连接在一起相当于一台计算机,为了分布式处理,高可用性和负载均衡。
l<wbr><wbr></wbr></wbr>JSON
(JavaScript Object Notation)
基于文本的开放式标准,旨在人可读的数据交换,拟替代XML。
l<wbr><wbr></wbr></wbr>中间件
处在ESE和客户端中间的软件,如包括目录和影像服务。
l<wbr><wbr></wbr></wbr>REST
(REpresentational State Transfer)<wbr><wbr></wbr></wbr>
定义了一组体系架构原则,您可以根据这些原则设计以系统资源为中心的Web服务,包括使用不同语言编写的客户端如何通过HTTP处理和传输资源状态。已成为一个主要的Web
API设计模型。
l<wbr><wbr></wbr></wbr>可扩展性(Scalability)
工作量增加时,可以增加硬件资源以无缝处理这些工作。
l<wbr><wbr></wbr></wbr>网络服务器(Web
server)
传递Web内容,且通过互联网可以访问。
l<wbr><wbr></wbr></wbr><wbr><wbr></wbr></wbr>Web
service
在互联网或者云上,以网络地址的形式提供的软件功能(“永远在线”)。
l<wbr><wbr></wbr></wbr>App
用于运行特定分析功能的处理客户端和任务。
一、<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>ESE运行模式
ESE构架于主流的REST框架上并且能够运行在集群环境中,它具有可伸缩性和负载平衡功能,如图1是ESE运行的一个典型的流程图。ESE从客户端获得HTTP和REST请求,ESE执行遥感相关的处理请求,然后将结果传送给应用程序APP。ESE影像处理功能以JSON标准封装,可以与其他中间件(如ArcGIS
Server)提供的影像数据服务无缝结合。
ESE中包括Master、Worker、Node
Leader三种不同的运行角色:
Ø<wbr><wbr></wbr></wbr>Master:从客户端接受请求、向Workers传递请求,它是一个节点的领导者而不运行IDL和ENVI;
Ø<wbr><wbr></wbr></wbr>Workers:运行IDL和ENVI,具体执行任务;
Ø<wbr><wbr></wbr></wbr>Node
leaders:监视workers、重启workers(如有必要)等。
当不同客户端发送请求时,服务器上的Master进程将接收和应答请求。如果请求的是任务(Task)或者系统的信息,Master将信息返回给客户端。如果请求的是执行任务,那么Master就会将请求分配给它下面的Worker去具体执行,然后将执行结果返回给客户端。
Worker进程能够运行在ESE集群环境中的任何机器上。集群中的所有节点绑定了一个特定的Master主机,也就是说,集群环境中的一个节点运行着ESE可执行的实例,该可执行文件与集群中的其他节点一样与同一个master主机通信,该master主机可以通过服务器配置文件指定。节点的安装方式有两种:
l<wbr><wbr></wbr></wbr>通常,集群中的所有节点都运行同一个安装目录。安装目录可以驻留在网络文件系统(NFS)和分布式文件系统(DFS)挂载点上。
l<wbr><wbr></wbr></wbr>如果集群上的所有节点分享一个共同的“工作目录”,每个节点就可以有本地安装目录。
图1可伸缩和负载均衡运行流程
<wbr><wbr></wbr></wbr>
二、<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>ESE安装和配置
1、<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>ESE安装
目前ESE支持64位的Linux和Windows系统,安装ESE之前,确保机器上已经安装了ENVI/IDL产品。ESE安装之后可以通过“开始->程序->ENVI50->Help->ENVI
Services Engine Help”启动ESE帮助。安装ESE之后会创建两个目录:一个是ESE目录(称为ESE_WORK_DIR);另一个用来存储IDL和ENVI文件。安装目录如图2。
<wbr><wbr></wbr></wbr>
图2<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>ESE安装目录
安装完成后,可以手动启动ESE服务如图3所示。
<wbr><wbr></wbr></wbr>
图3<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>启动ESE服务
2、<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>服务器配置文件
配置文件能够设置ESE的安装环境。多台机器情况下,在该文件定义ESE的集群,所以它需要有权访问集群环境里的所有机器。通过该配置文件你可以更改主机、端口(默认端口:8181)以及设置是否使用ENVI函数,详见ESE帮助。注意在更改配置文件之前,先进行文件备份。
配置文件目录:
Linux:<ESE_WORK_DIR>/bin/server.cfg
Windows:<drive>:\Exelis\se10\bin\server.cfg
3、<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>系统变量
在ESE安装目录:\Exelis\se10\lib下存在一系列的IDL源码文件,例如!server__define.pro和verifyserver.pro。!server__define.pro定义了一个只读的系统变量!SERVER,将IDL程序运行的状态传递给客户端,!SERVER包涵一些属性(DATADIR、DOCROOT)和方法(filetourl、urltofile)。当调试IDL程序时,Verifyserver可以实例化一个服务器,自动实例化一个!server对象,如果运行在服务器上,Verifyserver将不起作用。
4、<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>ESE管理员控制台(Services
Engine Admin Console)
ESE安装之后,可以通过“开始->程序->ENVI50->Tools->
Services Engine Admin Console”启动ESE管理员控制台。该控制台是一个Web客户端,包括多个功能选项:Tasks、Data、Nodes、Jobs、Logs、About。
Ø<wbr><wbr></wbr></wbr>Tasks下包括同步服务和异步服务,可以上传插件构建任务以及执行任务,见图4。
Ø<wbr><wbr></wbr></wbr>Data下显示:\Exelis\se10\docroot\data路径下的数据
Ø<wbr><wbr></wbr></wbr>ESE中包括Master、Worker、Node
Leader,Master:从客户端接受请求、向Workers传递请求、不运行IDL和ENVI、是一个节点领导者。Workers:运行IDL和ENVI。Node
leaders:监视workers、重启workers。
Ø<wbr><wbr></wbr></wbr>Nodes下可以查看集群环境中的Master节点和执行任务的Workers数目,见图5。
Ø<wbr><wbr></wbr></wbr>Jobs可以查看任务执行状。
Ø<wbr><wbr></wbr></wbr>Logs包括详细的日志文件,可以通过查看日志文件,查找错误来源。
<wbr><wbr></wbr></wbr>
图4<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>任务(Tasks)功能项
<wbr><wbr></wbr></wbr>
图5<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>节点(Nodes)功能项
三、<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>构建任务(Task)
任务(Task)就是一个数据处理、可视化或者数据分析的IDL程序,每个任务都有一个JSON配置文件(config.json)。以下是任务构建的步骤,目的是获取相应的HTTP
REST服务以便客户端调用。
1、<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>IDL功能开发
利用IDL语言,开发ENVI/IDL功能,例如计算NDVI、植被覆盖度、非监督分类等,ESE安装目录下提供了相关demo供参考。如果调用ENVI函数,ESE必须包含ENVI许可,服务配置文件server.cfg中的using_envi必须设置为yes。
IDL编写计算植被覆盖度程序如下:
<wbr><wbr></wbr></wbr>
2、<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>编写config.json文件
JSON(Javascript
Object Notation)是一种轻量级的文本格式,ESE使用JSON文件格式在服务器和客户端之间定义输入和输出参数。
JSON有固定的格式,每个参数的具体含义可以参考ESE帮助。
<wbr><wbr>计算植被覆盖度的<span style="word-wrap:normal; word-break:normal">IDL</span>程序,对应的<span style="word-wrap:normal; word-break:normal">JSON</span>文件为:</wbr></wbr>
<wbr><wbr></wbr></wbr>
3、<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>插件开发
任务通过插件来部署,这里的插件非常简单,即IDL源码(.pro)文件和JSON文件(config.json)的压缩文件(ZIP格式)。
4、<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>上传插件
启动Services Engine管理员控制台,在Task选项卡下,选中Syncservices,点击Upload按钮,上传插件即ZIP压缩文件如图6所示。
<wbr><wbr></wbr></wbr>
图6<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>上传插件
<wbr><wbr></wbr></wbr>
图7<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>植被覆盖度任务
5、<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>任务测试
插件上传成功后,即可进行任务测试,选中上传的任务,点击Task Request Builder按钮,弹出Task Request Builder对话框,输入参数,点击Submit按钮,即可得到返回的JSON结果,结果中有执行IDL后返回的结果,见图8。
<wbr></wbr>
图8<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>任务测试
6、<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>获取HTTP
REST服务
任务测试通过,即可在Task Request Builder对话框,点击Show Request按钮得到该任务的HTTP
REST服务地址。
计算植被覆盖度的HTTP REST服务地址为:
http://tiandeshan:8181//ESE/SyncService/ese_vf/execute?InServiceAdd=http://localhost/arcgis/rest/services/Solar/ImageServer
HTTP REST服务地址格式为:
http://<wbr><wbr></wbr></wbr><wbr><wbr></wbr></wbr>:<wbr><wbr></wbr></wbr><wbr><wbr></wbr></wbr>/<wbr><wbr></wbr></wbr><wbr><wbr></wbr></wbr>/<wbr><wbr></wbr></wbr><</FONT>service><wbr><wbr></wbr></wbr>/<wbr><wbr></wbr></wbr><wbr><wbr></wbr></wbr>/<wbr><wbr></wbr></wbr><wbr><wbr></wbr></wbr>?<wbr><wbr></wbr></wbr>
Variable
|
Value
|
Description
|
<wbr></wbr>
|
ESE
|
可以在server.cfg文件中定义
|
<wbr></wbr>
|
Sync<wbr><wbr>|<wbr><wbr>Async</wbr></wbr></wbr></wbr>
|
可以在server.cfg文件中定义
|
<wbr></wbr>
|
IDL routine name
|
任务的名称
|
<wbr></wbr>
|
execute<wbr><wbr>|<wbr><wbr>submitJob</wbr></wbr></wbr></wbr>
|
<wbr><wbr></wbr></wbr>
|
<wbr></wbr>
|
| <wbr><wbr>&<wbr><wbr></wbr></wbr></wbr></wbr>
|
当任务没有输入参数时保持为空
|
<wbr></wbr>
|
<wbr><wbr>=<wbr><wbr></wbr></wbr></wbr></wbr>
|
<wbr><wbr></wbr></wbr>
|
<wbr></wbr>
|
variable name
|
变量的名字与任务的config.json中的参数名字一致
|
<wbr></wbr>
|
| | | |
|
<wbr><wbr></wbr></wbr>
|
<wbr></wbr>
|
true<wbr><wbr>|<wbr><wbr>false</wbr></wbr></wbr></wbr>
|
<wbr><wbr></wbr></wbr>
|
<wbr></wbr>
|
null
|
<wbr><wbr></wbr></wbr>
|
<wbr></wbr>
|
string
|
单引、双引或者两者都不用
|
<wbr></wbr>
|
number
|
64位整型或者浮点型
|
<wbr></wbr>
|
JSON
|
详见JSON说明
|
四、<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>客户端调用HTTP
REST服务
获取了HTTP REST服务地址之后,即可在客户端进行调用,服务器和客户端处理流程如图9。
<wbr><wbr></wbr></wbr>
图9<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>ESE处理流程
这里的客户端可以是基于HTML和Javascript、Flex、Silverlight等开发的web客户端,也可以是移动客户端(IOS、Android)。
Silverlight版本4提供了两种发送HTTP请求的方法:WebClient<wbr><wbr></wbr></wbr>和<wbr><wbr></wbr></wbr>HttpWebRequest。这里采用基于事件的异步编程模型WebClient发送HTTP请求。
<wbr><wbr></wbr></wbr>
Silverlight客户端中的方法调用必须是异步调用,所以都有一个回调事件,在回调事件中解析返回的JSON,获得结果的URL,然后添加到Map控件中,进行显示。
<wbr><wbr></wbr></wbr>
Web客户端前端运行,速度非常快,Web前端界面展示如图10,运行结果如图11所示。
<wbr><wbr></wbr></wbr>
图10计算植被覆盖度
<wbr><wbr></wbr></wbr>
图11植被覆盖度计算结果
分享到:
相关推荐
ENVI去云补丁Haze Tool及其使用说明:ENVI去云补丁Haze_tool文件及其使用说明和安装方法,内附sav文件,使用说明PDF文件和安装方法TXT文件。
envi中的去云工具 Haze tool 主要由三部分组成: 云层厚度检测 (haze detection) , 云层厚度完善 (haze perfection) ,云层去除(haze removal)
Envi 去云工具及教程
可以有效去除landsat数据图像中的云,文档中包含去云案例。
最近在学习Envi,发现CSDN里分享的64位版本的下载链接都失效了,现分享一个可用的链接Envi5.1 x64版本链接。具体链接内容包括:x64位下载地址,32位下载地址和许可文件及破解补丁的下载地址。
ENVI去云插件使用详细说明。云层厚度检测-云层厚度完善-云层去除
envi 去云插件 安装至目录SAVE_ADD中,重启即可使用。
envi的插件,支持进行云层厚度检测(haze detection),云层厚度完善(haze perfection),云层去除(haze removal)。
ENVI4.7 envi4.8 envi5.1 ENVI5.3,envi54-win,ENVIServicesEngine52win64
只需将其拷贝至ENVI安装目录下即可,该补丁可以实现卫星影像的云检测及去云处理
ENVI云处理工具,HazeTool,可消除影像云
遥感图像处理软件ENVI二次开发指南,介绍了相关流程及部分例子。
用于envi5.0版本,装在extention文件夹里面
ArcGIS/ENVI软件应用于气象行业解决方案 概念 应用 案例
ENVI去云补丁Haze Tool及其使用说明
云检测使用方式:云层厚度检测、云层厚度完善、云层去除等
ENVI大气校正常见问题及解决方案,遥感数据处理和GIS处理经常用到的!
用C#和ArcEngine,ENVI二次开发用于处理遥感影像的程序,VS2019,ArcEngine10.2,ENVI5.2
ENVI4.2破解版,我觉得很好。同济大学
ENVI汉化包安装步骤:声明:本中文版 ENVI 系 Esri中国遥感事业部出品。大家在使用过程中发现有任何问题或翻译不当的地方,实属正常。请将问题发邮件至 duhj@esrichina.com.cn,必有重谢。谢谢。 由于ENVI自身...