基于GIS图元的海洋风玫瑰图绘制方法转让专利

申请号 : CN201610552096.1

文献号 : CN106228587B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 樊妙邢喆章任群李艳雯杨晓彤张苗苗孙毅侯辰王力彦焦红波

申请人 : 国家海洋信息中心

摘要 :

本发明涉及一种基于GIS图元的海洋风玫瑰图绘制方法,方法包括:(1)加载包含海洋风玫瑰图各项绘制参数的Excel表格数据;(2)根据Excel的表格数据,以风向、风浪出现的频率大小为辐射比例长度,在GIS平台上借助图元绘制机制,将玫瑰图绘制在8个方位的同心圆上;(3)根据比例尺、纸张大小加载相应标准模板,完成图面整饰;(4)确认最终的出图内容,将成图文件保存成MXD格式,制图成果以PDF或者图片的方式输出。本发明首次在GIS平台上实现了复杂海洋要素的自动化绘制,改变了现有海洋风玫瑰图图件平台各异、排版编辑困难、标准不一及不与地理位置相关联的海洋风玫瑰图绘制现状。

权利要求 :

1.一种基于GIS图元的海洋风玫瑰图绘制方法,其特征在于包括步骤如下:

(1)加载数据:加载的数据为结构化Excel表格数据,Excel表格数据存储有海洋风玫瑰图的各项绘制参数,其中包括经度、纬度、风速级别、N向频率、NE向频率、E向频率、SE向频率、S向频率、SW向频率、W向频率、NW向频率、静稳频率、平均风速、风速标准偏差、平均风向及总观测次数共16列;

(2)玫瑰图绘制:根据Excel的16个参数数据,在GIS平台上借助图元绘制机制,以风向、风浪出现的频率大小为辐射比例长度,绘制在8个方位的同心圆上,整个玫瑰图绘制过程步骤如下:①玫瑰图颜色、分级及宽度信息设置:读取数据库中玫瑰图的颜色配置信息,包括圈的颜色以及线和字的颜色,在Hashtable中获取玫瑰图的绘制代码,根据对应的玫瑰图样式,存储玫瑰图内外圆圈的颜色、宽度,线的颜色、宽度以及字体的大小;

②Excel参数信息设置:读取Excel表中16项玫瑰图的参数信息,存放在

NMDIS.YG.Legend.ChartMaker.RoseClass类中;

③创建玫瑰图位置空间点:读取Excel表中的经纬度信息,调用ArcEngine中的IFeatureClass接口,利用ESRI.ArcGIS.Geometry.PointClass创建玫瑰图的空间坐标点;

④构建基于GIS基本图元的玫瑰图类:基于TriangleElement类构建RoseClass派生类,其变量包括玫瑰图的宽度、高度、文字高度、不定频率、静稳频率、标准差、平均值、最大值、各向各级频率、图形线条的颜色、频率刻度线颜色、方向线颜色、普通字体颜色、方向线的宽度、玫瑰图的环数、玫瑰图圆心;

⑤绘制圆环:调用ITriangleElement接口,利用CreateCircle命令以步骤③创建的玫瑰图位置空间点为圆心,进行圆环的循环绘制,保存在SetGraphicsContainer,通过ITriangleElement.AddElement将绘制的圆环加入图元容器中;

⑥绘制文字及频率刻度线:调用IElement.pointsToMap获取文字绘制位置,调用ITextElement接口,根据文字的大小、颜色、字体绘制圈外的百分比文字,调用IPoint接口,构建频率刻度线的起始位置点,从北方向开始绘制,调用ICmykcolor及IRgbColor根据风级的大小存储不同的绘制颜色,调用ICartographicLineSymbol绘制线段,刻度线的长度和位置由像素坐标转换为地图坐标,包括线段的长短、线型、宽度,线段的绘制根据频率的大小,最高风级的起点从最低风级的终点开始;

