记录下生活的点滴

geoevent初探(2)

  • Posted on:
  • By: went7
  • With:

本文内容

  • 导入包含inputs, outputs, GeoEvent Definitions和GeoEvent Services的GeoEvent产品配置文件
  • 讨论注册并使用ArcGIS Server管理的地理数据库的优势
  • 阐述如何将map package发布为feature service
  • 配置GeoEvent Service,向已发布的feature service中添加或更新要素
  • 向ArcGIS Online中添加已发布的feature service
  • 使用Operation Dashboard for ArcGIS可视化实时数据

开始

使用xml配置文件完成环境搭建,快速开始本节的练习
Module2 - Quick Start配置文件的内容:

  • 一个使用5565 TCP端口的名为tcp-text-in的input
  • 名为tcp-text-out和file-out的output分别通过TCP和system file I/O输出事件数据
  • 名为Flights的GeoEvent Service,用于整合input和output
  • 名为GeoEvent_Input和GeoEvent_Output的两个注册系统文件夹

导入配置文件xml会创建以上项,如果已有同名项存在,则会覆盖它们。
按照以下操作导入配置文件:

  1. 打开GeoEvent Manager
  2. 进入Site>GeoEvent>Configuration Store
  3. 点击Reset Configuration按钮(将会删除所有之前创建的组件)Imgur
  4. 点击Import Configuration并进入到Module2_QuickStart.xml的文件目录
  5. 选择Module2_QuickStart.xml文件并选择Import Configuration选项
  6. 点击Import导入配置文件中的所有项
  7. 在GeoEvent Manager中,进入Services>Monitor
  8. 点击箭头开始运行tcp-text-in input
    在运行tcp-text-out output之前需要先运行TCP Server应用脚本
  9. 打开TCP Server应用
  10. 在GeoEvent Manager中,点击箭头开始运行tcp-text-out output
  11. 确认output运行成功,注意TCP Server中的信息Imgur

使用Features和Feature Services

为了实现在feature service中更新features,我们必须让服务具备feature access能力。我们需要让服务的数据存放在企业级数据库中。

为ArcGIS Server注册企业级数据库

什么是企业级数据库?
ArcGIS的企业级数据库是存放多种类型地理数据集集合的多用户的关系型数据管理系统。例如Oracle, Microsoft SQL Server, PostgreSQL, Informix和IBM DB2。
如何创建企业级数据库?
具体参考官方帮助
以下介绍如何验证是否成功为ArcGIS Server注册数据库

  1. 在浏览器中,打开ArcGIS Server Manager并使用PSA账户证书登录
  2. 在Server Manager中,进入Site>GIS Server>Data Store
  3. 点击Validata All按钮验证站点可以连接到注册的Managed数据库Imgur
    需要注意的是postgresql会将属性字段名改为小写,这会影响到正常的使用

发布map packages

ArcGIS map packages可以方便的提供map content和图层符号系统。Imgur

  1. 打开Windows File Explorer
  2. 进入..\data\MakingFeaturesComeAlive文件夹
  3. 在ArcMap中打开Flights.mpk。地图内容将会被解压到用户下的..\Documents\ArcGIS\Packages文件夹下
  4. 在ArcMap中,点击File并选择Share As>Service
  5. 选择Publish a service选项,点击NextImgur
  6. 在下拉列表中选择要连接的ArcGIS Server
  7. 点击Next接受默认的服务名称Flights
  8. 选择Create new folder并输入GeoEvent,点击ContinueImgur
  9. 在Service Editor菜单中,点击Capabilities,取消选中KML,选中Feature Access复选框Imgur
  10. 点击Analyze查找是否有潜在错误和问题
  11. 点击Publish发布feature service
  12. 将数据复制到服务器管理的企业级数据库中Imgur
  13. 点击OK完成发布

