气象服务中雨量分布图的自动绘制

| 浏览次数:


打开文本图片集

摘要 等值线图绘制研究是气象服务工作中的一项重要内容,气象服务关系到工农业生产、交通运输、电力、航空航天等各领域的健康发展,提高服务水平意义重大。本文通过C#调用Surfer提供的API(应用程序接口)实现雨量分布图等值线的自动生成,可大幅提高绘图效率,有效提高气象服务的可视化效果,提供更加直观科学的决策依据,目前已将该产品应用到日常服务工作当中。实践证明,通过C#调用Surfer绘制等值线在气象服务工作中有着广泛的应用。

关键词 等值线;自动绘制;C#;Surfer;气象服务

中图分类号 P209 文献标识码 B 文章编号 1007-5739(2017)11-0205-02

随着经济社会的快速发展,气象服务在各行业生产以及人们的生活当中发挥了重要的作用,气象服务关系到工农业生产、交通运输、电力、航空航天等各领域的健康发展。由于气象服务在国民经济中具有重要地位,故提高气象服务水平的意义重大。目前,等值线图绘制研究是气象服务工作中的一项重要内容,通过气象要素数据绘制的等值线图科研体现区域内的气象形势,是形成众多气象服务产品的基础。与此同时,等值线需要依靠人工进行绘制,存在一定的局限性,面对复杂而大量的气象数据,技术人员的工作量大,绘制效果并不理想。为了提升等值线绘制的水平、减少工作量,笔者通过对Surfer API的学习研究,利用C#编程实现等值线的自动化绘制,从而制作出各类气象要素等值线服务产品,为气象服务提供了丰富的图形产品。

1 技术介绍

1.1 C#技术

C#语言由C和C++衍生而来,是由微软公司发布的高级程序设计语言,其运行于.NET Framework虚拟机平台上,借鉴了Delphi与组件对象模型直接集成的特点,其语法、接口等又与Java类似,因而具有安全、稳定、简单等特点。C#是一种很实用的语言,兼顾系统开发和应用开发,适宜于为独立和嵌入式的系统编写程序,对于系统的适用性均较强。因为C#与C/C++相似,C++程序员对熟悉的语言更能较为容易地掌握,还可以调用相关原生函数,因而提高了效率;同时因为C#是面向对象的编程语言,针对MICROSOFT .NET平台的应用程序编写更为方便。C#所开发的程序源代码被编译成为中间代码,类似于Java,然后通过虚拟机通用语言运行库执行,由于.Net Framework缓冲区存储了各类代码,减少了重复翻译,显著提高了运行的效率[1]。

1.2 Surfer API

Surfer由美国Golden Software 公司发布,是一款专业的三维图形绘制软件,可用于等高线、地形地貌图、三维表面图、矢量图、点位图等的图件制作。Surfer 对于处理三维数据具有明显的优势,主要是因为结合了数据差值功能和图件绘制功能[2]。在数据处理方面,该软件包含了大部分数据统计计算方法,有11种数据网格化方法可供选择,支持多种图形图像文件格式,为其提供了导入和导出的接口,应用十分方便。对各类GIS软件的文件格式也提供相应的接口,非常适合于制作地理信息类的图件,其方便的文件、数据交换功能很受用户青睐。此外,还提供了脚本编辑引擎,大大提升了软件的自动化功能,使用更为简便[3-6]。

2 基于C#/Surfer Api的编程

2.1 Surfer内置对象

Surfer Application主要包括文档、窗体、风格、函数4个对象(图1),其中文档对象是一个集合,不能直接使用,分为图形对象和工作表对象。另外,还存在一些独立的对象,比如线条对象、颜色对象等。

2.2 核心程序设計

//创建Surfer应用程序实例

Surfer.ApplicationClass surapp=new Surfer.ApplicationClass();

//网格化数据

try

{

surapp.GridData(DataFile,1,2,3,Type.Missing,Surfer.SrfDupMethod.srfDupNone,0.03,0.03,Type.Missing,Type.Missing,102.68239593506,103.85780334473,34.939952850342, 36.221523284912,Surfer.SrfGridAlgorithm.srfInverseDistance,……,OutGrid,Surfer.SrfGridFormat.srfGridFmtAscii,OutGrid,Surfer.SrfGridFormat.srfGridFmtAscii,Type.Missing,Type.Missing,Type.Missing,Type.Missing);

surapp.GridSplineSmooth(OutGrid,8,8,SrfSpline Method.srfSplineInsert,SmoothGrid,SrfGridFormat.srfGridFmt Ascii);

surapp.GridBlank(SmoothGrid,BlankFile,BlankedGrid,Surfer.SrfGridFormat.srfGridFmtAscii);

Surfer.IPlotDocument Doc =(Surfer.IPlotDocument)surapp.Documents.Add(Surfer.SrfDocTypes.srfDocPlot);

Surfer.IMapFrame mapframe = Doc.Shapes.AddContourMap(BlankedGrid);

IContourMap contourMap=(IContourMap)mapframe.Overlays. Item(1);

contourMap.Levels.LoadFile(System.Windows.Forms.Application.StartupPath + @"\100.lvl");

Surfer.IText Text1 = Doc.Shapes.AddText(contourMap.Left + 1,contourMap.Top - 5.5,sdata.Substring(0,4)+ "年" + sdata.Substring(4,2)+ "月" + sdata.Substring(6,2)+ "日" + sdata.Substring(8,2)+ "时" + sdata.Substring(10,2)+ "分");

Text1.Font.Size = 11;

Surfer.IText Text2 = Doc.Shapes.AddText(contourMap.Left + 3,contourMap.Top - 5.5,"临夏州雨量分布图");

Text2.Font.Size = 12;

IMapFrame mapframe1=Doc.Shapes.AddPostMap(PoseFile, 1,2,3,0,0);

IPostMap map1 =(IPostMap)mapframe1.Overlays.Item(1);

IMapFrame boundryMapFrame = Doc.Shapes.AddBaseMap(qyFile);

IBaseMap boundryBaseMap=(IBaseMap)boundryMapFrame. Overlays.Item(1);

boundryBaseMap.Line.Width = 0.01;

string strWH = string.Format("width = {0:f0},height = {1:f0},KeepAspect = 1,ColorDepth = 32",1044,1092);//设置输出图片的高度和宽度

Doc.Shapes.SelectAll();

Doc.Selection.OverlayMaps();

Doc.SaveAsSystem.Windows.Forms.Application.StartupPath + @"\1.srf");