⑦绘制内圆:由于内圆处于整个玫瑰图的最上层,因此最后完成绘制,通过调用ITriangleElement构建基本图形类型,通过其Geometry方法获取步骤③生成的空间点为圆心绘制内圆,保存在SetGraphicsContainer,通过ITriangleElement.AddElement将绘制的内圆加入图元容器中;

⑧绘制观测总次数文字:调用IElement接口,利用CreateRoseTextScaleElement方法,以内圆圆心为中心,内圆直径为文字大小,绘制总观测次数将文字置于内圆中心,保存在SetGraphicsContainer,通过ITriangleElement.AddElement将绘制的内圆加入图元容器中;

(3)整饰成图:根据比例尺、纸张大小加载相应标准模板,完成图面整饰;

(4)制图输出:确认最终的出图内容,将成图文件保存成MXD格式,制图成果以PDF或者图片的方式输出。

2.根据权利要求1所述的基于GIS图元的海洋风玫瑰图绘制方法,其特征在于:所述步骤(2)中①步的玫瑰图分级具体为:风速分级共分为五级,0-1.5,1.6-5.4,5.5-10.7,10.8-

17.1,≥17.2,所述读取数据库中玫瑰图的颜色配置信息具体为:根据国家海洋局《我国近海海洋综合调查要素分类代码和图式图例规程》中规定的海面风玫瑰图代码为

1002030700,在数据库的CODE字段中找到其相匹配的代码,其对应的RoseColors分别为玫瑰图分级对应的颜色值。

说明书 :

基于GIS图元的海洋风玫瑰图绘制方法

技术领域

[0001] 本发明属于海洋信息技术领域,特别是一种基于GIS图元的海洋风玫瑰图绘制方法。

背景技术

[0002] 海洋风玫瑰图是根据某一区域多年来的气象台观测的风浪、风向统计值,绘制出类似玫瑰花朵的图形。玫瑰图表示体现要素的频率。玫瑰图绘制模块根据风浪、涌浪、风向出现的频率,表示相应的比例长度,以中心为圆心,描在8个或16个方位上。
[0003] 传统的海洋风玫瑰图不以面向GIS制图为目的,多基于Matlab、Origin软件进行单个玫瑰图的绘制,用于报告插图示意说明,无法与地理位置关联,在多个玫瑰图编辑、排版方面无法达到图件出版的效果。且由于这些软件间不能相互兼容,制图绘制过程中的属性信息也无法完整进行保存,造成了现有海洋风玫瑰图成果格式不统一、制图数据不完整问题;加之,传统GIS系统缺乏复杂符号的绘制,无法实现对多参数复杂图形的绘制功能。

发明内容

