Surfer基于C#实现等值线图平台设计与研究

(整期优先)网络出版时间:2023-02-14
/ 2

Surfer基于C#实现等值线图平台设计与研究

陈鹏心1   ,吉曹翔2, 张海洋3

(1 辽宁省沈阳市气象局,辽宁 沈阳 110000;2 辽宁省沈阳市气象局,辽宁 沈阳 110000;3 中国人民解放军北部战区总医院,辽宁 沈阳 110000)

摘要 等值线图、色斑图以及格点图的绘制研究是气象服务工作中一项重要工作程序,对未来天气形势分析是必不可少的,在气象决策服务材料中有着举足轻重的作用。Surfer软件能够做地理信息或者绘制等值线,并且它具有强大的数据插值功能和绘图技术。在对Surfer软件中制图技术研究和探索中发现,它具有自动化应用程序接口服务,符合.NET环境中C#语言编程接口,因此利用C# 语言可以实现对Surfer提供的应用程序接口完全调用。 目前有很多是用VB技术结合Surfer开发的自动画图软件,基本上是客户端模式,已经不是时代的主流,而本文研究如何利用C#语言和Surfer软件实现B/S模式平台,同时结合WEB相关技术实现产品的制作和发布。有效的气象服务产品的可视化效果,为政府领导及相关部门提供更加直观且科学的决策依据。

关键词  Surfer软件C#语言接口 可视化 气象服务

引言

随着气象现代化的快速发展,气象服务在各行各业生产和人们的生活当中发挥了重要的作用。为了进一步提高气象科技服务质量, 加强气象科技信息发布的可视化效果, 利用等值线色斑图的方法,对各类气象数据进行分类分析,以直观的可视化图表的形式体现天气的变化情况。Surfer软件是一款能够做地理信息的绘图软件,它结合C# 语言编程,可以实现批量绘制,结合Surfer 的自动化应用程序接口进行二次开发,可以实现程序模块后台操作,摆脱Surfer主界面。同时为了更好的维护和升级平台,主要采用自动化应用程序以B/S的模式进行呈现,在结合WEB技术实现更多的协同服务,快速实现科技服务可视化产品,为公众提供更优质的服务做出有力的保障。

一、系统技术

1.技术框架

本平台的实现是由Surfer绘制图形自动应用程序、WEB服务器设计以及产品服务制作三部分组成。整个系统以CIMISS数据为基础,采用B/S 三层构架模式开发,使用HTML5技术进行界面设计,以JS脚本语言搭载C#嵌入式编程手段,实现等值线图形自动生成,同时在WEB服务端显示,在结合文字形成气象服务产品。

图1系统结构图

2.技术特点

2.1分布式结构

B/S结构是指客户端向服务器发送请求,由服务器进行处理后在将结果返回给客户端,只需要一个浏览器就可已完成,由应用服务器和数据库服务器构成。表现形式是采用3层分布式结构,数据层、应用层和表现层,这样设计可以充分利用系统资源,不受时间和地域的影响,通过HTTP就可以请求到资源,应用性高,扩展性强,具有安全性。

2.2维护便捷

B/S结构只需要用户安装一个浏览器即可,浏览器通过Web Server就可以同数据库进行数据交互,并且核心部分集中在服务器上,因此简化了系统开发、维护和运营成本。

二、平台总体设计

1.平台需求设计

现如今随着经济社会的高速发展和人民群众对生活质量的追求的提高,迫切需要气象部门提供更多有专业性的气象服务,气象服务产品要贴近人民生活,要将专业的气象知识化繁为简,提供更有针对性、直观性、简单和准确的服务产品。因此建立一个规范化的气象服务产品制作平台,将专业的气象数据图形可视化,以简单的形式呈现给服务公众对象。自动化制作产品一方面减少了工作人员业务量的负担,另一方面提高了服务的质量和效率。

2.平台功能设计

2.1等值线产品功能

Surfer软件和C#技术的融合,实现了市县两级雨量和温度的等值线色斑图制作以及数据图表化,并通过用户请求实现WEB端显示。

2.2WEB服务设计