将feature services加入web maps

  1. 打开浏览器进入http://www.arcgis.com/
  2. 使用ArcGIS Online for Organizations账户登录并进入My Content
  3. 点击create创建新的项目创建新的web map
  4. 输入title, tags以及descriptionImgur
  5. 点击Add选择Add Layer from Web
  6. 输入我们发布的要素服务的URL
  7. 复制服务地址
  8. 在Add Layer from Web对话框中粘贴URLImgur
  9. 点击Add Layer将feature layer添加到web map中
  10. 点击Save保存web map
  11. 在ArcGIS Web Map中,移动鼠标到HOME上并点击My Content

在Operations Dashboard for ArcGIS中创建一个operation view

operations dashboard为组织提供了一种监控活动和事件,追踪现场工作并评估日常工作表现的方式。
使用Operations Dashboard之前,必须拥有一个能登录到ArcGIS Online for Organizations或Portal for ArcGIS的named user账户。

  1. 打开Operations Dashboard
  2. 点击Continue输入ArcGIS Online for Organizations URL或Portal for ArcGIS URL。Imgur
  3. 使用named user证书登录
  • 点击Create a New Operation View
  • 选择Multi-display operation view并点击Create
  • 选择添加Map微件并点击OK
  • 选择早期设计并发布的Flights Web Map
  • 点击Open
    ImgurImgurImgurImgur
    4.从Configure Map>Settings中,点击Data Sources选项卡
    5.选中Flights要素图层Imgur
    6.点击Capabilities选项卡选中需要的能力
    7.点击OK保存map微件Imgur
    8.进入到Operations Dashboard顶部的主菜单栏
    9.点击WIDGETS选择Refresh SettingsImgur
    10.在Refresh Interval对话框中:
  • 点击Refresh type下拉框选择use a single interval to update data sources
  • 点击Modify改变刷新间隔为1秒Imgur
    11.点击Close关闭Refresh Interval对话框
    12.在Operations Dashboard的右上角,点击map微件的Settings并选择ConfigureImgur
    13.确认map微件的Flights图层的数据源被设置为DynamicImgur
    14.点击OK接受Data Sources map widget的设置
    15.在Operations Dashboard主菜单中,点击TOOLS并点击Save,输入标题,概述,描述等。Imgur
    16.在ArcGIS Online for Organizations账户中,如果刷新My Content页面,你会看到一个叫做Flights Operation View的新项Imgur

让要素实时变化起来

这个练习中,我们将使用ArcGIS GeoEvent Manager创建一个新的GeoEvent Service,使用GeoEvent Simulator模拟一个事件流,观察ArcGIS GeoEvent Extension for Server是如何更新feature service的要素的。

为你的ouput导入一个GeoEvent Definition

  1. 在GeoEvent Manager中,进入Site>GeoEvent>GeoEvent Definitions
  2. 点击Import GeoEvent Definitions指定以下属性Imgur
  3. 点击Import导入与Flights要素图层匹配的GeoEvent Definition
  4. 在GeoEvent Manager中,进入Site>GeoEvent>GeoEvent Definitions并打开Flights GeoEvent DefinitionImgurImgur

为你的input定制GeoEvent Definition

  1. 在GeoEvent Manager中,进入Site>GeoEvent>GeoEvent Definitions并点击粘贴复制导入的GeoEvent Definition
  2. 在打开的GeoEvent Definition对话框中,注意到FlightNumber, StartTime,以及Geometry attribute字段仍然保持着原来的字段标签
  3. 在GeoEvent Definition对话框中,输入Flights-TcpTextIn作为新的GeoEvent Definition的名字
  4. 点击New Field添加一个名为Longitude的Double类型的字段
  5. 点击New Field添加另一个名为Latitude的Double类型的字段
  6. 点击编辑字段标记GEOMETRY,重命名为Location
  7. 点击Reorder Fields并使用箭头按钮将Geometry字段移动到事件属性字段列表的底部
  8. 点击Save保存更新后的GeoEvent DefinitionImgur

