气象要素等值线和色斑图的绘制方法

(整期优先)网络出版时间:2022-07-15
/ 2

气象要素等值线和色斑图的绘制方法

韦,健,黄,珩

河池市气象局,广西 河池,547000

摘要 用C#语言调用MeteoInfo类库MeteoInfoC.dll,用反距离权重插值(简称IDW)方法,实现气象要素等值线和色斑图的绘制,为开发等值线、色斑图绘图功能的系统提供一种简捷的途径。

关键词C#语言;MeteoInfo;等值线色斑图

引言

在气象天气分析图、气象服务材料和天气预报影视制作中,都要用到气象要素等值线或色斑图的绘制。MeteoInfo软件是由中国气象局科学研究院研发的一个免费的气象数据显示、分析软件,具有较强的综合数据图形显示、分析能力,操作简便、图形美观。软件支持多种常用的气象数据格式,具备基本的GIS功能。Meteolnfo还可以通过编写IronPython脚本程序自动运行。MeteoInfo的核心是它的类库MeteolnfoC.dll,使用该类库可以方便快捷地开发气象数据显示分析类软件。用C#语言调用Meteolnfo类库MeteoInfoC.dll,可以方便快捷地制作气象要素等值线或色斑图,并实现降雨量、气温等气象要素的填图功能。

1、数据处理

在编写制作等值线和色斑图软件时,要用到地图边界坐标数据、气象要素数据和色标数据文件。

1.1地图边界数据

通过Intemet网登录“阿里地图选择器”网站,选择需要的地图,阿里地图生成器自动生成包含子区域(县边界)或者不包含子区域Geojson格式文件及SVG文件文件,下载Genjson文件,通过ArcMap转成SHP矢量地图文件。

1.2气象要素数据格式

根据在程序中读取的方法编写气象要素数据格式,建立一个气象要素数据

文本文件。格式如下:

表头

区站号,经度,纬度,气象要素值,站名

如:

Stid,Longitude,Latitude,降雨量,StationName

59xxx,108.3,27.4,89.2,xx县

……

……

1.3色标文件设置

色标文件是设置绘制等值线颜色、线径大小和不同气象要素量级填充的颜色色斑图。

新建写字板文件,根据气象标准设置气温、降雨量不同等级的颜色。以降雨量为例,建立色标文件格式如下。

<?xml version="1.0" encoding="gb2312"?>

……

……

    ≥100" StartValue="100" EndValue="2000" Color="#f405f8" DrawShape="True" OutlineColor="Gray" DrawOutline="True" DrawFill="True" OutlineSize="1" UsingHatchStyle="False" Style="BackwardDiagonal" BackColor="Transparent" />

 

其中:Break Caption="0-0.1" StartValue="0" EndValue="0.1"为雨量0—0.1mm对应的颜色,Color="#ffffff"为十六进制颜色,OutlineColor="Gray"为每个色斑边框颜色,OutlineSize="1"为色斑边框大小。

文件保存为扩展名lgs的文件。

2、等值线绘制方法

2.1引用MeteoInfo类库

在菜单中点击:项目—添加引用,在添加引用界面点击浏览,找到MeteoInfoC.dll,点击确定。

2.2添加LayersLegend、MapView和MapLayou控件

LayersLegend是管理MapFrame和Layer的,MapView是地图显示控件,MapLayout是图形版面管理控件。

在菜单中点击:工具—选择工具箱,在选择工具箱项界面点击浏览,找到MeteoInfoC.dll,点击确定。

在项目设计器上加入MapLayout控件。

2.3地图绘制关键代码           

alayer = MapDataManage.OpenLayer(“地图文件路径”);           

    _layerslegend.ActiveMapFrame.AddLayer(alayer);

    Extent aExtent = _mapview.Extent;

    _mapview.ZoomToExtent(aExtent);           

其中:_layerslegend.ActiveMapFrame.AddLayer(alayer)加矢量地图图层。

_mapview.ZoomToExtent(aExtent)将矢量图大小放置适合电脑屏幕大小位置。

2.4读取气象要素关键代码

aMeteoDataInfo = new MeteoDataInfo();            aMeteoDataInfo.OpenLonLatData(“气象要素文件”);            aMeteoDataInfo.DimensionSet = PlotDimension.Lat_Lon; 

StationData aStationData = new StationData();                                    aStationData = aMeteoDataInfo.GetStationData(_stationinfo[0].FieldList[3].ToString());

其中:aMeteoDataInfo.OpenLonLatData(“气象要素文件”)为打开气象要素文件, aMeteoDataInfo.GetStationData(_stationinfo[0].FieldList[3].ToString())为读取气象要素文件。

2.5读取色标文件关键代码

als.ImportFromXMLFile(“色标文件路径”);

2.6绘制等值线关键代码

LegendScheme als = LegendManage.CreateLegendSchemeFromGridData(aGridData, LegendType.UniqueValue, MeteoInfoC.Shape.ShapeTypes.Polyline, ref _bool);

int colorlen = als.BreakNum;

   for (int i = 0; i < colorlen; i++)

       {

            als.LegendBreaks[i].Color = Color.Black;

    }

2.7绘制色斑图关键代码

LegendScheme als = LegendManage.CreateLegendSchemeFromGridData(aGridData, LegendType.GraduatedColor, MeteoInfoC.Shape.ShapeTypes.Polygon, ref _bool);                                                                                    als.ImportFromXMLFile(“色标文件路径”);

3、应用实例

用C#语言编程调用MeteoInfo类库,制作河池市区域自动气象站降雨量等值线图和色斑图。

        图1 等值线图图2  色斑图

4、小结

MeteoInfo软件类库MeteolnfoC.dll封装了气象绘图常用功能,通过C#语言编程调用MeteoInfo类库,就能绘制任意区域的等值线图,批量生成气象要素等值线图或色斑图,简单、快捷、实用,用少量代码就能实现绘图自动化。同时还可以制作风场矢量图、风场流线图等。

参考文献:

[1] 曾鹏,廖国莲,莫雨淳,李雄,吴燊先.广西地质灾害业务平台的设计与开发[J] .气象研究与应用,2014(2);57-59.

[2] 刘辉权,钟兰頔.气象数据图形显示系统及应用[J] .成都信息工程学院学报,2014(3);273-284.

[3] 李松涛,朱宇,赵文哲.利用Meteo Info软件分析闪电资料[J] .内蒙古气象,2016(2);39-42.

作者简介:韦健(1963-),壮族,男,广西河池人,大学学历,高级工程师,从事气象信息与装备技术保障工作。