介绍

ArcGIS GeoEvent是ArcGIS for Server的扩展,用来对实时事件数据进行处理。GeoEvent是esri在ArcGIS 10.2中推出的新产品,用于满足各个行业中将实时流数据与GIS应用、工作流和分析相结合的需求。

GeoEvent具备的能力有:

  • 将现有GIS数据与实时流信息相结合
  • 在流数据上进行持续的处理分析
  • 生产新的流数据并应用于整个ArcGIS系统
  • 根据接受到的事件进行更新操作或发送告警提醒


本文内容

  • Windows下安装ArcGIS GeoEvent扩展
  • 在Windows中识别GeoEvent进行和服务
  • 介绍GeoEvent扩展中的工具,管理界面以及应用
  • 讨论ArcGIS Server提供的,供GeoEvent扩展使用的自签名证书
  • 介绍ArcGIS Data Store —— 用于存放要素数据
  • 探索ArcGIS GeoEvent Manager的功能

    如何创建输入输出
    如何设计GeoEvent服务并发布
    如何注册至ArcGIS Server和系统文件夹的连接
    如何使用GeoEvent Manager配置GeoEvent扩展

  • 使用GeoEvent Simulator创建事件数据模拟


产品安装

  1. 进入setup.exe安装包目录
  2. 双击setup.exe运行安装程序

  3. 浏览并接受许可条例并点击下一步

  4. 选择Complete安装整个程序

  5. 指定计算机中ArcGIS Server的账户并输入密码

  6. 点击install开始安装
  7. 在Esri软件授权向导对话框中进行许可授权

  8. 点击Finish结束安装

ArcGIS GeoEvent Manager

ArcGIS GeoEvent Manager用于创建和管理inputs, outputs, GeoEvent服务等。input接收到事件数据并创建地理事件。地理事件通过的过滤器和处理器都是可见的,并且每个输入都可以有多个输出。

第一个例子

  1. 打开GeoEvent Manager
  2. 使用ArcGIS Server的PSA账户登录GeoEvent Manager


    注意:如果你的ArcGIS Server挂载在Portal for ArcGIS上,你需要使用一系列一致的证书去登录portal, ArcGIS Server Manager,以及GeoEvent Manager。查看如何获取portal令牌。
    登录成功后可看到监控界面

  3. 熟悉一下GeoEvent Manager界面的接口

    在Services选项卡下,可以看到Monitor, Inputs, GeoEvent Services和Outputs页面。稍后会通过访问这些页面创建和发布你的第一个GeoEvent服务。

  4. 进入Site>GeoEvent下

    通过Configuration Store导入导出GeoEvent扩展配置,通过Data Stores页面注册到系统文件夹,ArcGIS Server实例以及Portal for ArcGIS或ArcGIS Online的连接。
  5. 在GeoEvent Manager页面中,点击Logs

    查看日志,过滤日志,搜索日志。
  6. 在Logs页面中,点击Settings
    配置log level,根据不同的场景(如调试状态)

注册ArcGIS Server连接

  1. 在GeoEvent Manager中,进入Site>GeoEvent>Data Stores

    当GeoEvent扩展安装后,一个在本机服务器上的到ArcGIS Server的注册连接就自动创建了(10.3以后版本)。

    也可以编辑默认的ArcGIS Server连接

使用安全的服务

如果需要使用安全的服务,在页面中选中use token并按照下方显示的操作获得安全令牌即可

为基于文件的input/output注册系统文件夹

  1. 在GeoEvent Manager中,进入Site>Data Stores
  2. 点击Register Folder注册一个系统文件夹
  3. 输入Name和Path

  4. 点击Register完成注册

  5. 重复以上操作注册输入文件夹。

创建和配置GeoEvent Service组件

创建输入和输出