Doc.Export(System.Windows.Forms.Application.StartupPath + @"\bmp\" + sdata + ".png",false,strWH );//设置输出图片格式名

Doc.Close(SrfSaveTypes.srfSaveChangesNo); //不生成srf文件

surapp.Quit();

//清理临时文件

File.Delete(SmoothGrid);

File.Delete(OutGrid);

File.Delete(BlankedGrid);

File.Delete(DataFile);

3 产品在日常工作中的应用

目前,临夏州已将绘制出来的产品应用到了日常服务工作之中,为相关部门提供更加直观科学的决策依据。图2为自动绘制的雨量分布图产品。

4 结语

通过C#调用Surfer提供的API(应用程序接口)实现等值线的自动生成,大大提高了绘图效率,节省了气象工作者的時间,有效提高气象服务的可视化效果,提供更加直观科学的决策依据。

5 参考文献

[1] 齐立波.C#入门经典[M].4版.北京:清华大学出版社,2008.

[2] 王建,白世彪,陈晔.Surfer8地理信息制图[M].北京:中国地图出版社,2004:124-128.

[3] 崔芳鹏,胡瑞林,刘照连,等.基于Surfer平台的FLAC~(3D)复杂三维地质建模研究[J].工程地质学报,2008(5):699-702.

[4] 韩丽娜,石昊苏.利用Surfer8.0绘制地质等值线图[J].计算机与现代化,2008(11):84-87.

[5] 宋明艺,张春灌.借助Surfer软件实现快速绘制平面等值线图[J].工程地球物理学报,2009(2):244-246.

[6] 武俊红,汪云甲.基于Surfer的煤矿等值线空间插值方法有效性评价[J].中国矿业,2007(1):108-110.

推荐访问: 雨量 分布图 绘制 气象 服务

【气象服务中雨量分布图的自动绘制】相关推荐

工作总结最新推荐

NEW
  • XX委高度重视党校的建设和发展,出台《创建全省一流州市党校(行政学院)实施方案》及系列人才培养政策,为党校人才队伍建设提供了有力的政策支撑。州委党校在省委党校的悉心指导下、州委的正确领导下,深入贯彻落

  • 为推动“不忘初心、牢记使命”主题教育常态化,树牢“清新简约、务本责实、实干兴洛”作风导向,打造忠诚干净担当、敢于善于斗争的执纪执法铁军,经县纪委常委会会议研究,决定在全县纪检监察系统开展“转变作风工作

  • 为进一步发展壮大农村集体经济,增强村级发展活力,按照中共XXX市委抓党建促乡村振兴工作领导小组《关于印发全面抓党建促乡村振兴四个工作计划的通知》要求,工作队与村“两委”结合本村实际,共同研究谋划xx村

  • 今年来,我区围绕“产城融合美丽XX”总体目标,按照“城在林中,水在城中,山水相连,林水相依”以及“城乡一体、景城一体、园城一体”的建设思路,强力推进城市基础设施建设、棚户区改造、房地产开发和城市风貌塑

  • 同志们:新冠疫情发生至今已有近三年时间。三年来,在广大干群的共同努力下,我们坚决打好疫情防控阻击战,集团公司范围内未发生一起确诊病例,疫情防控工作取得了阶段性胜利。当前国际疫情仍在扩散蔓延,国内疫情多

  • 我是毕业于XX大学的定向选调生,当初怀着奉献家乡、服务人民的初心回到XX,在市委的关心关爱下,获得了这个与青年为友的宝贵历练机会。一年感悟如下。一要对党忠诚,做政治坚定的擎旗手。习近平总书记指出,优秀

  • 同志们:今天召开这个会议,主要任务是深入学习贯彻习近平总书记重要指示批示精神,以及李克强总理批示要求,认真落实全国安全生产电视电话会议和全省、全市安全生产电视电话会议精神,研究我县安全生产和安全隐患大

  • 2022年市委政研室机关党的建设工作的总体要求是:坚持以XXX新时代中国特色社会主义思想为指导,全面贯彻党的XX届X中X会和省、市第十二次党代会精神,自觉运用党的百年奋斗历史经验,弘扬伟大建党精神,深

  • 同志们:今天,我们在这里召开市直机关基层党建示范点工作会议,一方面是对各示范点单位进行表彰授牌,另一方面是想通过这种会议交流的方式,给大家提供一个相互学习、取长补短的平台和机会。市直工委历来把创建基层

  • 新冠疫情暴发以来,学校党委坚决贯彻习近平总书记关于疫情防控工作的指示要求和党中央的决策部署,严格执行×××部、×××厅关于疫情防控的系列要求,认真落实驻地防疫部门的工作举措,继承发扬优良传统,以最高标