APP下载

基于RIA和WebGIS的长江口海域危险化学品应急监测信息管理系统

2017-04-14刁希凯李亿红刘汉奇

计算机应用与软件 2017年3期
关键词:短距离多边形化学品

刁希凯 徐 韧 李亿红 刘汉奇

1(上海海洋大学海洋科学学院 上海 201306)2(国家海洋局东海环境监测中心 上海 201206)3(海洋赤潮灾害立体监测技术与应用国家海洋局重点实验室 上海 201206)

基于RIA和WebGIS的长江口海域危险化学品应急监测信息管理系统

刁希凯1,2,3徐 韧2,3*李亿红2,3刘汉奇2,3

1(上海海洋大学海洋科学学院 上海 201306)2(国家海洋局东海环境监测中心 上海 201206)3(海洋赤潮灾害立体监测技术与应用国家海洋局重点实验室 上海 201206)

利用传统的方式管理沿岸的危险化学品,不仅应急监测效率不高,而且事故模拟的能力差。针对这方面的问题,采用 Flex和ArcGIS API for Flex开发基于RIA和WebGIS的长江口海域危险化学品应急监测信息管理系统,完成了对污染扩散模型的集成,实现了对长江口海域危险化学品的可视化管理以及应急事件处置流程的软件化。结果表明,系统增强了对事故的模拟能力,提高了化学危险品应急事件处置的效率。

RIA 危险化学品 模型集成 应急处置

0 引 言

长江口海域装载危险化学品的船舶往来频繁,沿岸的危险化学品企业众多,一旦发生危险化学品泄漏事故,将会迅速对周边环境造成严重的危害。为了高效应对这类监测工作,利用RIA结合WebGIS来管理长江口海域的危险化学品风险源实有必要。

1 技术平台和系统设计

1.1 技术平台

将RIA技术引入到WebGIS系统中,可以解决传统框架下WebGIS的局限性,能够让用户体验快速、流畅的WebGIS[1]。

1) RIA开发平台

传统网络应用程序把HTML页面作为表示层,所有的数据处理都在服务器端[2]。这样会导致服务器的运行压力比较大、客户端的界面体验性差。

RIA结合了C/S模式下优秀的客户体验效果和Web程序易于部署和更新的特点[3],基于RIA开发的系统优势明显[4-6],当下流行的RIA开发平台有Microsoft Silverlight、HTML5、Adobe Flex等,它们都有各自的优缺点[7]。

2) WebGIS平台

使用ArcGIS API for Flex开发的Flex应用可以非常便捷地使用REST接口提供的GIS查询及分析功能,还可以将ArcGIS Server提供的地图资源和其它资源嵌入到Web应用中。

1.2 系统逻辑结构

系统逻辑结构分为技术层、数据层、应用服务层和业务功能层四个部分,如图1所示。

图1 系统逻辑结构

1) 技术层

技术层是指系统开发过程所依赖的主要技术,包括数据库技术、WebGIS技术、.NET技术和RIA技术等。

2) 数据层

数据层中的系统数据库按照用途和类型分为模型数据库、监测数据库和基础数据库。这些数据库主要是用来存储模拟软件模拟的数值结果、风险源企业信息、地理底图和相关的图层数据。

3) 应用服务层

Web服务器用来响应客户端向应用服务器端发送的请求,GIS服务器通过Web服务器来响应Flex客户端发送的地图请求,从而将专题地图、地理地图以及空间分析的结果返回给客户端。

4) 业务功能层

业务功能层包括用户直接操作的各种功能,包括用户管理和系统的各种功能等。用户通过操作客户端实现访问数据和调用服务的目的。

1.3 系统开发架构

开发架构如图2所示,表示层通过MXML来描述Flex应用程序的界面。业务逻辑层通过ActionScript语言和相关类库构建RIA交互程序。数据访问层,空间数据是通过ArcGIS Server发布GIS相关服务来访问;业务数据是通过FluorineFx来访问,FluorineFx是专门针对.NET平台与Flex通信提供的AMF协议通信网关。

图2 系统架构设计

1.4 系统功能设计

系统功能主要包括信息管理、辅助决策和其它功能。如图3所示,辅助决策在系统功能中处于关键位置,辅助决策功能包括污染扩散模拟和风险等级评价两个模块,这个两个模块功能的实现需要分别将水动力扩散模型、加权平均评分法集成到系统中。

图3 系统功能设计

污染扩散模拟可以直观显示危险化学品污染扩散模拟的结果,并分析其结果对周边功能区的影响。污染扩散模拟功能的实现思路:(1) 根据对流扩散方程得出浓度点的分布范围;(2) 将一定范围的浓度点生成多边形;(3) 通过计算多边形与多边形之间的最短距离判断其对周边功能区的影响范围。

