快速检索
  气象   2014, Vol. 40 Issue (7): 875-880.  DOI: 10.7519/j.issn.1000-0526.2014.07.011

技术交流

引用本文 [复制中英文]

朱文剑, 毛冬艳, 张涛, 2014. 改进的多边形合并算法及其在天气预报业务中的应用[J]. 气象, 40(7): 875-880. DOI: 10.7519/j.issn.1000-0526.2014.07.011.
[复制中文]
ZHU Wenjian, MAO Dongyan, ZHANG Tao, 2014. An Improved-Polygons Merging Algorithm and Its Application in Weather Forecast Operation[J]. Meteorological Monthly, 40(7): 875-880. DOI: 10.7519/j.issn.1000-0526.2014.07.011.
[复制英文]

资助项目

公益性行业(气象)科研专项(GYHY201406002) 资助

第一作者

朱文剑,主要从事强对流天气预报和研究工作.Email:zhuwj@cma.gov.cn

文章历史

2014年1月04日收稿
2014年3月20日收修定稿
改进的多边形合并算法及其在天气预报业务中的应用
朱文剑 , 毛冬艳 , 张涛     
国家气象中心,北京 100081
摘要:本文根据国家气象中心分类强对流预报业务需求,基于当前比较成熟的多边形裁剪算法(Weiler-Atherton算法)的思路,开发了一种改进的多边形合并算法(PM算法)。该算法的优点是无需考虑输入序列的方向性、设计思路简单,运行高效,更符合天气预报业务的需求。此外,该算法也可用于多边形裁剪。2013年4—9月的业务试运行表明该算法准确、运算速度快且性能稳定。该算法在灾害性天气预报,环境气象预报、专业气象预报等天气预报业务领域具有较好的应用前景。
关键词分类强对流概率预报    多边形合并    天气预报业务    
An Improved-Polygons Merging Algorithm and Its Application in Weather Forecast Operation
ZHU Wenjian, MAO Dongyan, ZHANG Tao    
National Meteorological Centre, Beijing 100081
Abstract: An improved polygons merging algorithm (hereafter "PM" algorithm) was developed for the operational test-bed of classified severe weather probability forecasting, based on Weiler-Atherton algorithm. In this algorithm, the input points can be non-directional. It is a simple and efficient polygons merging algorithm that meets the basic requirements of the meteorological operation and can also be used for polygons clipping. During the period from April to September 2013, it was tested on the test-bed platform and proved to be exact, efficient and stable. In addition, it can be used in some other relevant fields of weather forecast operation, such as disaster weather forecasting, environmental weather forecasting, special weather forecasting and soon.
Key words: classified severe weather probability forecasting    polygons merging    weather forecast operation    
引言

多边形裁剪是计算机图形学和地理信息系统空间分析等领域的重要问题。现有的多边形裁剪算法或者局限于解决某类多边形问题,或者算法结构复杂,时间消耗多,如Sutherl-Hodgeman、梁-Barsky、NLN算法要求被裁剪多边形是凸多边形。也有一些算法能提供通用解决方案,如Weiler-Atherton算法(Weiler et al, 1977, 简称WA算法)、Greiner-Hormann算法(Greiner et al, 1998, 简称GH算法)是公认的可以在合理时间内处理一般多边形(包括凹多边形和带孔洞多边形)的裁剪问题。WA算法和GH算法虽然功能较强,但该算法需要输入的坐标序列具有明确的方向性(顺时针或逆时针输入)。国内有的学者也对多边形裁剪问题进行了研究,但其重点在于改进目前已有算法的运算效率(刘勇奎等, 2003付迎春等,2006),其中刘勇奎等(2006)提出的多边形裁剪算法虽然不用考虑输入序列的方向性,但是在实际运算过程中仍要通过技术处理来实现方向的判断,因此并没有从根本上避免方向性问题。

天气预报业务领域亦涉及到多边形的处理。目前日常天气落区预报产品(如定量降水预报和强对流落区预报等)多以多边形顶点坐标方式以MICAPS(Meteorological Information Comprehensive Analysis and Processing System)(李月安等,2010)第14类格式存储,该格式完全不考虑多边形顶点的序列的方向性,因此,在读取该格式的数据或输出成该格式的数据时都无需考虑方向性,这也使得目前已有的多边形裁剪算法无法高效地解决当前的问题。随着气象现代化建设的逐步推进,概率预报和精细化预报在实际业务预报中显得越来越重要。国内学者近年来对强对流天气潜势分析(张小玲等,2012)和分类概率预报(雷蕾等,2012)方面进行了初步探索研究,奠定了较好的基础。国家气象中心强天气预报中心自2011年起开展了分类强对流天气概率预报业务试验,试验的开展要求预报员在同一时间内既要完成强对流落区预报(何立富等,2011),同时也要完成分类强对流概率预报(毛冬艳,2012),由于试验开展初期不能在技术上实现两套产品之间的自动转化,因此,增加了预报员的工作量,造成了手工重复劳动。为了减轻预报员的负担,提高工作效率,需要开发“概率预报产品向确定性预报产品的自动转换技术”(Probability forecasts to Deterministic forecasts,简称“P2D技术”),该技术的核心是多边形合并算法(Polygon Merging Algorithm,简称“PM算法”)。