重新配置tcp-text-in input

  1. 在GeoEvent Manager,进入Services>Inputs并点击tcp-text-in编辑inputImgur
  2. 更改以下属性
    • 更改Incoming Data Contains GeoEvent Definition属性为No
    • 改变Create Fixed GeoEvent Definitions属性为No
    • 指定使用已存在的名为Flights-TcpTextIn的GeoEvent Definition
    • 改变Construct Geometry From Fields属性为Yes
    • 指定X Geometry Field数据值为事件中的Longitude字段
    • 指定Y Geometry Field数据值为事件中的Latitude字段
      Imgur
  3. 点击Save保存对tcp-text-in input的编辑

通过模拟一些事件数据检验input

  1. 打开GeoEvent Simulator并使用FeatureFlights.csv文件作为数据源
  2. 在GeoEvent Manager中,启动Flights GeoEvent Service, tcp-text-in input, tcp-text-out和file-out
  3. 开始模拟飞行数据事件ImgurImgur

重新配置Flights GeoEvent Service

  1. 在GeoEvent Manager,进入Services>GeoEvent Services并点击编辑Flights GeoEvent Service
  2. 双击Processor为GeoEvent Service添加一个新的处理器Imgur
  3. 按照下图所示配置新的处理器的属性Imgur
  4. 点击OK创建新的Field Mapper处理器
  5. 按照下图修改Flights GeoEvent Service并点击PublishImgur
  6. 在GeoEvent Simulator中点击Step发送一个事件
    注意到原先的经纬度信息没有在TCP Server端中出现Imgur
  7. 在GeoEvent Manager中,进入Services>Outputs并点击Add Output
  8. 在搜索框中输入feature关键字并点击SearchImgur
  9. 点击Select按钮选择Update a Feature output连接器
  10. 按照下图属性配置新的ouputImgur
  11. 点击Save保存新的output
  12. 在GeoEvent Manager中,进入Services>GeoEvent Services并点击编辑Flights服务
  13. 双击fs-out output加入到canvas上
  14. 按照下图所示修改Flights GeoEvent Service并点击PublishImgur
  15. 进入Services>Monitor页面并点击Reset Statistics
  16. 在GeoEvent Simulator中,点击Step一次发送一个数据事件
    此时进入ArcGIS Server 服务中可以看到新增了要素

使用Operations Dashboard for ArcGIS查看要素更新

  1. 打开Operations Dashboard并使用账号登录
  2. 双击打开Flight Monitor界面Imgur
  3. 开始启动事件模拟,当数据全部运行完毕,在图上点击要素查看信息Imgur
  4. 点击Stop并关闭GeoEvent Simulator

geoevent初探(1)

  • Posted on:
  • By: went7
  • With:

介绍

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查看监控信息并进行组件管理

oracle

  • Posted on:
  • By: went7
  • With:

Oracle大概也许是太难用了,捣鼓两天遇到各种错。目测数量已经占到俺全年遇到报错的一半。这么难用的软件市场份额如此之广也是十分的醉人。我的愿望是世界和平以及弃用oracle。

开场白

  • Posted on:
  • By: went7
  • With:

这两天捣鼓了一下,用hexo搭建了自己的博客。打算着手把之前在别的平台上写的豆腐块迁移过来。

写博客是对日常生活、学习的一种积累,时间久了回头看看之前写的文字还蛮有意思。另外,也可以锻炼逻辑思维,预防老年痴呆。

至于为何要自己搭建博客,而不是使用眼下众多的火热的博客平台,我觉得很重要的一点是自由。

知名博主阮一峰说的好,

喜欢写Blog的人,会经历三个阶段:
第一阶段,刚接触Blog,觉得很新鲜,试着选择一个免费空间来写。
第二阶段,发现免费空间限制太多,就自己购买域名和空间,搭建独立博客。
第三阶段,觉得独立博客的管理太麻烦,最好在保留控制权的前提下,让别人来 管,自己只负责写文章。

眼下的博客平台分类太过明确,CSDN太过技术,新浪博客太过生活,google的blogger等国外平台又被墙。之前在blog.com上写过博客,但是服务器不断的崩溃让我最终选择的自己搭建博客。

开设这个博客的目的就是想随心的写点东西,畅所欲言。未来的内容会包括但不限于GIS及相关技术类、吐槽类、游记等。敬请关注。