首页 > 论文范文 > 社科论文 > 气象服务中雨量分布图的自动绘制_免费论文全文下载

气象服务中雨量分布图的自动绘制_免费论文全文下载

申明:本网站内容仅用于学术交流,如有侵犯您的权益,请及时告知我们,本站将立即删除有关内容。

摘要 等值线图绘制研究是气象服务工作中的一项重要内容,气象服务关系到工农业生产、交通运输、电力、航空航天等各领域的健康发展,提高服务水平意义重大。本文通过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(应用程序接口)实现等值线的自动生成,大大提高了绘图效率,节省了气象工作者的�r间,有效提高气象服务的可视化效果,提供更加直观科学的决策依据。
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.

本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。QQ:522-52-5970