风险等级评价是将加权平均评分法集成到系统中。此方法的实现步骤:(1) 选取评价指标;(2) 将各评价指标属性值按一定方法转换成为评价分值;(3) 确定每个评价指标权重;(4) 累加分值与权重的乘积,得出用加权平均评分法计算出的综合评价分值。

2 关键技术的实现

2.1 扩散点生成扩散区域的实现

GIS对模拟结果的可视化表达有多种方式,王炫利用ArcGIS Engine将 NetCDF文件转换为Raster文件格式,然后对Raster进行渲染播放实现了危险化学品泄漏后扩散的时间轨迹动态演示[8]。吴迪军等利用克里金空间插值计算,将离散化的点还原为一个连续的空间[9]。

本系统中海域扩散模型输出结果是根据扩散方程生成一系列的扩散点集合,目的是为了研究扩散边界对周边功能区在距离方面的影响,是边界问题,而不必考虑扩散区内每个点的属性,因此我们不选用空间插值的方法,而是利用convexHull方法将外侧离散点生成一个没有凹面的最小多边形,这个多边形又被称为凸包。 ArcGIS API for Flex提供了GeometryService服务用于编辑几何要素,例如移动要素,编辑多变的形状等,可以利用此服务提供的convexHull方法,生成凸包。代码如下:

1) 通过实现convexHull来生成凸包

首先使用for循环将一系列点加入geometries中,然后执行convexHull操作,代码如下:

var geometries:Array = [];

for(var i=0;i

{

var result:Array = evt.result.serverInfo.initialData[i];

var pt:MapPoint = new MapPoint(Number(result [column.indexOf (″JD″)]),Number(result[column.indexOf(″WD″)]));

var wpt:MapPoint=WebMercatorUtil.geographicToWebMercator

(pt) as MapPoint;

geometries.push(wpt);

}

geometryService.convexHull(geometries,new SpatialReference(4326));

2) 凸包生成后将其加载到图层

GeometryService标签代码如下:

id唯一标识了这个GeometryService,url的作用是指定GeometryService的地址。在convexHullComplete事件发生时调用convexHullCompleteHandler方法将生成的图形添加到图层中。结果如图4所示,旗帜所在的位置是事故发生的位置,包围旗帜的第一个小的、颜色较深的多边形是由模拟扩散点生成的凸包。

图4 扩散点生成的扩散区域

2.2 扩散区域影响周边海洋功能区空间查询功能的实现

通过使用缓冲区分析和叠加分析可以研究扩散区域对周边环境的影响。张文艺对GIS空间分析中的缓冲区分析和叠加分析进行了研究[10]。欧阳坤将污染扩散图层与建筑图层进行叠加分析,输出污染扩散范围内的建筑物信息[11]。缓冲区和叠加分析主要是对污染扩散区域所能覆盖到的功能区进行空间分析,而本系统计算的是污染扩散区域与周边功能区之间的最短距离,在一定范围内即使周边功能区没有受到影响也要参与计算,这实际上是要转换为计算多边形与多边形之间的最短距离,实现思路和过程如下:

(1) 使用if语句判断两个参数是否是多边形,如果任意一个参数不是多边形就不能参与以后的计算。 if(geo1.type!=Geometry.POLYGON||geo2.type!=Geometry.POLYGON)

(2) 判断两个多边形是否相交或包含,方法是首先遍历多边形中所有的rings(Polygon对象是由一个或多个ring对象的有序集合,ring是一个封闭的Path,即起始点和终止点有相同的坐标值,其中ring可以分为out ring和inner ring,它们都是有方向性的)。然后对其中包含的每个ring进行遍历,如果某个ring中的点包含在另一个多边形中,则返回true,两个多边形之间的距离为0,路径不需要画;如果返回false,则需要进行距离和路径的计算,代码如下:

Private static function PolygonInsectPolygon (poly1:Polygon,poly2: Polygon): Boolean

