1、1052客户端软件采用Visual Basic 2015及ADO.net技术 与服务器连接,实现常规站气象资料的各种查询与统计分析等自动化功能,查询结果显示在软件表格中,并提3供数据导出到Excel功能,作进一步加工使用。3.1.1 准备工作本查询系统资料以达州市321个常规站点为例,采用C/S模式。1 引言2 软硬环境服务端主要使用SQL server数据库,提供一个全市常规站点基本信息的索引表,以及全市常规站点气象要素表的只读权限。3 流程及相关处理近年来,随着社会与经济的发展,政府部门、公司企业及气象业务需求对资料查询的时效性、准确性和气象资料的统计分析等都提出了更高要求,特别是精准定位
2、到乡镇村庄、小区域、小范围的实际气象资料。因1此,常规气象观测站(本文以区域加密站为主,以下简称“常规站”)气象资料的查询与统计越来越频繁,且提出的要求越来越多。例如,厂矿风玫瑰选址、保险公司连续累计降水、某公司高温日数、某村庄连续雨日等等,但常规站气象资料仍存在靠人工手工查询,费时费力,甚至无法查询、难于统计分析等问题,迫切需要开发针对常规站气象资料的专业查询软件,满足社会及气象工作需求,提高工作效率。3.1 流程索引表:服务端中,数据库根据已有全市常规站点4建立了索引表。索引表里并不存储气象数据,它仅仅是对已有321个常规站点基本信息的归纳,如:站号、区县、站名、要素类型、经纬度等信息。软
3、件将根据站点、站名、区县、要素类型等等情况确定该站点的基本常规气象观测站查询系统设计与实现郑文全 刘鑫炼 罗贵东摘 要:以达州市321个不同气象要素类型的常规气象观测站历史地面气象资料为例,结合各级政府、企业、社会组织等各方面需求,分别从时、日、旬、月、年、范围值、风玫瑰等类别进行查询统计,并将结果以表格显示,还可以导出到Excel方便后续加工处理,能为气象预报业务、政府机关、公司企业提供快速、准确的气象资料,有效提高了气象数据应用和共享服务的水平。(达州市气象局,四川 达州 635000)关键词:常规站;查询;统计;SQL中图分类号:P413 文献标识码:A 文章编号:1008-6609(2
4、023)01-0105-05作者简介:郑文全(1973),男,四川达州人,工程师,研究方向为公共气象服务、软件开发等。服务端数据库客户端客户机站点,要素,时间等选择及逻辑判断等时要素.日要素范围值风玫瑰表格显示结果导出到Excel各站点表索引表图1 流程图电脑与电信DOI:10.15966/ki.dnydx.2023.z1.019由于站点数量有321个,即使使用下拉框也不便于快速、准确地选择站号。为了快速定位站号,我们使用索引表和动态加载ListBox来自动筛选。在创建的ListBox_Click点击事件中,把动态控件lstBox的选择项送给站点组合框,同时隐藏自身,并根据站点名内含的要素类型
5、来激活对应的气象要素值。客户端程序启动时,首先从数据库索引表中读取所有站点信息,处理并显示到主界面的站点ComboBox中,供用户选择。其选择方法加入自动筛选功能,方便从321个站点中快速定位。3.2.2 站点自动筛选站点表:321个,一站一表,存储各常规站的气象要素(由华云公司中心站数据收集软件CAWS AnyWhere Server 2013自动生成各站点的数据库)。但各站点的气象要素类型可能不一样(常规站分单要素、2要素、4要素、6要素),后面要素的查询需要对此进行分类、逻辑判断。3.1.2 处理流程3.2 关键处理与解决第一步,软件启动时,连接数据库索引表,将全部站点按“县-站名要素标
6、记_站号”格式(例如:达川-安仁2_HS7775)读取到本地数组。然后排序(Array.Sort,方便仅有模糊记忆的用户选择),再将数组添加到站点ComboBox的items中。信息。站点确定后,气象要素随之确定,根据选择的查询5类别、气象要素、时间等进行逻辑判断与筛选,最终将查询结果显示在DataGrid表中,最后可以将结果导出到Excel中。3.2.1 建立索引表由于常规站要素类型复杂,有单要素、2要素、4要素、6要素等,考虑细节、设计分类处理比大监站更为复杂。因此,建立了一个所有常规站点的基本信息索引表。一个站点对应一条记录,主要有站号、站名、区县、经纬度、要素标记、观测高度、建站日期等
7、共25个字段。我们仅需要区县、站名、要素标记、站号共4个字段。在软件启动时,会一次性从索引表读取这4个字段到本地数组中,用本地数组加快模糊或精确的筛选,同时判断要素个数并激活对应要素,防止对无效要素的查询,也利于用户直接判断该站点能否查询要素。若该站点无该要素,还可以选择是否用附近已有要素的站点进行佐证或代替。第二步,动态生成一个ListBox控件,并添加到主窗体控件中。其位置紧贴显示在站点ComboxBox下方,绑定点击事件,并置于Z轴最上方:这样,只要输入知道站号、站名,或者其中一部分,如汉字“柳”(图2站点自动筛选),就会自动筛选出站点供使用人员判断选择,大大提高工作效率。剩下就是由站点
8、ComboBox内容改变事件中,来判断ListBox是否存在,无则生成,有则使用。根据输入的内容text进行筛选,加入ListBox中,并显示出来(仅一个时不显,直接将结果送给ComboBox),关键代码:Dim lstBox As New ListBox,p As New Point(ComBox.Location.X,ComBox.Location.Y+ComBox.Height)With lstBox .Name=lstStation .Location=p 紧贴站点 ComboBox下面 .Width=ComBox.Width .Height=ComBox.Height*6 根据同名程
9、度设置高度大小 .Items.Clear().Visible=FalseEnd WithAddHandler lstBox.Click,AddressOf ListBox_Click 添加点击事件Controls.Add(lstBox)ListCreate_Flag=True 模块变量,控件添加标志lstBox.BringToFront()lstBox.Items.Clear()For Each Str As String In cboAllStation.Items If Not text=And Str.ToLower.Contains(text.ToLower)Then index+=1
10、 lstBox.Items.Add(Str)End IfNext106图2 站点自动筛选电脑与电信1073.2.4 数据标准6 查询的气象要素按现行气象观测数据文件格式 执行。例如,日界按气象日界确定等。除非有特别需求或社会普遍认知,需另作处理说明,如风玫瑰,则不按度数按8/16方位提供。3.2.6 状态提示查询过程,涉及的站点、要素、统计、时间等多种选择与逻辑判断,用户可能漏选或错选,界面均会以红字在对应地方提示当前状态(图2)。(select DATEADD(hh,3,TT)as TT2,BC from HS9999 where TT2022-05-17 20:00:00 and TT 0
11、 Then Fori=kTo 1 Step-1 If dt.Rows(i).Item(1)=dt.Rows(i-1).Item(1)Then dt.Rows.RemoveAt(i)删除重复 End If Next End If End If电脑与电信图3 某站2分钟风玫瑰数据统计108电脑与电信查询SQL语句主要利用case when then else end语句对风向字段分类分组,把度数转到8/16方位统计,结果以频次、频率百分率、风向、平均风速、最大风速、最小风速等列名共同显示,次序以频次降序排列(图3为某站2分钟风玫瑰数据统计)。最后可以在导出的Excel生成对应的风玫瑰图。4.2.6
12、 风玫瑰查询4.3 显示及导出数,min(日期)起始日期,max(日期)终止日期,min(要素值)最小值,max(要素值)最大值from(Selectrow_number()OVER(ORDERBYold_ID)new_ID,*from(Selectrow_ number()OVER(ORDER BYconvert(varchar(10),TT2,120)old_ID,convert(varchar(10),TT2,120)As日期,avg(cast(BCAsbigint)As要素值from(Select DATEADD(hh,3,TT)AsTT2,BCfromHS7715where TT20
13、22-02-2820:00:00andTT=2022-03-31 20:00:00)AsAgroupbyconvert(varchar(10),TT2,120)AsBwhere要素值140)AsCgroupbyold_ID-new_ID orderbydatediff(d,min(日期),max(日期)+1 desc自定义查询主要提供给高级专业使用者,用专业的SQL查询语句获取结果。为此,添加一个“列名代码查询”Combox,根据字段列名来完成自定义SQL语句。4.2.7 自定义查询所有查询结果绑定显示在DataGridView中,每次查询都清除前一次内容并重新绑定DataSet,显示表格进行
14、了居中、自适应宽度及隔行变色等简单美化处理(图3)。对4/6要素常规站(含有风要素)的站点,可按选择8/16方位的风玫瑰统计,提供2分钟、10分钟、最大风、极大风及瞬时风等风类的选择。图4 导出数据的Excel109电脑与电信Design and Realization of Inquiry System for Conventional Meteorological Observation StationsKeywords:regular station;query;statistics;SQLAbstract:Take the historical ground meteorologica
15、l data of 321 conventional meteorological observation stations of different meteorological element types in Dazhou for example,this system combines the needs of governments at all levels,enterprises,social organizations,etc.to realize query and statistics from year,range value,wind rose and other ca
16、tegories.The results are displayed in a table,and can also be exported to Excel for subsequent processing,which can provide fast and accurate weather data for weather forecasting business,government agencies,and companies.It effectively improves the level of meteorological data application and sharing services.ZHENG Wen-quan LIU Xin-lian LUO Gui-dong(Dazhou Meteorological Bureau,Dazhou 635000,Sichuan)Dim shap As Microsoft.Office.Interop.Excel.Shapeshap=xlSheet.Shapes.AddChart2(317,XlChartType.xl