欢迎光临构建WebServices形式的遥感平台:在线与云遥感平台遥感事业部田德山tiands@esrichina.com.cn欢迎光临基于ENVIforArcGISServer构建在线系统—以北京市气溶胶在线反演系统为例主要内容背景介绍1数据服务层2GIS服务层3WEB服务层4北京市气溶胶在线反演系统基于ENVIforArcGISServer开发的北京市气溶胶在线反演系统是一个能够进行在线分析、实时计算的B/S系统,在线体验地址:服务器Web应用移动其他桌面端影像模型北京市气溶胶在线反演系统北京市气溶胶在线反演系统技术流程数据来源遥感影像:MODISL1B1KMHDF数据(2012/06/04,2012/06/05,2012/07/15)底图数据:ArcGISOnline平台使用模型制作与开发:ENVI/IDL、ArcGISDesktop(Modelbuilder)服务器平台:ENVIforArcGISServer、ArcGISServerWeb客户端:ArcGISAPIforSilverlightV2.4数据库平台:SQLServer2008数据库和ArcSDE(镶嵌数据集)北京市气溶胶在线反演系统开发环境MicrosoftVisualStudio2010Silverlight4Tools(4.0.50826.0版本)Silverlight4ToolkitExpressionBlend4ArcGISAPIforSilverlightV2.4北京市气溶胶在线反演系统构建(Author)在ArcGISDesktop中,结合安装在ArcGIStoolbox中的ENVITools和其他GIS工具,在可视化建模工具ModelBuilder中构建模型。发布(Publish)制作好模型之后,基于ArcGISServer和ENVIforArcGISServer发布服务。使用(Use)服务既可在Web应用程序中使用,也可在桌面软件、移动客户端中使用。ENVIforArcGISServer怎么做?(技术路线)主要内容背景介绍1数据服务层2GIS服务层3WEB服务层4数据服务层主要是数据的存储,这里的数据包括:科学数据和角度数据。其中科学数据和角度数据是通过ArcSDE的镶嵌数据集进行组织和管理的。数据服务层概述数据建库下面将从以下几个方面介绍:连接数据库新建镶嵌数据集添加时间字段启动时间设置计算统计数据在ArcMAP目录中找到“数据库连接”,双击“添加空间数据库连接”,填写相应参数连接数据库连接数据库新建镶嵌数据集为存放科学数据的镶嵌数据集添加起始时间字段和终止时间字段,字段名称分别为datestr和enddate。添加时间字段目的:为存放科学数据的镶嵌数据集启动时间,以便基于时间对影像服务进行查询和显示。启动时间设置目的:为了在WEB客户端更好的显示栅格数据,需要对存放科学数据的镶嵌数据集计算统计数据,否则影像服务显示在客户端是灰色的。•计算统计数据主要内容背景介绍1数据服务层2GIS服务层3WEB服务层4GIS服务层用到了ENVI/IDL、ENVIforArcGISServer、ArcGISDesktop(Modelbuilder)(10版本)、ArcGISServer(10版本)等产品,其主要目的是发布GP服务和影像服务。GIS服务层概述ENVI/IDL开发制作Python脚本工具构建GP模型发布服务GIS服务层构建步骤当ENVITools中的功能无法满足客户需求的时候,可以利用IDL来定制ENVI功能。北京市气溶胶在线反演系统中包涵的自定义ENVI功能:1、ENVI/IDL开发MODISL1B1KMHDF文件的辐射校正几何校正云检测气溶胶反演.pro文件编写完成后,要编译为.sav文件以便Python调用,编译为.sav文件有两个方法。1、单个.pro文件编译成.sav文件:将如下命令依次输入命令行中。①重置IDL.full_reset_session②点击工具条上的编译按钮③解除函数或者程序占用RESOLVE_ALL,SKIP_ROUTINES='envi',/CONTINUE_ON_ERROR,/QUIET④创建.sav文件SAVE,/ROUTINES,FILENAME=‘sav文件保存路径’ENVI/IDL开发2、多个.pro文件编译成.sav文件:①点击重置按钮②右击工程,点击构建工程即可将该工程下所有的pro文件编译为一个sav文件ENVI/IDL开发Python脚本格式一般都是固定的,分三步:①导入envipy②获取参数③调用RunTool函数。制作Python脚本工具制作Python脚本工具编写好.py文件之后,接下来就是制作脚本工具制作Python脚本工具北京市气溶胶在线反演系统包括三个模型:模型1:对HDF文件进行辐射校正、几何校正、云检测、掩膜等流程化处理,直接将结果导入镶嵌数据集,并根据HDF文件的名字计算该影像的获取日期将值赋予镶嵌数据集的起始时间字段。模型2:利用模型1产生的科学数据和角度数据反演气溶胶。范围为北京市范围。模型3:用户能够自定义范围进行气溶胶的反演。构建GP模型构建GP模型—模型1模型1用到了“选择数据”工具,该工具能够从文件地理数据库、ArcSDE地理数据库、文件夹中选择子集,我将选择数据工具的“输入数据元素”参数(也就是数据源)指向存放HDF文件的文件夹。构建GP模型—模型1从选择数据工具选择出来的HDF文件,进行路径解析,获取文件名称,这样在导入镶嵌数据集的时候,是以行内变量命名的。构建GP模型—模型1利用计算字段工具,来计算该影像的获取时间。构建GP模型—模型1构建GP模型—模型2这里利用“创建镶嵌图层”的工具,可以从镶嵌数据集中根据查询条件选择数据,这样模型的输入参数为查询条件即SQL语句是字符串格式的,这样就符合10版本的GP服务的输入参数限制。创建镶嵌数据集的数据源要选择.sde连接文件下的镶嵌数据集。构建GP模型—模型2模型2和模型3的不同之处就是裁剪范围,模型2中直接为北京市范围,但是10版本的arcgis不支持要素类作为GP服务的输入,所以必须手动改为要素集。构建GP模型—模型3管理GIS服务发布GP服务发布影像服务使用服务验证服务发布服务管理GIS服务管理GIS服务能够对服务进行,删除,启动、停止、重新启动等操作,也可以在停止了服务之后,更改该服务的属性。可以勾选显示本地消息以便验证服务时查看服务器消息。发布GP服务发布影像服务和发布GP服务类似,在存放科学数据的镶嵌数据集mysde.DBO.Solar上右击,选择“发布到ArcGISServer”发布影像服务使用服务添加了使用GIS服务之后,就可以验证GP服务是否能够使用了,当然在验证服务之前一定要验证模型是否能够运行成功。验证服务注意:对于GIS服务,无论是GP服务还是影像服务,如果改动了,就要在管理GIS服务中重启服务,然后再验证服务。最好把服务属性中的显示本地消息复选框勾选上,这样就可以查看详细的服务器消息,如果服务运行错误就可以查找错误原因。验证服务主要内容背景介绍1数据服务层2GIS服务层3WEB服务层4Web服务层主要是进行Silverlight应用程序的开发和程序发布,这里主要介绍开发的核心模块即气溶胶反演模块。WEB服务层概述这里以气溶胶为例介绍如何进行模板的扩展以及气溶胶反演的关键技术。模板提供的子窗口查询影像服务调用GP服务自定义反演范围气溶胶反演模块开发模板中提供了子窗口,在xaml中中添加引用:xmlns:userControls=clr-namespace:ESRI.ArcGIS.SilverlightMapApp“子窗口使用方法为:userControls:WindowPanel/userControls:WindowPanel气溶胶反演-模板提供的子窗口服务器发布的影像服务已经启动了时间属性,这样在客户端就可以利用时间来进行查询(QueryTask)。用户选择了起始时间和终止时间,点击查询之后就执行以下代码从而对影像服务进行查询,query.Where设置查询的条件。•气溶胶反演-查询影像服务查询完成后,将查询结果中的Name属性显示在Listbox中。气溶胶反演-调用GP服务气溶胶反演-调用GP服务对于反演范围为北京市的GP服务,参数传递只有两个,但是对于自定义范围的GP服务,还有一个自定义范围参数。这里用户要进行范围的绘制,绘制图形使用的是DrawModel,绘制方式有多边形、矩形、圆、椭圆,具体请见代码。气溶胶反演-自定义反演范围这里必须将绘制的graphics转换为GP服务所需的Featureset参数类型,因为10版本的GP服务支持要素集。通过绘制得到了用户自定义范围后,传入GP服务即可,调用GP服务和前面讲的一样,只是多了一个输入参数。气溶胶反演-自定义反演范围1.我们以“北京市气溶胶在线反演系统”为例,介绍了如何基于ENVIforArcGISServer构建在线系统,详细介绍了系统的整体架构以及数据服务层、GIS服务层、WEB服务层的主要功能和每个层次的系统构建步骤。2.从以上介绍可以了解,基于B/S架构的系统对影像的时间分辨率要求高,这样的系统具有宏观的精度,能够实时在线计算,这将大大提高影像的利用率。回顾欢迎光临基于ENVIServicesEngine构建云遥感平台ENVIServicesEngine云遥感解决方案客户端开发中间件&后端服务器ENVI+IDLdesktopHTTPRESTENVIServicesEngine客户端APP开发•Javascript,HTML5•Nativemobile(iOS,Android)•Silverlight...系统引擎•ArcGISServer•Apachewebserver•GeoServer•J2EE–GXPXplorer•Catalogsoftware•None…Services创建•ENVI算法•IDL代码•C++…其他服务商业逻辑数据储存服务器——ENVI&IDL以服务方式部署到您企业级构架中专业服务构建Web/Mobile/Desktop图像分析GIS-TransformingourWorldESE基本知识单节点计算机•Master-从客户端接受请求-向Workers传递请求-不运行IDL和ENVI-是一个节点领导者•Workers-运行IDL和ENVI•Nodeleaders-监视workers-重启workersAdminConsole(管理员控制台)1.服务器配置文件2.Docroot3.系统变量4.插件5.错误日志安装文件GIS-TransformingourWorld插件开发插件就是IDL的源文件(.pro)和JSON文件的压缩文件(.zip文件)。插件可以在IDL下新建个工程,将!Server__define.pro等文件放入工程下,以便调试程序。注意:如果调用ENVI函数,ESE许可必须包含ENVI。IDL程序编写JSON文件的编写有固定格式,可参考帮助Overview。JSON文件编写GIS-TransformingourWorld任务请求构建(HTTPRest服务)服务分同步和异步服务,异步服务要在json文件中写清楚服务类型任务请求构建(HTTPRest服务)GIS-TransformingourWorld客户端开发Silverlight中调用HTTPRest服务Silverlight中调用HTTPRest服务GIS-TransformingourWorld部署环境企业级计算机集群计算机AmazonWebServices•1、简单介绍了ESE的基本知识,包括ESE的管理员控制台,安装后的文件等2、介绍了ESE的插件开发,任务请求构建以及WEB客户端调用HTTPREST服务3、环境的部署回顾纵览趋势纷享成功谢谢大家