接下来我们将创建一个input, output并配置一个基本的GeoEvent服务。
首先配置一个能够通过TCP socket接收模拟事件数据的input

  1. 在GeoEvent Manager中,进入Services>Inputs中点击Add Input

  2. 在搜索栏中输入TCP关键字找到Receive Text from a TCP Socket
  3. 点击Select然后开始配置input

  4. 配置新的input

  5. 点击Save完成input创建
  6. 在GeoEvent Manager中,进入Services>Inputs查看新创建的input

    接下来创建可发送处理事件数据至文本文件的output。output文件将被写入为CSV格式。
  7. 在GeoEvent Manager中,进入Services>Outputs中并点击Add Output

  8. 搜索file关键字

  9. 点击Select选中Write to a CSV File并进行配置

  10. 点击Save保存output
  11. 在GeoEvent Manager中,进入Services>Outputs查看新创建的output

    接下来将在GeoEvent Service中应用input和output

    设计和发布GeoEvent Service

  12. 在GeoEvent Manager中,进入Services>GeoEvent Services并点击Add Service

  13. 输入Flights作为Service Name,点击Create

  14. 熟悉一下用于设计和发布GeoEvent Services的用户界面
  • 查看GeoEvent Service的信息(名字和描述)
  • 在组件菜单中找到我们创建的input和output
  • 注意Layout模块中提供的对齐工具
  • 注意GeoEvent Service信息下方的状态和概述数据

15.拖拽tcp-text-in input到canvas上
16.拖拽file-out output到canvas上
17.用连接线连接input和output


18.点击Publish发布GeoEvent Service

19.进入Services>GeoEvent Services中

接下来我们将模拟一些不同飞行器带有位置信息的事件并观察记录在文本中的飞行数据

使用GeoEvent模拟器模拟事件流

  1. 打开GeoEvent Simulator

  2. 在GeoEvent Simulator中,点击Load File进入…\simulations文件夹
  3. 选择FlightData.csv文件作为模拟事件的数据源

  4. 在Load From File对话框中改变Time Field#为2。这指定了作为时间数据的字段(首字段index从0开始)

  5. 点击Load加载模拟文件
  6. 点击Click to Connect建立服务器连接。

  7. 点击Step一次向TCP socket发送单个事件
  8. 打开Windows Explorer进入输出写入文件的系统文件夹
  9. 用文本编辑器打开csv文件,我们可以看到GeoEvent Service处理过的数据被记录到文件中
  10. 在GeoEvent Simulator中,点击Play发送一个事件流至指定的TCP socket
  11. 在GeoEvent Simulator中,点击Pause暂停模拟
  12. 改变速率设置为每秒发送9个事件
  13. 选中Set value to Current Time让当前系统事件取代源文件中的时间戳
  14. 点击Go to Start并点击Play重新启动事件数据流
  15. 关闭并重新打开csv文件,检查被写入到文件中的新的事件。我们会发现事件每秒钟被写入9次
  16. 在GeoEvent Simulator中,点击Pause暂停事件流,然后关闭GeoEvent Simulator
  17. 在GeoEvent Manager中,进入Site>GeoEvent>GeoEvent Definitions。我们会发现一个名为Flight的新的GeoEvent定义被创建
    这里的definition是根据每个事件数据的第一个字段来命名创建的。GeoEvent会根据数据中第一个识别到的时间字段设置名称为StartTime,识别到的第一个图形字段命名为Geometry。

修改GeoEvent Service发送数据至多个输出

接下来我们将增加一个TCP socket的输出

  1. 在GeoEvent Manager中,进入Services>Outputs
  2. 点击Add Output创建一个新的Output连接器
  3. 找到Push Text to an External TCP Socket output
  4. 点击Select选中Push Text to an External TCP Socket output开始配置新的output
  5. 单击Save保存output
  6. 进入..\utilities\tcp-server-app文件夹
  7. 在记事本中打开TCPServerApp.bat脚本,查看端口号
  8. 确认..\ArcGIS\Server\framework\runtime\jre\bin中的java.exe可执行
  9. 保存修改后的文件并关闭
  10. 运行TCP Server
  11. 在GeoEvent Manager中,停止并重启tcp-text-out output
  12. 在GeoEvent Manager中,进入Services>GeoEvent Services
  13. 点击Flights GeoEvent Service编辑服务
  14. 拖拽tcp-text-out output到画布上
  15. 将tcp-text-in input到tcp-text-out output上
  16. 点击Publish将GeoEvent Service更新
  17. 重新运行simulator注意到每条事件记录以被处理的时间开头,另外输出的时间字段的格式由ouput配置中指定
  18. 在GeoEvent Manager中,进入Services>Monitor查看监控信息并进行组件管理