分享
常规气象观测站查询系统设计与实现.pdf
下载文档

ID:2747446

大小:2.48MB

页数:6页

格式:PDF

时间:2023-11-29

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
常规 气象 观测站 查询 系统 设计 实现
郑文全等:常规气象观测站查询系统设计与实现常规气象观测站查询系统设计与实现郑文全1刘鑫炼罗贵东(四川省达州市气象局,达州6 350 0 0)摘要:以达州市32 1个不同气象要素类型的常规气象观测站历史地面气象资料为例,结合各级政府、企业、社会组织等各方面需求,分别从时、日、旬、月、年、范围值、风玫瑰等类别进行查询统计,并将结果以表格显示,还可以导出到Excel方便后续加工处理,能为气象预报业务、政府机关、公司企业提供快速、准确的气象资料,有效地提高了气象数据应用和共享服务的水平。关键词:常规站;查询;统计;SQLVisualBasic2015及ADO.net技术2,实现常规站气1引言象资料的各种查询与统计分析等自动化功能,查询近年来,随着社会与经济的发展,政府部门、公司企业及气象业务需求对资料查询的时效性、准确性和气象资料的统计分析等都提出更高要求,特别是精准定位到乡镇村庄、小区域、小范围的实际气象资料。因此,常规气象观测站叫(本文以区域加密站为主,以下简称常规站)气象资料的查询与统计越来越频繁,且提出的要求越来越多。例如,厂矿风玫瑰选址、保险公司连续累计降水、某公司高温日数、某村庄连续雨日等等,但常规站气象资料仍存在靠人工手工查询,费时费力,甚至无法查询、难于统计分析,迫切需要开发针对常规站气象资料的专业查询软件,满足社会及气象工作需求,提高工作效率。2软硬环境本查询系统资料以达州市32 1个常规站点为例,采用C/S模式。服务端主要使用SQL server数据库,提供一个全市常规站点基本信息的索引表,以及全市常规站点气象要素表的只读权限。客户端使用软件与服务器连接。软件采用结果显示在软件表格中,并提供数据导出到Excel功能3,做进一步加工使用。3流程及相关处理3.1流程服务端站点,要素,时间等选择及逻辑判断时要素日要素表格显示结果客户端导出到Excel图1流程图素引表数据库客户机范围值风玫瑰各站点表1作者简介:郑文全(19 7 3年一),男,大专,工程师,主要从事公共气象服务、软件开发。E-mail:。-98-第4期2022年12 月3.1.1准备工作索引表:服务端中,数据库根据已有全市常规站点建立了索引表。索引表里并不存储气象数据,它仅仅是对已有32 1个常规站点基本信息的归纳,如:站号、区县、站名、要素类型、经纬度等信息。软件将根据站点、站名、区县、要素类型等等情况确定该站点的基本信息。站点表:32 1个,一站一表,存储各常规站的气象要素(由华云公司中心站数据收集软件CAWSAnyWhereServer2013自动生成各站点的数据库)。但各站点的气象要素类型可能不一样(常规站分单要素、2 要素、4要素、6 要素),后面要素的查询需要对此进行分类、逻辑判断。3.1.2处理流程客户端程序启动时,首先从数据库索引表中读取所有站点信息,处理后并显示到主界面的站点ComboBox中,供用户选择。其选择方法加入自动筛选功能,方便从32 1个站点中快速定位。站点确定后,气象要素随之确定,根据选择的查询类别、气象要素、时间等选择进行逻辑判断与筛选 5,最终将查询结果显示在DataGrid表中,最后可以将结果导出到Excel中。3.2关关键处理与解决3.2.1建立索引表Dim lstBox As New ListBox,p As New Point(ComBox.Location.X,ComBox.Location.Y+ComBox.Height)WithlstBox.Name=lstStation.Location=p.Width=ComBox.Width.Height=ComBox.Height*6根据同名程度设置高度大小.Items.Clear().Visible=FalseEnd WithAddHandlerlstBox.Click,A d d r e s s O fLis tBo x _C lic k 添加点击事件Controls.Add(lstBox)ListCreate_Flag=TruelstBox.BringToFront()在创建的ListBox_Click点击事件中,把动态控件lstBox的选择项送给站点组合框,同时隐藏自身,并根据站点名内含的要素类型来激活对应的气象要素值。剩下就是由站点ComboBox内容改变事件中,青海气象Journal of Qinghai Meteorology由于常规站要素类型复杂,有单要素、2 要素、4要素、6 要素等,考虑细节、设计分类处理比大监站更为复杂。因此,建立了一个所有常规站点的基本信息索引表。一个站点对应一条记录,主要有站号、站名、区县、经纬度、要素标记、观测高度、建站日期等等共2 5个字段。我们仅需要区县、站名、要素标记、站号共四个字段。在软件启动时,会一次性从索引表读取这四个字段到本地数组中,用本地数组加快模糊或精确的筛选,同时判断要素个数并激活对应要素,防止对无效要素的查询,也利于用户直接判断该站点能否查询要素。若该站点无该要素,还可以选择是否用附近已有要素的站点进行佐证或代替。3.2.2立站点自动筛选由于站点数量32 1个,既使使用下拉框也不便快速、准确地选择站号。为了快速定位站号,我们使用索引表和动态加载ListBox来自动筛选。第一步,软件启动时,就连接数据库索引表,将全部站点按“县站名要素标记_站号格式(例如:达川一安仁2 _HS7775)读取到本地数组。然后排序(Array.Sort,方便仅有模糊记忆的用户选择),再将数组添加到站点ComboBox的items中。第二步,动态生成一个ListBox控件,并添加到主窗体控件中。其位置紧贴显示在站点ComboxBox下方,绑定点击事件,并置于Z轴最上方:紧贴站点ComboBox下面e模块变量,控件添加标志NO.4Dec.2022来判断ListBox是否存在,无则生成有则使用。根据输人的内容text进行筛选,加入ListBox中,并显示出来(仅一个时不显,直接将结果送给ComboBox),关键代码:-99-青海气象艺象探测lstBox.Items.Clear()For Each Str As String In cboAllStation.ItemsIf Not text=And Str.ToLower.Contains(text.ToLower)Thenindex+=1lstBox.Items.Add(Str)End IfNext这样,只要输人知道站号、站名,或者其中一部分,如汉字“柳”(图2 站点自动筛选),就会自动筛选出站点供使用人员判断选择,大大提高工作效率。3.2.3要素激活气象要素根据站名选择(例如:达川一安仁2_HS7775,其中的 2 表示 2 要素降水、温度,若是4则是4要素一一降水、温度、风向、风速),获得要素类型,用GroupBox分别对降水、温度、风向风速、湿度、气压进行要素归类、激活。另外,在切换Tab页和选择不同选项查询时,也会自动激活或关闭对应要素(例如:2 要素站不可能查询到4要素站的风要素),仅显示有效查询要素项(图2 中要素的激活与关闭)。3.3.4数据标准查询的气象要素按现行气象观测数据文件格式达州区城音动就童询系统站点:柳降水口小日漫一钟7 6 7 1HS7635口分口最低温度口最低时间时数据日数据甸数据月数据 年数据范国值风玫瑰 自定义开始:2022-03-01结束;2022-03-31提示:范围值处理完成:连续天数起始日期终止日期最小值最大值42022-03-0822022-03-242202203292022-033012022-03-20执行。例如,日界按气象日界确定等。除非有特别需求或社会普遍认知,另作处理说明,如风玫瑰,则不按度数按8/16 方位提供。3.3.5日界处理由于站点数据是按北京时按小时存储,故要进行气象日界转换处理,在SQL查询时需进行嵌套表 7变换成气象日界。例如SQL子句:(select DATEADD((h h,3,T T)a s T T 2,BC f r o mHS9999whereTT2022-05-17720:00:00andTT o ThenFor i=k To 1 Step-1If dt.Rows(i).Item(1)=dt.Rows(i-1).Item(1)Thendt.Rows.RemoveAt(i)删除重复End IfNextEnd.IfEnd If4.2.5范围值查询主要对单个气象要素日合计(日平均、日最大值、日最小值、日较差)等的查询,并提供间断/连续(日数)的合并统计显示8。主要适用于如连续降水日数(雨日)暴雨日数、稳定通过某温度(0 2 0)连续日数等,某要素在某阈值内的连续日数情况。例如:查询2 0 2 2 年3月某站附近油菜开花最适宜温度(14.0 18.0)的连续日期(图2),程序最终组合成的SQL语句如下:气象上用得比较广泛。4.2.4月年查询对各月(年)的合计值、平均值,以及月(年)最大(小)值的查询。月(年)值的统计可能涉及的数据量大,适当设置da.SelectCommand.CommandTimeout(默认30 秒)的值,目前我市极限测试有近接30 秒情况,故设置为40 秒。月(旬、年)极值可能出现多个(例如,5月有3个相同的温度最大值),故提供多值唯一值选择显示。可以对DataSet表中的重复值删除后,再绑定到表格中,关键代码:Select datediff(d,min(日期),max(日期))+1连续天数,min(日期)起始日期,max(日期)终止日期,min(要素值)最小值,max(要素值)最大值from(Select row_number()OVER(ORDER BY old_ID)new_ID,*from((Se l e c t r o w _n u m b e r()OVER(ORDER BY convert(varchar(10),TT2,120)old_ID,convert(varchar(10),TT2,120)As 日期,avg(cast(BCAs bigint))A s 要素值 from(Se l e c t D A T EA D D(h h,3,TT)As TT2,BC from HS7715 where TT2022-02-28-101-青海气象20:00:00 and TT=2022-03-31 20:00:00)As Agroup by convert(varchar(10),TT2,120)As B where要素值 140)AsCgroupbyold_ID-new_ID order by datediff(d,min(日期),max(日期)+1 desc4.2.6风玫瑰查询对4/6 要素常规站(含有风要素)的站点,可按选择8/16 方位的风玫瑰统计。提供2 分钟、10 分钟、最大风、极大风及瞬时风等风类的选择。查询SQL语句主要利用casewhenthenelseend语句对风向字段分类分组,把度数转到8/16 方位统计,结果以频次、频率百分率、风向、平均风速、最大风速、最小风速等列名共同显示,次序以频次降序排时数据日数据句数据月数据年数据范围值风玫瑰自定义开始:2022-02-2110:00台结束:2022-05-2110:00提示:风玖瑰处理完成!烫频率百区回分率35716.7127112.6824511.461989.271718.001597.441105.151095.10利用绑定表格中的ds.Tables(Hero)表,逐行(列名行及记录)将数据导出到Excel中,并对ExcelESEESEWCWSWENE气象探测列(图3某站2 分钟风玫瑰数据统计)。最后可以在导出的Excel生成对应的风玫瑰图。4.2.7自定义查询自定义查询主要提供给高级专业使用者,用专业的SQL查询语句获取结果。为此,添加一个“列名代码查询 Combox,根据字段列名来完成自定义SQL语句。4.3显示及导出所有查询结果绑定显示在DataGridView中,每次查询都清除前一

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开