目前的多边形裁剪算法如WA算法不能够直接用于P2D技术,主要原因有三点:其一,P2D技术的目的是实现多边形的合并(可看作两个或多个多边形取并集)而不是裁剪(可看作两个或多个多边形取交集),二者虽无本质区别,但侧重点有所不同,其实现方式亦可灵活多变;其二,目前预报产品的坐标在存储时没有方向性(即没有按照顺时针或者逆时针方向存储数据),无法直接使用WA算法;其三,预报落区为非带孔的多边形,复杂程度有所降低,可以使用相对灵活简单的技术。基于以上需求,需要开发适合气象业务领域的简单准确高效的多边形裁剪技术。由于目前国内气象业务领域尚无合适的满足以上要求的多边形裁剪技术,所以需要开发适合P2D技术的PM算法以满足强对流预报业务需求。本文基于WA算法的基本思路,提出了PM算法,并对其在P2D技术中的应用进行介绍,展望其在相关业务领域的应用前景。

1 技术方法 1.1 WA算法简介

WA算法的基本原理是:由进点开始沿被裁剪多边形追踪,当遇到出点时跳转至裁剪多边形继续追踪,如果再次遇到进点跳转至被裁剪多边形继续追踪。重复以上过程,直到回到起始入点,即完成一个内侧多边形的追踪过程。这里进点和出点分别指被裁剪多边形进入裁剪多边形和离开裁剪多边形的交点(见图 1)。

图 1 WA算法流程图 Fig. 1 Flowchart of WA algorithm

WA算法技术路线如下:第一,建立主多边形和裁剪多边形的顶点链表;第二,求交点,归类,并按顺序插入到顶点链表中,在两个表的相应顶点间建立双向指针;第三,裁剪,分三步,第一步:如果还有未跟踪过的交点,则任取一个作为起点,建立空的裁剪多边形顶点表,把该交点输入结果顶点表。否则算法结束;第二步:如果该交点为入点,在主多边形顶点表内跟踪,否则在裁剪多边形顶点表内跟踪;第三步:如果跟踪到的是多边形顶点,将其加入结果顶点表,继续跟踪,直到遇到新的交点,重复第二、三步,直到回到起点。

1.2 PM算法

基于引言中阐述的三点理由,本文参考WA算法的思路,设计了适合天气预报业务领域的多边形合并算法(即PM算法)。

PM算法的基本原理是:根据两个多边形的交点和顶点将这两个多边形分为若干线段,并对每条线段所在位置进行识别,有的线段在另一个多边形里面,有的线段在另一个多边形外面。然后将这些线段首尾相连为若干个闭合多边形,经过处理后,这些多边形必然不会相交,如果有多个多边形,则取最外侧的多边形作为最后的结果输出(图 2)。

图 2 PM算法流程图 Fig. 2 Flowchart of PM algorithm

为方便读者将PM算法编制成计算机程序,下面结合图 3对算法的细节进行描述。第一步,设定两个多边形中一个为主多边形(图 3a中的C1—C2—C3—C4),另一个为副多边形(图 3a中的S1—S2—S3—S4);第二步,首先从主多边形入手,任选其中一个端点C1作为第一条线的起点进行遍历(即依次对每个节点进行访问),利用“射线法”判断某个点在一个多边形里面或外面,计算线段C1—C2和副多边形的交点I2和I3,对每条线段进行遍历求交直到该多边形结束,共得到8个交点(I1~I8),至此,将主多边形分为若干条线段(折线或直线段),仅保留在副多边形外面的线段(“C1—I2”、“I3—C2—I4”、“I5—C3—I6”、“I7—C4—I8”、“I1—C1”);第三步,和第二步类似,此时从副多边形入手,将副多边形分为若干条线段,仅保留在主多边形外面的线段(“S1—I1”、“I2—S2—I3”、“I4—S3—I5”、“I6—S4—I7”、“I8—S1”);第四步,将在第二、三步中获得的所有线段中,选取其中任意一条线段(图 3b中的线段C1—I2) 入手,以其中一个端点C1作为新的多边形的起点,在剩下的线段的所有端点中寻找离第一条线段的另一个端点I2最近的点(这里是I2—S2—I3线段的起点I2),将这两条线段连接起来组成一条新的线段,按此思路对所有线段进行遍历组合,直到线段闭合(即新的多边形形成)为止(图 3b所示的流程),如果还有某些线段没有使用,则必然还可以组成另一个新的多边形,重复前面的思路即可,直到所有线段都使用完毕。第五步,如果第四步中获得了一个或多个新的多边形,那么取最外侧的多边形(这里是“C1—I2—S2—I3—C2—I4—S3—I5—C3—I6—S4—I7—C4—I8—S1—I1—C1”)作为最终结果输出,至此,PM算法结束。值得一提的是,按类似的思路,该算法也可用于多边形裁剪。

