拉萨气象服务信息管理研究
时间:2022-01-08 09:01:02
导语:拉萨气象服务信息管理研究一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。
1系统总体目标及设计要求
气象产品有公众、决策、行业气象服务产品三大类,相应服务对象有媒体、政府、手机用户、行业用户等,系统的设计目标总体上要实现各类服务产品的自动生成、根据服务对象进行产品的分类及服务对象有效管理等功能,此外还需建立产品、用户、手机号段等数据库。这就要求系统根据配置文件设定的参数能够读取和解码源数据,处理后的数据存放入数据库中形成基础数据,根据不同用户的需求生成各类服务产品,并且存入产品库。前台的系统,根据产品库中的内容,结合提供的编辑功能进行再加工并通过通信模块实时。系统的工作流程图1,系统结构图2可供参考。
2系统主要开发环境及结构
本系统采用VisualStudio2005微软的IDE环境,数据库选用SQLServer2005,开发语言选用C#.net,系统采用C/S模式。整个系统主要由各类服务产品的合成、产品库的管理、方式、用户资源管理统管理员授权五大模块组成,根据流程和系统结构设计出了系统主界面如图3所示。各类服务产品的合成、产品库的管理、方式、用户资源管理统管理员授权五大模块组成,根据流程和系统结构设计出了系统主界面。
3技术难点及解决方案方案
3.1类的建立建立了一个文件名为PbClass2.cs的类,其中声明了一个公共类PbClass2,在该类中建立了几个方法,以便在主程序中直接调用这些方法,通过缓存减少资源的使用率是提高工作效率的有效编程手段。但类建好后在程序中实例化该类,提示出错(错误为命名空间并不直接包含诸如字段或方法之类的成员),经过多次调试最后发现问题出在实例化对象的位置不能紧接在命名空间之后,而应在声明的其它类内。3.2建立数据库敏感字段时,程序提示出错根据手机用户所属号段按地区归类时,提示在程序的cmd1.ExecuteNonQuery()处出现INSERTINTO语句的语法错误,用户号码无法自动入库。解决方法:仔细检查各字段,其中time该字段主要意义是用户订购气象信息的时间,修改数据库uph⁃num表中字段time改为dztime后程序正常运行。3.3如何将数组中重复数据删除并保证数据唯一在进行批量手机用户入库时,存在用户用大且可能重复的情况,如将冗余用户入库,在合成气象短信时则容易产生同一用户发送多条同一气象短信的情况,从而引起用户投诉。解决方法:在编写代码时通过应用Dictionary类,在PbClass2.cs方法集类中再定义一个RemoveDupli⁃cated(StreamReadersr)删除冗余类的方法,将文本文件中的各行读入数组,通过判断有无重复数据,有则将重复的用户数据丢弃,保证数据唯一且存放入Dic⁃tionary类中,最后返回一个Dictionary类即可。但在调试中出现“截断字符串或二进制数据。语句已终止。”错误,经检查发现原来是向数据库中添加的变量类型有误。原语句为cmd1.CommandText="insertintouphn(id,uphnum,ownerland,dztime)values(’"+n+"’,’"+v+"’,’拉萨’,’"+DateTime.Now.ToString()+"’)";此处的V变量类型为Dictionary,改为cmd1.Command⁃Text="insertintouphn(id,uphnum,ownerland,dztime)values(’"+n+"’,’"+v.Key.ToString()+"’,’拉萨’,’"+DateTime.Now.ToString()+"’)";后调试通过。3.4flash控件嵌入C#,提示错误:未能导入ActiveX控件,请确保它已正确注册解决方法:在VS环境中选择工具栏,选择工具箱项,COM组件;然后选择MicrosoftMultimediaControl,version6.0和ShockwaveFlashObject;最后在窗体上画一个ShockwaveFlashObject控件,之后把MicrosoftMultimediaControl,version6.0去掉,再画FLASH控件的时候就不会报这个错误了。3.5实现C#与Flash的交互通信通过Flash设计的登录动画界面如何与C#进行交互是平台开发中需要解决的一个重要问题,如果不能解决,设计中的亮点将无法体现。解决方法:选择工具箱上的Flash控件,放到窗体上并调整好大小在Form_Load()中加入如下代码。axShockwaveFlash1.Movie=@"D:\menu.swf";axShockwaveFlash1.Menu=false;axShockwaveFlash1.Playing=true;并在flash原文件的“进入”按钮所放层第一帧上添加如下动作:on(release){fscommand("SendAc⁃tion");},生成SWF文件。在VS环境下的FLASH控件找到的FSCommand事件,选择该控件双击添加如下代码:PrivatevoidaxShockwaveFlash1_FSCommand(ob⁃jectsender,AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvente){if(e.command=="SendAction"){this.Clost();}3.6用户数据库管理设计运行时,提醒主键不唯一,无法更改id的问题运行设计软件并删除一个用户时,将其后的id应改为原id-1,但是运行出错将数据库中id的主键去掉,能更改id,但是浏览数据库的内容时id不是按顺序显示,且删除一条记录有时会同时出现两个相同的id,最后又在数据库中将id设为主键后,仔细检查程序发现一条语句有问题,以下标注为红色,程序见下。for(intj=0;j<n;j++){com52.CommandText="updateuphnsetid=’"+arr[j]+"’whereid>’"+mainkey+"’";com52.Connection=con53;com52.ExecuteNonQuery();}错误改为com52.CommandText="updateuphnsetid=’"+arr[j]+"’whereid=’"+(mainkey+j+1)+"’";即可,程序运行正常,id号能正常排序。3.7C#中读写包含汉字的txt文本文件时出现乱码的问题解决方法:当我们用System.IO.StreamReader读取包含汉字的txt文件时,经常会读出乱码,StreamWrit⁃er写文本文件也有类似的问题。主要原因是文件的编码(encoding)和StreamReader/Writer的encoding不对应造成。StreamReader的默认编码为UTF-8,而不是当前系统的ANSI代码,因此读取简体中文会出现乱码,可以通过指定编码正确显示GB2312简体中文。代码如下:StreamReaderstrmopen=newStreamReader(@"c:\yb.txt",System.Text.Encoding.Default);stringstrOpen=strmopen.ReadToEnd();strmopen.Close();将程序中的第一条语句System.Text.Encoding.Default换成System.Text.Encoding.Ge⁃tEncoding("gb2312"),即可同样用StreamWriter保存txt文件时也是类似。3.8如何实现Flash动画(启动)界面点击后进入平台主界面并关闭Flash登录界面的问题解决方法:在你的程序目录下打开这个文件Pro⁃gram.cs。更改如下代码:Formfmfm=newFormfm();Application.Run(fm);Formmainmain=newFormmain();Application.Run(main);Formfm其实是一个含有flash控件的窗体,在课题开发中作为程序启动时的一个flash界面,点击该flash的按键后才真正进入到主程序界面。就是你关闭了第一个父窗体,又要打开的另一个窗体。在此就是Formmain窗体,在第一个父窗体(Formfm)的响应事件中加上this.close()即可。这里要注意的是当用户点击进入到平台主界面时要发生两个事件,第一响应flash与c#的交互,即进入平台主界面;第二要关闭flash启动界面。
4部分功能模块的实现方法
4.1数据库管理功能的实现。系统数据库分别为基础数据库、产品库、用户资源库、字段库。基础数据库是存储解码后报文的基础气象数据。如24小时预报、48小时预报、72小时预报等。产品库是存储各类已处理好的数据产品,以便根据业务所需实时提取。用户资源库按用户需求的不同,主要为气象短信用户、决策服务群两大类,系统要实现用户资源库的建设和管理等功能。系统可以对不同的服务对象进行管理,如气象短信用户、决策服务层用户、投诉用户等进行数据库管理,实现批量入库、删除、修改等功能。4.2产品生成与方法部分气象产品如公众预报产品、气象短信产品在后台通过监控报文时间,当到某一时间时启动解报软件翻译放入产品库,便于业务人员实时提取。而决策气象服务产品如天气公告、重要气象信息等,系统则提供便捷的编辑界面,进行统一管理,避免了往日混乱管理情况的发生。气象短信可以通过ftp技术实现上传至服务器;决策气象服务产品可以通过邮件或通过通信模块以短信方式发送等。如图3的功能实现方法就是利用MailMessage类完成邮件内容的设置,然后通过SmtpMail类完成邮件的发送功能,信息技术但是要实现邮件的群发及附件发送功能,则需要使用Attachments类。
5结语
通过开发主要功能模块,系统已初具雏形,但仍有许多其它功能需要继续研究完善,充分利用各类技术手段进行快速分发;实现各类天气预报产品自动化和半自动处理,并提供种文字、图片、声音、视频等产品素材,不断完善系统功能,以满足了各行业不同的需求。因此在今后的软件功能完善过程中,同样会遇到许多问题和新知识,这就需要我们不断去学习,同其他知识和技能的学习一样,掌握正确的学习方法对提高编程技术的学习效率和质量起着十分重要的作用,做好实践笔记,将平时所遇到的问题、失误和学习要点记录下来,这种积累的过程就是水平不断提高的过程。总之,理论指导实践,而实践丰富了理论。理论联系实践才是编程技术学习的指导思想。
参考文献
[1]刘旭林,赵文芳,刘国宏.基于WebGIS的气象信息显示和查询系统[N].应用气象学报,2008,19(1):116-122.
[2]贾玲,刘芳.人工影响天气综合管理信息系统应用技巧[J].陕西气象,2007(5):53-56.
[3]柳锦宝,何政伟,王增武,等.四川省气象服务信息系统的设计与实现[J].气象科技,2010,38(4):484-487.
[4]郭庆利,闫丽凤,薛波,等.气象短信业务系统开发与应用[J].安徽农业科学,2008,36(12):5233-5234.
[5]于庚康.浅谈江苏气象信息平台建设[J].气象软科学同,2009(3):109-111.
[6]张京红,李天富,黄秋如,等.海南省应用气象信息服务系统的设计与开发[J].广西气象,2005,26(A01):67-69.
作者:普布 德吉央宗 张琼 次珍 卫东 单位:西藏拉萨市气象局
- 上一篇:微信在气象服务的优势及发展
- 下一篇:林业气象服务探索与思考