[0004] 本发明的目的是针对现有技术的不足,提出一种基于GIS图元的海洋风玫瑰图绘制方法。
[0005] 本发明解决其技术问题是采取以下技术方案实现的:
[0006] 一种基于GIS图元的海洋风玫瑰图绘制方法,包括步骤如下:
[0007] (1)加载数据:加载的数据为结构化Excel表格数据,Excel表格数据存储有海洋风玫瑰图的各项绘制参数,其中包括经度、纬度、风速级别、N向频率、NE向频率、E向频率、SE向频率、S向频率、SW向频率、W向频率、NW向频率、静稳频率、平均风速、风速标准偏差、平均风向及总观测次数共16列;
[0008] (2)玫瑰图绘制:根据Excel的16个参数数据,在GIS平台上借助图元绘制机制,以风向、风浪出现的频率大小为辐射比例长度,绘制在8个方位的同心圆上,整个玫瑰图绘制过程步骤如下:
[0009] ①玫瑰图颜色、分级及宽度信息设置:读取数据库中玫瑰图的颜色配置信息,包括圈的颜色以及线和字的颜色,在Hashtable中获取玫瑰图的绘制代码,根据对应的玫瑰图样式,存储玫瑰图内外圆圈的颜色、宽度,线的颜色、宽度以及字体的大小;
[0010] ②Excel参数信息设置:读取Excel表中16项玫瑰图的参数信息,存放在NMDIS.YG.Legend.ChartMaker.RoseClass类中;
[0011] ③创建玫瑰图位置空间点:读取Excel表中的经纬度信息,调用ArcEngine中的IFeatureClass接口,利用ESRI.ArcGIS.Geometry.PointClass创建玫瑰图的空间坐标点;
[0012] ④构建基于GIS基本图元的玫瑰图类:基于TriangleElement类构建RoseClass派生类,其变量包括玫瑰图的宽度、高度、文字高度、不定频率、静稳频率、标准差、平均值、最大值、各向各级频率、图形线条的颜色、频率刻度线颜色、方向线颜色、普通字体颜色、方向线的宽度、玫瑰图的环数、玫瑰图圆心;
[0013] ⑤绘制圆环:调用ITriangleElement接口,利用CreateCircle命令以步骤③创建的玫瑰图位置空间点为圆心,进行圆环的循环绘制,保存在SetGraphicsContainer,通过ITriangleElement.AddElement将绘制的圆环加入图元容器中;
[0014] ⑥绘制文字及频率刻度线:调用IElement.pointsToMap获取文字绘制位置,调用ITextElement接口,根据文字的大小、颜色、字体绘制圈外的百分比文字,调用IPoint接口,构建频率刻度线的起始位置点,从北方向开始绘制,调用ICmykcolor及IRgbColor根据风级的大小存储不同的绘制颜色,调用ICartographicLineSymbol绘制线段,刻度线的长度和位置由像素坐标转换为地图坐标,包括线段的长短、线型、宽度,线段的绘制根据频率的大小,最高风级的起点从最低风级的终点开始;
[0015] ⑦绘制内圆:由于内圆处于整个玫瑰图的最上层,因此最后完成绘制,通过调用ITriangleElement构建基本图形类型,通过其Geometry方法获取步骤③生成的空间点为圆心绘制内圆,保存在SetGraphicsContainer,通过ITriangleElement.AddElement将绘制的内圆加入图元容器中;
[0016] ⑧绘制观测总次数文字:调用IElement接口,利用CreateRoseTextScaleElement方法,以内圆圆心为中心,内圆直径为文字大小,绘制总观测次数将文字置于内圆中心,保存在SetGraphicsContainer,通过ITriangleElement.AddElement将绘制的内圆加入图元容器中;
[0017] (3)整饰成图:根据比例尺、纸张大小加载相应标准模板,完成图面整饰;
[0018] (4)制图输出:确认最终的出图内容,将成图文件保存成MXD格式,制图成果以PDF或者图片的方式输出。
[0019] 而且,所述步骤(2)中①步的玫瑰图分级具体为:风速分级共分为五级,0-1.5,1.6-5.4,5.5-10.7,10.8-17.1,≥17.2,所述读取数据库中玫瑰图的颜色配置信息具体为:
根据国家海洋局《我国近海海洋综合调查要素分类代码和图式图例规程》中规定的海面风玫瑰图代码为1002030700,在数据库的CODE字段中找到其相匹配的代码,其对应的RoseColors分别为玫瑰图分级对应的颜色值。
[0020] 本发明的优点和积极效果是:
[0021] 本发明以GIS图元绘制机理和数据驱动制图为目的,结合海洋学科特点,首次在GIS平台上实现了复杂海洋要素的自动化绘制,集成了海洋风玫瑰图绘制的全部步骤和流程,改变了现有海洋风玫瑰图图件平台各异、排版编辑困难、标准不一,且不与地理位置相关联的海洋风玫瑰图绘制现状。

附图说明

[0022] 图1是本发明方法的绘制流程图。
[0023] 图2是本发明中海面风玫瑰图制作实例成果样图。

具体实施方式