{

var ring1:Array =poly1.rings as Array;

var ring2:Array =poly2.rings as Array;

for (var i:int =0;i

{

var ringA:Array=ring1[i] as Array;

for(var j:int=0;j

{

var pt:MapPoint =ringA[j] as MapPoint;

if(poly2.contains(pt))

{return true;}

}

}

……/*代码省略,方法同上,利用两个for循环,对ring2中每个ring中的点进行if判断,如果poly1中包含其中的点则返回true。*/

return false;

}

(3) 如果两个多边形没有相交或包含,则计算两个多边形之间的最短距离。ArcGIS API for Flex在其开发包中提供了com.esri.ags.tasks.GeometryService.distance()方法,并在帮助文档中告知可以计算除了Extent类以外的所有的几何类之间的距离,但是没有说明计算两个多边形之间的距离时,起算点在多边形中的哪个位置。因此本文没有尝试使用distance()方法,而是采用自定义函数,在误差允许的范围内(因为求得的大地线需要经过距离改化和方向改化才可利用平面三角形公式进行计算[12]),将多边形之间的最短距离转换为点与线段的最短距离。

基本思路是分别遍历一个多边形上所有rings中的点到另一个多边形上所有rings中的点所组成线段的距离,最终找到距离最小的值就是多边形之间的最短距离。

求某个点到某个线段距离具体分析如下:

已知A、B、C三点的经纬度坐标,假设所求的距离是点A到某线段BC的距离,先求得三角形的边长a、b、c,再定义一个obj对象接收返回值,varobj:Object=newObject();点A到线段BC的最短距离可以分为三种情况讨论,如图5所示,当满足条件a2+b2-c2≤0时即if(a×a+b×b-c×c<=0)时,说明角C为钝角或者直角,此时b为点A到线段BC的最短距离,即obj.distance=b;当满足条件a2+c2-b2≤0时即if(a×a+c×c-b×b<=0)时,说明角B为钝角或者直角,此时c为点A到线段BC的最短距离,即obj.distance=c;当以上两个条件都不满足时,说明角B和角C都是锐角,此时垂线段h为点A到线段BC的最短距离,即obj.distance=h,最后求解h的长,varh:Number=Math.sqrt(c×c-Math.pow((a×a+c×c-b×b)/(2×a),2))。

图5 点A到线段BC最短距离的三种情况

对周边海洋功能区空间查询完成后的显示结果如图6所示,图中显示,在某时间段内,污染源扩散的影响范围距离河口海洋保护区的距离是0.57km;距离某保留区的距离是0km,说明已经开始污染此区域;距离旅游娱乐区的距离是3.07km。

图6 扩散区域影响周边海洋功能区空间查询结果

2.3 风险等级评价模型的集成

评价模型的建立有多种方法,王纪东采用层次分析法和灰色聚类相结合的方法对内河危化品码头进行风险评价[13]。李学盛将层次分析法与模糊综合评价法集成到系统中对单个油品储罐进行安全状态评估[14]。

本文采用的评价模型是加权平均评分法,其中权重和评价指标的确定采用了层次分析法和德尔菲法。加权平均评分法基本原理是用权重(W)对各项指标的得分(P)进行加权综合,其结果即为多项指标的综合评价值F。公式如下:

F=∑PiWi(i=1,2,…,n)

式中,F代表多项指标综合评价值;Pi代表第i项指标的评分;Wi代表第i项指标的权重;n为指标的项数。

表1列出了每项指标的权重和指标对应的评分标准:Pi分为高风险(3分)、中风险(2分)、低风险(1分)三个等级;准则层分为12个指标,每个指标对应的权重W1-W12在表1中列出。

表1 等级评价规则

根据表1的等级评级规则,在客户端和服务端定义、实现相应的方法,以便在数据库中读取数据并返回计算结果。

(1) 在MXML代码中定义标签,在点击“等级评价”按钮后,实现远程调用UpdateFXDJ()方法;返回结果后调用onUpdateFXDJResult(event)方法,显示最后的评价值。代码如下:

(2) 在FluorineFx服务库中定义UpdateFXDJ()方法,代码如下:

public string UpdateFXDJ()

{……//代码

double score = 0;

score += GetFXYSF(……省略参数);

/*多次执行类似操作,GetFXYSF()的作用是从数据库取得FXZBQZ*FXYSDF(风险指标取值*风险要素打分)的值,直至score得到所有累加值*/

……//代码

}

public double GetFXYSF(string fxzb, string fxys)

{……//代码

string sql = ″select isnull(FXZBQZ*FXYSDF,0)FROM FXDJPJ WHERE FXZB=‴ + fxzb + ‴ AND FXYS=‴ + fxys + ‴″;

……//代码

}

3 应用案例

以一个模拟案例来说明系统从接到应急监测任务开始到自动生成监测方案这一流程。如图7所示,假设接报得知吴淞口外航道发生化学危险品泄露事故,事故发生的经度是121.50,纬度是31.45。得到接报的详细内容以后,应急领导小组组长通知副组长,并召开应急小组成员会议,确认应急监测项目(水文、水质、生物生态、气象),并通知相关科室准备出海监测任务。

图7 从接报到生成监测方案阶段流程图

将接报得到的基本信息(接报形式、经纬度、时间、事件概要、要求)以及会议商讨的信息(应急监测领队、应急监测人员、应急监测的项目)输入到系统中。通过危险化学品的海域污染扩散模拟功能可以获取污染扩散随时间变化对周围海洋功能区的影响,针对模拟的结果布设监测站位。系统会将信息按照监测方案的格式进行布局,最后生成一个完整的监测方案用来指导出海监测。

从模拟的时间效率来看,从填写应急监测项目信息到模拟出扩散影响范围再到布设监测站点,然后生成应急监测方案,整个过程不足10分钟,与以往人工编写应急监测方案相比,缩短了工作时间,为应急监测争取了宝贵的时间。

4 结 语

本系统以Flex和ArcGIS API for Flex为基础开发,Flex开发的系统用户体验性强,界面友好;而ArcGIS API for Flex为开发人员提供了大量的封装类便于调用,提高了开发的效率。本系统实现了对污染扩散模型的集成,弥补了以往应急监测过程中辅助决策能力差的不足;将风险等级评价模型集成到系统中,通过监测危险化学品风险源的风险等级,实现了对潜在的风险进行提前监测,提前预警的功能。

[1] 宣翠仙,颜钰琳.基于RIA的WEBGIS技术研究及应用进展[J].电脑知识与技术,2014,10(25):6008-6010.

[2] 姜锐,刘璐.RIA技术在WebGIS中的应用研究[J].测绘与空间地理信息,2012,35(9):106-108.

[3] 王非.WebServices应用研究与RIA系统中的实现[J].计算机应用与软件,2010,27(3):168-171.

[4] Wang L,Hu D,Wang Z,et al.Research and realization of RIA WebGIS based on Flex[J].Computer Applications,2008,28(12):3257-3260.

[5] 吴涛,戚铭尧,黎勇,等.WebGIS开发中的RIA技术应用研究[J].测绘通报,2006(6):34-37.

[6] 许自舟,梁斌,张浩,等.基于ArcGIS Server的海洋环境信息服务平台设计与实现[J].海洋环境科学,2013,32(2):284-288.

[7] 李海.ArcGIS Web API开发平台的选择[C]//第十五届华东六省一市测绘学会学术交流会论文集,2012.

[8] 王炫.基于GIS的危险化学品泄漏事故环境风险预测与评价信息支持系统研究[D].上海:复旦大学,2009.

[9] 吴迪军,陈建国,黄全义,等.水污染扩散的二维数值模拟及其可视化[J].武汉大学学报(工学版),2009,42(3):296-300.

[10] 张文艺.GIS缓冲区和叠加分析[D].长沙:中南大学,2007.

[11] 欧阳坤.基于三维和时态GIS的大气污染扩散模拟系统研究与实现[D].北京:清华大学,2011.

[12] 孔祥元,郭际明,刘宗泉.大地测量学基础[M].武汉:武汉大学出版社,2005.

[13] 王纪东.内河危化品码头安全风险评估与应急管理研究[D].重庆:重庆交通大学,2013.

[14] 李学盛.基于WebGIS油品储罐区风险评价与动态监控系统研究与实现[D].上海:华东理工大学,2013.

EMERGENCY MONITORING INFORMATION MANAGEMENT SYSTEM FOR HAZARDOUSCHEMICAL PRODUCTS ON YANGTZE RIVER ESTUARY BASED ON RIA AND WEBGIS

Diao Xikai1,2,3Xu Ren2,3*Li Yihong2,3Liu Hanqi2,3

1(CollegeofMarineSciences,ShanghaiOceanUniversity,Shanghai201306,China)2(EastChinaSeaEnvironmentMonitoringCenterofSOA,Shanghai201206,China)3(KeyLaboratoryofIntegratedMarineMonitoringandAppliedTechnologiesforHarmfulAlgalBlooms,S.O.A.,MATHAB,Shanghai201206,China)

Using traditional ways to manage coastal hazardous chemical products leads to inefficiency in emergency monitoring as well as low ability in accident simulation. Aiming at these problems, we use Flex and ArcGIS API for Flex to develop an emergency monitoring information management system for hazardous chemical products on Yangtze River estuary based on RIA and WebGIS. We complete the integration of the pollution dispersion model. Meanwhile, we achieve visual management of hazardous chemical products on Yangtze River estuary and software implementation for emergency response. The results show that the system enhances the ability in accident simulation and promotes the efficiency in emergency monitoring.

RIA Hazardous chemical Model integration Emergency response

2015-12-22。上海市科委项目(12231203200)。刁希凯,硕士生,主研领域:GIS,环境科学。徐韧,教授级高工。李亿红,高级工程师。刘汉奇,工程师。

TP3

A

10.3969/j.issn.1000-386x.2017.03.014

猜你喜欢

短距离多边形化学品
南通象屿将为日伸海运建造首批LNG动力化学品船
化学品库房施工组织设计分析
多边形的艺术
危险化学品安全监管实践与探索
多边形内外角问题的巧解
短距离加速跑
《危险化学品目录(2015版)》解读
自行车短距离项目场地专项力量训练方法的比较
训练课RPE在短距离自行车训练负荷监控中的应用
有关多边形边数问题的思考方法