顾 丽
(长江水利委员会水文局,湖北 武汉 430010)
面向站网(格点)雨量信息处理软件的设计与开发
顾 丽
(长江水利委员会水文局,湖北 武汉 430010)
面向站网(格点)雨量信息处理软件主要针对不同区域实测站网降雨量及数值预报模式产品中的格点雨量预报等数据,实现自动或实时处理,生成丰富多样的实况雨量图和预报雨量图或表等产品,包括不同时间对象(时段、日、旬、月、季和年度)的实况雨量等值面(线)图和雨量距平图、频次图,以及不同数值模式的降雨量预报图、分区面雨量图或表等。阐述了该软件的设计和实现过程,主要包括功能设计、程序流程设计、数据库设计及算法设计等。
雨量信息;信息处理;GIS;等值面
实时掌握长江流域雨量信息对水文预报工作意义重大[1]。目前,在长江流域已有的水文信息系统中,雨量信息的利用分布在各个系统,由于数据源和数据处理不一致,有可能发布成果也不同。将所有雨量产品整合到一个系统,对外提供统一接口很有必要。在水文信息化的大趋势下,该业务的标准化势在必行。
面向站网(格点)雨量信息处理软件旨在提供丰富多样的雨量图形产品,具体包括:①根据不同的操作模式,系统提供了定时和实时生成两种模式,定时是指系统到指定时间段自动生成固定起止时间(如时段、日、旬、月)的产品,实时是指系统提供手动生成任意起止时间的产品;②根据不同的产品类型,系统提供了雨量等值面、距平等值面、分区面雨量和频次等值面四大类产品;③根据数据源的不同,系统提供了离散点和网格数据两种数据源生成模式,其中实况雨量数据为离散点,预报雨量数据(如欧洲、日本、WRF、T639模式产品)为网格点;④根据不同的处理范围,系统提供了长江流域及八大水系、西南诸河等多个范围;⑤根据不同的生成结果,系统提供了图片和SHP文件两种格式,图片适用于了解雨量大致分布情况,矢量图能给水情和气象专业人员作精细化展示,将图片展示与矢量展示相结合,增加了演示雨量信息的多样性[2]。
系统产品清单如图1所示。
图1 产品清单
程序的运行流程设计如下:①程序启动,初始化产品配置信息,包括产品命名规则、存储路径,定时产品自动生成时间段,等值面产品区间值及颜色等。②若用户选择实时生成,输入产品起止时间,多范围产品可选择具体范围,程序读取对应产品配置信息,开始生成。③生成结束后程序记录产品生成状态,若生成成功则显示产品图片,生成失败则显示错误原因。④若用户选择定时生成,定时器计时开始。到某产品指定开始时间,计时器停止计时,程序读取产品配置,开始生成。新生成文件不断覆盖旧文件,直到指定结束时间。⑤程序记录产品生成状态,更新定时产品最近生成结果表格,计时器再次开始计时,为下一次产品生成做准备。⑥当系统处在实时生成模式时,用户可以设置产品配置信息,定时模式不允许修改产品配置。
程序流程如图2所示。
图2 程序流程
按照系统实际需求,以现有的实时水雨情数据库为基础,进行业务属性数据的接入和实时空间数据的生成。业务数据均以数据库表的形式物理存储在业务数据库中,方便查询访问[3]。在原有实时水雨情数据库上,新增9个表。详见图3。
其中以CON开头的5个表存储产品各类信息,具体包括产品生成状态及错误原因、定时产品的生成时间段、等值面产品的等级及对应颜色、错误编号代表的具体内容、产品编号代表的具体内容等信息,是系统产品化的数据支撑。以QX开头的4个表存储站点距平所需信息,其中方案一为148个气象站30 a逐日雨量平均值,方案二为493个水文、气象站30 a逐旬、逐月雨量平均值。当系统生成多日距平等值面时,采用方案一中148个站;生成旬、月距平等值面时,站点源为方案二中493个站。
图3 数据库E-R图
(1) CON_CPJS产品生成状态表。该表包含6个字段,CNAME为流域名称,CTIME为产品起止时间,CENDTIME为产品生成时间,CSTATE为产品生成状态,CERRORID为错误编号,CTYPE为产品类型。
(2) CON_CWLX错误编号内容对照表。该表包含2个字段,CERRORID为错误编号,CERRNM为错误编号对应内容。
(3) CON_YLSJ定时产品信息表。该表包含4个字段,CTYPE为定时产品类型,CTIME为生成时间段,CVALUE为最大值,大于此值则不参与计算,CORNOT为是否定时生成。
(4) CON_TONM产品编号名称对照表。该表包含2个字段,CTYPE为产品编号,CTYPENM为产品名称。
(5) CON_YLZYS产品等级颜色对照表。该表包含6个字段,CTYPE为产品类型,CCOUNT为等级个数,CVALUE为等级极小值,下一个等级的极小值为前一个等级的极大值,CCOLORR、CCOLORG和CCOLORB为等级对应RGB值。
(6) QX_ST_AVGRAIN方案一30 a逐日平均值表。该表包含4个字段,STCD5为气象站五位码,MONTH为月份,DAY为日,AVGDYP为30 a平均雨量值。
(7) QX_ST_XY方案一测站基础信息表。该表包含4个字段,STCD5为气象站五位码,STNM为测站站名,X为测站经度,Y为测站纬度。
(8) QX_ST_AVGRAIN_NEW方案二30 a旬月平均值表。该表包含5个字段,STCD为测站八位码,其中雨量站359个,水文站88个,水位站35个,水库站9个,堰闸站2个;MONTH为月份;DAY为日;AVTYPE为旬月标志; AVPR为旬或月30 a雨量均值。
(9) QX_ST_XY_NEW方案二测站基础信息表。该表包含4个字段,STCD为测站八位码,STNM为测站站名,LGTD为测站经度,LTTD为测站纬度。
该系统支持雨量等值面、距平等值面、频次等值面及分区面雨量四大类产品生成功能。其中雨量、距平和频次3种产品在数据的处理上有所不同,算法上都可归结为等值面生成算法。该算法经历了插值成网、追踪成线和填充得面[4],得到的中间成果是以输入站点(网格)经纬度为边界的外接矩形等值面;后续还包括简化、除重、裁切、排序、渲染、计算笼罩面积和输出等操作,最终成果是指定范围边界内的不带岛等值面,这中间的每一步都有其必要性。
将外接矩形等值面处理得到指定范围等值面,可使用裁切操作。但GIS提供的裁切算法只针对不带岛多边形,所以在裁切之前要将带岛多边形简化。简化后的多边形可以与指定边界进行裁切[5],但此时存在重复多边形问题。为了尽可能简单地描述问题,以下例子是最容易的带一岛多边形。(在实际情况中,带多岛及岛中带岛很常见,其原理与以下例子类似,在此不作说明。)
图4中包括两个多边形,多边形A为带岛多边形,区间为0~10,用浅色填充;多边形B为简单多边形,区间为10-25,用深色填充。将带岛多边形A简化后得到图4中A1和A2两个简单多边形,其区间都为0~10。从图中可以看出多边形A2与B除了区间不同外,其它完全一致。若不处理重复多边形A2会出现两个问题:①GIS默认渲染是根据FID先后顺序依次渲染各元素,若多边形A1的FID值大于多边形A2和B,系统会先渲染多边形A2和B,导致这两个多边形被A1遮挡,出现等值面失真的错误;②计算笼罩面积时会重复计算区间为0~10(即A2所表示的区间)值,出现笼罩面积计算出错的情况。
图4 带岛多边形简化
以上两种问题可以通过两步操作来解决。针对渲染失真的情况,可以先按多边形面积排序再渲染来实现,多边形按面积从大到小排序后,系统先渲染面积大的多边形再渲染面积小的多边形,这样面积小的多边形只会叠加在面积大的多边形上,不会出现被遮盖的情况。针对笼罩面积重复计算的情况,可以在多边形简化操作时,将所有岛(在图4中对应多边形A2)都去掉;然后利用GIS空间分析算法求得每个多边形的实际笼罩面积。
求多边形的实际笼罩面积存在3种情况:①多边形内不包含其他多边形,如图5中多边形A和B,用深色圆形表示;②多边形内包含一个多边形,如图5中多边形C所示,用中间色圆形表示;③多边形内包含不止一个多边形,如图5中多边形D所示,用浅色矩形表示。
图5 笼罩面积计算的3种情况
对于多边形A和B,其笼罩面积即为多边形面积SA和SB;对于多边形C,其笼罩面积为SC-SB;对于多边形D,其笼罩面积为SD-(SC+SA)。
面向站网(格点)雨量信息处理软件系统旨在提供丰富多样的雨量产品、包括实况雨量产品、预报雨量产品,距平图产品和面雨量产品。对于起止时间固定的产品,无需用户干预,到固定时间点自动生成,保证用户能即用即看;对起止时间不确定的产品,系统也提供了相应接口,增强了与用户互动的多样性。系统能定时高效地生成各种产品,并能估算出不同雨量区间的笼罩面积,对长江流域防汛降雨预报具有重要的参考价值。
[1] 陈绘绚.GIS在水文信息化中的应用和发展趋势[J].中国科技信息,2011(1):16-17.
[2] 杨鹏.关于建设“智慧长江”的思考[J],人民长江,2014,45(23):30-34.
[3] Andy Mitchell.GIS空间分析指南[M].张旸译.武汉:测绘出版社,2011.
[4] 蒋瑜.杜斌.卢军.基于Delaunay三角网的等值线绘制算法[J].计算机应用研究,2010,27(1):101-103.
[5] 帅向华.侯建盛.刘钦.基于地震现场离散点灾情报告的灾害空间分析模拟研究[J]. 地震地质,2009,31(2):321-333.
(编辑:唐湘茜)
2017-03-31
顾丽,女,长江水利委员会水文局,硕士,助理工程师.
1006-0081(2017)06-0043-04
P413
A