图 3 (a)多边形相交示意图(其中C1—C2—C3—C4表示主多边形,S1—S2—S3—S4表示副多边形), (b)合并后的线条组合顺序图(例如“C1—I2”表示直线段C1至I2,“I3—C2—I4”表示曲线段I3至C2至I4,箭头代表组合顺序, C1—I2是起始线段) Fig. 3 (a) Sketch map of polygons Intersection in which, C1-C2-C3-C4 is main polygon, S1-S2-S3-S4 is auxiliary polygon, (b) combination of line sections, in which, "C1-C2" indicates line section C1 to C2, while "I3-C2-I4" indicates line section I3-C2-I4, solid line. with black arrow represents the sequence of combination, starting from line section C1-C2
1.3 PM算法和WA算法的异同点

PM算法和WA算法的思路主要有两点相似。首先,两个算法都需要查找两个多边形的交点;其次,PM算法中将线段归类为在另一个多边形外侧或内侧,与WA算法中将交点归类为入点或出点的思路相似。

这两个算法有以下几点不同:第一,WA算法支持带洞(即非单连通区域)的多边形,这使得该算法需要明确多边形顶点序列的方向(逆时针或顺时针),而PM算法目前不考虑带洞的多边形,所以不需要考虑多边形顶点序列的方向性;第二,WA算法的目的是要对多边形进行裁剪,所以从“交点”开始遍历查找闭合多边形,而PM算法的目的是要对两个多边形进行合并,所以从一个多边形的“端点”开始遍历查找闭合多边形,二者的出发点不同;第三,WA算法的复杂程度较PM算法高,但运算效率并不是本文研究的重点,所以并没有进行对比测试。可见,PM算法是一种更符合天气预报业务需求的简单准确高效的多边形合并算法。

2 PM算法的业务应用 2.1 在强对流天气预报业务中的应用

目前,国家气象中心强对流落区预报产品主要包括两类,一类是2010年正式业务化的强对流落区预报产品,该产品将预报对象分为三种:雷暴、短时强降水以及雷暴大风和冰雹(在MICAPS中的线条标值见表 1);另一类是正在进行业务试验的分类强对流概率预报产品,相对于上述业务化产品,该产品一方面进一步细分了强对流天气的类型,即将上述雷暴大风和冰雹的预报细分为雷暴大风预报和冰雹预报两种,且将确定性预报改为概率预报(在MICAPS中的线条标值及概率等级见表 2)。

表 1 强对流落区预报的天气类型和对应的标识符 Table 1 Severe weather types and its corresponding labels

表 2 强对流分类概率预报的天气类型和对应的标识符及概率等级 Table 2 Severe weather types of probability forecasting and its corresponding labels and probability ranks

为了减少预报员不必要的手工重复劳动,需要将雷暴大风概率预报和冰雹概率预报进行自动合并,以实现确定性预报的自动生成。

在P2D技术实现之前,预报员的工作流程是先制作分类强对流概率预报,然后在该产品的基础上再制作一份对应的确定性预报产品,这不仅花费时间,而且一旦修改概率预报落区,必须同时修改对应的确定性预报,因而在每次修改落区的同时要对两套产品进行操作。其实有大量的重复性工作可以通过编制算法来自动完成。基于这种需求,国家气象中心强对流天气预报中心组织开展了P2D技术的研究,而PM算法是该技术的核心。

从P2D技术流程来看(图 4),输入和输出的格式都采用MICAPS第14类格式,在第三步中使用了PM算法。

图 4 概率预报向确定性预报自动转换技术流程 (其中“**”代表概率值) Fig. 4 Technique flowchart of transforming probability forecasting to determinate forecasting

从实际业务中选取了2013年7月7日08时起报的12h时效分类强对流概率预报产品(图 5a)和对应的确定性落区预报产品(图 5b)。图 5b是按照图 2的流程由图 5a自动转换获得。图 6显示的是图 5a5b中黑色方框(内蒙古东北部和黑龙江西部)放大显示的结果,可见标注为“05205”和“05105”的两条线(图 6a)被合并为一条线,并重新标注为“050”(图 6b)。由图可见,自动转换获得了较好的结果,基本满足业务需求。