前端结构采用Html5和Layui前端框架技术进行WEB页面设计,JS轻便化语言脚本进行业务逻辑处理,后台采用IHttpHandler接口服务对前端传过来的数据进行封装和处理,因此实现用户对数据获取、修改和显示,并且为用户提供图片下载、数据下载、数据文件上传、数据修改和阈值范围修改等功能。

2.3产品服务制作

根据各部门需求在产品中增加服务文字等信息,明确服务方向和防范特点,制作word格式服务产品,并提供产品下载功能。

3.平台运行部署

系统采用IIS6.0部署和运行,网站部署在专用业务内网服务器上,同时给市县各使用部门配置专用端口,实现市县两级部门通过局域网访问系统资源。

.平台功能实现

1.等值线图制作

1.1数据准备

Surfer绘图用到的数据主要有:底图边界文件、站点信息文件和站点气象要素数据文件。底图边界采用bin文件格式,站点信息和气象要素来自于CIMISS系统提供的数据。通过C#服务接口编程实现用户所需要的离散数据文件,即经度、纬度、要素值形式格式,以.dat为文件扩展名。然后通过Surfer自动化接口提供的GridData插值方法将离散数据插值成等值线网格数据,Surfer的GridData插值方法提供了Kriging、IDW和NearestNeighbor等12中插值,可根据用户需求选择一种插值方式进行绘制产品,本文采用Kriging方法。代码如下:

1.2等值线图片绘制

绘制图片用到Surfer提供的IshapesIplotDocumentIMapFramecontourMap、IpostMapItextIselection方法,首先用IplotDocument方法创建有个空白的文档,然后用Ishapes方法创建一个图形对象,再加载插值好的网格文件,并且对数据进行白化处理,然后用ImapFrame方法添加一个等值线图,IpostMap和text方法配置文字和点的显示样式,用contourMap来进行等值线图例颜色填充和显示样式配置,最后用Iselection方法将所有图层叠加,生成一张等值线图。代码如下:

2.数据服务交互

采用Ajax技术进行前后台数据传递,摒弃过去传统的通过表单(from)方式来实现方式,而是采用Ajax模式通过XMLHTTPRequest对象向服务器提交希望提交的数据,即按需发送数据,提高了WEB的应用性能进而用户体验性。前台用JavaScript技术进行开发,利用CIMISS提供的数据接口进行数据获取,然后通过用户调用需求对数据进行处理和封装,再以JSON格式进行后台传送,后台采用IhttpHandler接口对数据进行接收,再用Newtonsoft.Json.dll库类实现JSON数据反序列化,将格式化的JSON数据处理成预定义的实体类,然后通过命名对数据进行读取,生成绘图需要的dat格式文件,再执行绘图函数,实现图片制作。代码如下:

3.服务产品制作

根据天气形势和服务需求,对生成的图片进行文字加工,更直观的服务大众。采用Java和Freemarker技术开发包实现Word格式服务产品制作。先创建一个word文档,按照需求在word中填好一个模板,然后把对应的数据换成变量${},然后将文档保存为xml文档格式,使用文档编辑器打开这个xml格式的文档,去掉多余的xml符号,使用Freemarker读取这个文档然后替换掉变量,输出word文档即可,并提供下载。主要代码如下:

四、应用效果

平台已于2018年8月开始投入使用,目前运行良好,基本满足了业务需求。在汛期服务过程中,业务部门采用此平台进行雨量实时监测和服务产品制作,各个区县也通过此平台实现产品本地化,对汛期服务提供了有利的保障。为了加快系统的利用率,更好的为公众服务,需要对不同的数据进行整合,而且不同的用户在使用上也存在一定的差异,因此如何更好的发挥系统的作用,提供更优质的服务质量和系统体验成为今后发展方向。

参考文献

[1] 蔡海洋. 基于C#与Surfer自动土壤墒情等值线图绘制[J]. 内蒙古科技与经济, 2018(11):2.

[2] 赵炎, 陈向东. 基于.net平台的surfer绘制等值线图实现[J]. 气象研究与应用, 2009, 30(A01):2.

[3] 郭文彬. 基于VB对Surfer软件二次开发实现等值线图自动绘制[J]. 河南科技, 2015(07X):3.

作者简介:陈鹏心(1990.02),男,汉族,辽宁省沈阳市法库县人,本科,工程师,从事气象信息技术工作。