[0024] 以下结合附图对本发明实例做进一步详述:需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其它实施方式,同样属于本发明保护的范围。
[0025] 一种基于GIS图元的海洋风玫瑰图绘制方法,包括步骤如下:
[0026] (1)加载数据:加载的数据为结构化表格,存储海洋风玫瑰图的各项绘制参数,支持数据为Excel格式Excel 97-2010,其中包括经度、纬度、风速级别、N向频率、NE向频率、E向频率、SE向频率、S向频率、SW向频率、W向频率、NW向频率、静稳频率、平均风速、风速标准偏差、平均风向、总观测次数共16列;
[0027] (2)玫瑰图绘制:根据Excel的16个参数数据,在GIS平台上借助图元绘制机制,以风向、风浪出现的频率大小为辐射比例长度,绘制在8个方位的同心圆上。整个玫瑰图绘制过程步骤如下:
[0028] ①玫瑰图颜色、分级及宽度信息设置:读取数据库中玫瑰图的颜色配置信息,包括圈的颜色以及线和字的颜色,在Hashtable中获取玫瑰图的绘制代码,根据对应的玫瑰图样式,存储玫瑰图内外圆圈的颜色、宽度,线的颜色、宽度以及字体的大小。
[0029] ②Excel参数信息设置:读取Excel表中16项玫瑰图的参数信息,存放在NMDIS.YG.Legend.ChartMaker.RoseClass类中。
[0030] ③创建玫瑰图位置空间点:读取Excel表中的经纬度信息,调用ArcEngine中的IFeatureClass接口,利用ESRI.ArcGIS.Geometry.PointClass创建玫瑰图的空间坐标点。
[0031] ④构建基于GIS基本图元的玫瑰图类:玫瑰图绘制思想是派生于GIS的基本图元,利用圆形、线段及字体进行组合控制,从而完成复杂图元从空间坐标和像素坐标之间的转换绘制。基于TriangleElement类构建RoseClass派生类,其变量包括玫瑰图的宽度、高度、文字高度、不定频率、静稳频率、标准差、平均值、最大值、各向各级频率、图形线条的颜色、频率刻度线颜色、方向线颜色、普通字体颜色、方向线的宽度、玫瑰图的环数、玫瑰图圆心。
[0032] ⑤绘制圆环:调用ITriangleElement接口,利用CreateCircle命令以步骤③创建的玫瑰图位置空间点为圆心,进行圆环的循环绘制,保存在SetGraphicsContainer,通过ITriangleElement.AddElement将绘制的圆环加入图元容器中。
[0033] ⑥绘制文字及频率刻度线:调用IElement.pointsToMap获取文字绘制位置,调用ITextElement接口,根据文字的大小、颜色、字体绘制圈外的百分比文字,调用IPoint接口,构建频率刻度线的起始位置点,从北方向开始绘制,调用ICmykcolor及IRgbColor根据风级的大小存储不同的绘制颜色,调用ICartographicLineSymbol绘制线段,刻度线的长度和位置由像素坐标转换为地图坐标,包括线段的长短、线型、宽度,线段的绘制根据频率的大小,最高风级的起点从最低风级的终点开始。
[0034] ⑦绘制内圆:由于内圆处于整个玫瑰图的最上层,因此最后完成绘制,通过调用ITriangleElement构建基本图形类型,通过其Geometry方法获取步骤③生成的空间点为圆心绘制内圆,保存在SetGraphicsContainer,通过ITriangleElement.AddElement将绘制的内圆加入图元容器中。
[0035] ⑧绘制观测总次数文字:调用IElement接口,利用CreateRoseTextScaleElement方法,以内圆圆心为中心,内圆直径为文字大小,绘制总观测次数将文字置于内圆中心,保存在SetGraphicsContainer,通过ITriangleElement.AddElement将绘制的内圆加入图元容器中。
[0036] (3)整饰成图:根据比例尺、纸张大小加载相应标准模板,完成图面整饰。
[0037] (4)制图输出:确认最终的出图内容,将成图文件保存成MXD格式,制图成果以PDF或者图片的方式输出。
[0038] 实例
[0039] 为了清晰描述本发明的内容,选取一个海面风玫瑰图的制作来详细说明执行步骤,如附图1所示。
[0040] (1)加载数据
[0041] 加载已编辑好的海洋风玫瑰图excel数据,数据列包括经度、纬度、风速级别、N向频率、NE向频率、E向频率、SE向频率、S向频率、SW向频率、W向频率、NW向频率、静稳频率、平均风速、风速标准偏差、平均风向、总观测次数共16列。
[0042] (2)玫瑰图绘制
[0043] ①玫瑰图颜色、风级及宽度设置:风速分级共分为五级,0-1.5,1.6-5.4,5.5-10.7,10.8-17.1,≥17.2,根据国家海洋局《我国近海海洋综合调查要素分类代码和图式图例规程》中规定的海面风玫瑰图代码为“1002030700”,在数据库中CODE字段中找到其相匹配的代码,其对应的RoseColors分别为该五级对应的颜色值,0-1.5级颜色为C100/M80,线条宽度0.2,1.6-5.4级颜色为C100/Y100,线条宽度0.4,5.5-10.7级颜色为M60/Y100,线条宽度0.8,10.8-17.1级颜色为Y100,线条宽度1.0,≥17.2级颜色为M100/Y100,线条宽度
1.2,内圆圈的颜色存储在RoseInnerColor中,为M60/Y80,线条宽度RoseInnerLine为0.1,圆圈大小存储在RoseInnerSize中,半径大小为5。频率字体设置为LabelFont,宋体,LabelSize为6。
[0044] ②Excel参数信息设置:读取经度、纬度为117°,23°对应的excel表中的各项参数,存储在RoseClass对应的变量中,Rose.RosePoint中存储玫瑰图的中心地理点位置117°,23°,Rose.AverageSpeed存储平均风速5,Rose.FrequencySteady存储静稳频率3,Rose.StandardDifference存储风速标准偏差3,Rose.AverageDirection存储平均风向
359,Rose.TotalTimes存储总观测次数4464,Rose.StrLevel存放风速的级别,Rose.OrientationFrequency存储各个方向的风向频率。
[0045] ③创建玫瑰图位置空间点:利用Rose.RosePoint中的117°、23°创建玫瑰图的空间坐标点。
[0046] ④构建基于GIS基本图元的玫瑰图类:基于TriangleElement类构建RoseClass派生类,根据①所读取的玫瑰图基本绘制信息,将其存储在RoseClass中的变量中。
[0047] ⑤绘制圆环:利用CreateCircle命令以117°、23°为圆心,根据圆环的个数5,以经纬度的间隔长宽为尺寸控制,由外到内进行圆环的循环绘制。
[0048] ⑥绘制文字及频率刻度线:从圆环最里面开始绘制文字,首先找到文字的绘制位置,调用①所读取的文字颜色及大小、字体绘制参数,从北方向开始绘制圈外的百分比文字为%5。根据②所读取的频率数值,统计所有频率总和为104.2,获取每个方向每个级别的数值和总值进行对比,N向频率当风速级别为0-1.5时至为12.1,对比数值为12.1/104.2,其结果11.6%作为绘制刻度线的长度,调用①所读取的0-1.5级,C100/M80,线宽0.2,按比例绘制频率刻度线;同样的方法绘制1.6-5.4级的刻度,此时绘制起点在0-1.5级短线的终点,依次循环,直至绘制完8方向上所有频率刻度。
[0049] ⑦绘制内圆:获取步骤③生成的空间点为圆心绘制内圆,调用①中绘制内圆的参数,颜色为M60/Y80,线条宽度为0.1,半径大小为5,绘制内圆。
[0050] ⑧绘制观测总次数文字:以内圆圆心为中心,内圆直径为文字大小,绘制总观测次数4464将置于内圆中心。
[0051] (3)整饰成图:根据比例尺、纸张大小加载相应标准模板,完成图面整饰。
[0052] (4)制图输出:确认最终的出图内容,将成图文件保存成MXD格式,制图成果以PDF或者图片的方式输出。