图 5 2013年7月7日08时起报12 h时效分类强对流概率预报(a)和强对流落区预报(b)(确定性预报) Fig. 5 12 h severe weather probability forecasting (a) and severe weather determinate forecasting (b) at 08:00 BT 7 July 2013

图 6 图 5a中黑色方框区域放大显示(a),图 5b中黑色方框区域放大显示(b) Fig. 6 (a) zoom in display of the black box in Fig. 5a, (b) zoom in display of the black box in Fig. 5b
2.2 天气预报业务领域应用前景

PM算法可在天气预报业务领域进行扩展应用,可将多个时效的定性预报产品合并为更长时效的预报,譬如将20时起报的20时至次日08时的预报(图 7a)和次日08时至次日20时的预报(图 7b)合并为24 h时效的预警产品(图 7c),具体规范为去掉雷暴落区,将短时强降水、冰雹和雷暴大风的预报落区合并(图 7c中标注为“005”的闭合线所围成的区域)。可提高24 h时效的强对流预警的工作效率。目前国家气象中心发布的某些定性预报产品,如灾害性天气预报中的雾、沙尘预报,环境气象预报中的霾、空气污染气象条件预报及专业气象预报中的森林草原火险预报等都是24 h时效预报,未来如果开展逐12 h或者6 h预报,也可利用PM算法,对多个短时效的预报进行合成生成长时效预报。

图 7 2013年6月7日20时起报7日20至次日08时(a)和8日08—20时(b)强对流分类概率预报,2013年6月7日20时起报24 h内强对流预警产品(c) Fig. 7 From 20:00 BT 7 July to 08:00 BT 8 July (a) and 08:00-20:00 BT 8 July (b) severe weather probability forecasting at 20:00 BT 7 June 2013 and 24 h severe weather warning at 20:00 BT 7 June 2013 (c)

诸如此类,比如更长时效的天气过程落区预报生成,也可以应用此算法,因此只要用到多边形合并算法的技术中都可以应用PM算法。

3 讨论

PM算法目前还存在一定的不足之处。当两个或多个多边形合并之后,如果存在内环(即空洞)时(图 8a),目前的处理方案是忽略这些内环而直接输出最外侧的多边形(图 8b),不过这种情况不多见,而且对气象领域实际使用的影响很小。未来的工作中,如有需求可对该算法进行改进。

图 8 合并前(a)和后(b)的多边形 Fig. 8 Polygons before (a) and after (b) merging
4 结论

本文结合强对流天气预报业务发展的实际需求,提出了PM算法,该算法相对于目前较为流行的WA算法,在气象业务应用方面具有以下优点:PM算法可以完全避免多边形的方向性问题;由于落区预报不会出现带洞的多边形,因此PM算法在设计上更简洁;基于前面两个原因,PM算法实现起来更容易,运行效率更高。目前,该算法已经应用在P2D技术中,并在2013年4—9月进行了业务试运行,结果表明该算法准确、运算速度快且性能稳定,完全能够满足当前业务需求。同时,对该算法的扩展应用前景进行了初步分析,表明该算法在灾害性天气预报,环境气象预报、专业气象预报等天气预报业务领域具有较好的应用前景。一般而言,更长时效的天气过程落区预报生成,或用到多边形合并算法的技术中都可以应用PM算法。

参考文献
付迎春, 袁修孝, 2006. 一种有效的任意多边形裁剪算法[J]. 计算机工程, 32(7): 278-280.
何立富, 周庆亮, 谌芸, 等, 2011. 国家级强对流潜势预报业务进展与检验评估[J]. 气象, 37(7): 777-784. DOI:10.7519/j.issn.1000-0526.2011.07.001
雷蕾, 孙继松, 王国荣, 等, 2012. 基于中尺度数值模式快速循环系统的强对流天气分类概率预报试验[J]. 气象学报, 70(4): 752-765. DOI:10.11676/qxxb2012.061
李月安, 曹莉, 高嵩, 等, 2010. MICAPS预报业务平台现状与发展[J]. 气象, 36(7): 50-55. DOI:10.7519/j.issn.1000-0526.2010.07.010
刘勇奎, 高云, 黄有群, 2003. 一个有效的多边形裁剪算法[J]. 软件学报, 14(4): 846-855.
毛冬艳, 2012. 我国强对流天气监测和预报业务[J]. 气象科技进展, 2(5): 22-28.
张小玲, 谌芸, 张涛, 2012. 对流天气预报中的环境场条件分析[J]. 气象学报, 70(4): 642-654. DOI:10.11676/qxxb2012.052
Greiner G, Hormann K, 1998. Efficient clipping of arbitrary polygons[J]. ACM Transactions on Graphics, 17(2): 71-83. DOI:10.1145/274363.274364
Weiler K, Atherton P, 1977. Hidden surface removal using polygon area sorting.Proceedings of the SIGGRAPH'77[M]. NEW York: ACM Press, 214-222.