999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VBA的氣象歷史資料查詢系統設計

2024-05-04 00:00:00房鵬羅紹艷鄭自君馬獻菊王建嬙
科技創新與應用 2024年11期

摘" 要:基于VBA編制氣象歷史資料查詢系統,通過各控件的相應事件、調用公共程序、Excel函數,對用戶提交的需求作出氣象數據的統計、處理、結果顯示,并可繪制等值線圖。該系統可對某氣象要素、任意時段歷史資料進行統計和排序,對統計結果進行相對全面的展示,并對研究年份進行突出顯示,利于氣象業務人員更準確、全面地了解當年或歷史氣候狀況,可為氣象科研提供實用、便捷的氣象資料統計工具,為相關部門或領導提供更準確、精細的氣象參考。

關鍵詞:VBA;程序設計;氣象資料;查詢系統;統計工具

中圖分類號:P409" " " " 文獻標志碼:A" " " " " 文章編號:2095-2945(2024)11-0119-05

Abstract: A meteorological historical data query system has been developed based on VBA. Through corresponding events, public programs and Excel functions of each control, we made statistics and processing of the meteorological data submitted by users. Based on these results, contour maps can be drawn. This system can perform statistics and sorting on a certain meteorological elements and historical data of any time period, display the statistical results relatively comprehensively, and highlight the research years. All this is beneficial for meteorological personnel to have a more accurate and comprehensive understanding of the current year or historical climate conditions, thereby can provide practical and convenient statistical tools of meteorological data for meteorological research and more accurate and detailed meteorological references for relevant departments or leaders.

Keywords: VBA; programming; meteorological data; query system; statistical tool

在氣候、農業氣象的氣候評價業務工作或氣象科研工作等方面,需要統計站點氣象要素逐日、旬、月、年,以及任意時段的常年平均值,以對當年或某年份的氣象要素與常年平均情況作出比較、評價;需要統計當年或某年份的氣象要素在任意時段的平均值、累積值或某閾值下的累積值,并了解其在歷史同期的排位,查詢其是否存在突破歷史極值等的氣候異常情況,同時,也可為相關部門或領導提供這些方面更精細、準確的參考。

VBA(Visual Basic for Applications)是基于微軟辦公系統Microsoft Office的程序設計工具,其可用于擴展 Office 應用程序功能,可在很大程度上提高工作效率。本課題通過VBA程序編程,并結合Excel的函數功能,編制了氣象歷史資料查詢系統。

1" 系統總體結構

本系統總體上包括輸入端—數據處理模塊—輸出端。輸入端主要包括各站站名、各站各氣象要素歷年逐日資料的錄入,用戶選擇統計對象、統計方式等。數據處理模塊主要是對原始數據、控件、變量進行預處理,對讀入的氣象資料進行一系列運算等。輸出端主要是各站某氣象要素逐日、各旬、每月及全年的多年平均值,氣象要素任意時段的多年平均值;各年份任意時段的統計結果,并進行排序;突出顯示分析年份等;并可制作等值線、色斑圖,根據某些方面實際需要,該圖也可作為預警圖等(圖1)。

2" 主要技術內容

2.1" 逐日歷史資料的存放格式

歷史氣象資料存放于Excel文件中,程序處理、統計的基礎數據來自該文件。每個氣象要素的歷史氣象資料由3個部分組成,一是日期,二是站點名稱,三是逐日氣象資料。日期的順序在工作表中以縱向排列,站點以橫向排列。由于Excel工作表的行數遠大于列數,即縱向較橫向可輸入更多的數據資料,同時縱向向下的方向便于資料的輸入,因此,本文各站點氣象要素逐日資料的輸入,按從上向下的方向輸入。

2.2" 時段范圍的規定

原始數據年份時段范圍為原始數據最早年份到最晚年份之間的時段范圍,歷史年份時段范圍為用戶需要處理的歷史年份范圍,多年年份時段范圍為用戶需要統計的多年起始年份到多年終止年份之間的時段范圍。原始數據年份時段范圍、歷史年份時段范圍和多年年份時段范圍均為時段,其大小關系為:原始數據年份時段范圍包含歷史年份時段范圍,歷史年份時段范圍包含多年年份時段范圍。“分析年份”相當于時間點,必須在原始數據年份時段和歷史年份時段范圍內,但不一定在多年年份時段范圍內。在“多年平均”的統計中,用戶輸入“開始年份”到“結束年份”的時段范圍大小等同于歷史年份時段范圍。

2.3" 查詢時段是否跨年的判斷

本程序可進行氣象要素相鄰年份跨年和同一年份不跨年的查詢,當起始日期的月值大于結束日期的月值,或者起始日期和結束日期的月值相同,但起始日期的日值大于結束日期的日值時,表示該查詢為跨年查詢,反之,為不跨年查詢。單站多年平均逐日資料最多為366個(考慮閏年),跨年和不跨年2種情形不共存。

不跨年的具體判斷條件為:當開始日期和結束日期的月份不同時,開始日期的月份值應小于結束日期的月份值;當開始日期和結束日期的月份相同時,開始日期的日值應小于或等于結束日期的日值。

跨年的具體判斷條件為:當開始日期和結束日期的月份不同時,開始日期的月份值應大于結束日期的月份值;當開始日期和結束日期的月份相同時,開始日期的日值應大于結束日期的日值。

2.4" 主要控件

2.4.1" 組合框控件

本程序用到多個組合框,其中氣象要素選項組合框用于選擇需要查詢的氣象要素名稱,如平均氣溫、降水量、日照時數、最高氣溫、最低氣溫、相對濕度和平均風速等;統計項目選項組合框用于選擇統計方式的名稱,如時段平均、時段求和、區間日數、區間求和、日最大、日最小和全部顯示等;排序方向選項組合框用于獲取“歷史排位”的排序方向,其值為“大”和“小”,當用戶選擇“大”時,表示排位結果來自降序,當用戶選擇“小”時,表示排位結果來自升序。距平統計選項組合框用于獲取用戶對距平方面的統計選項,其選項值有“距平”“距平百分率”“距平和距平百分率”。

2.4.2" 文本框控件

文本框控件結合組合框獲取需要查詢歷史資料的“起始年份”“終止年份”“起始日期”和“結束日期”的月份和日期,以及用戶需要統計分析的年份值。在統計某站點、某年份、某氣象要素的距平或距平百分率時,獲取該站點、該氣象要素多年的“起始年份”和“終止年份”值。

2.4.3" 多頁控件

本程序用到3個多頁控件,分別位于3個層級。位于第一層級的多頁控件包含名稱分別為“時段排序”和“多年平均”的2個頁面。位于頁面“時段排序”下的多頁控件包含名稱分別為“突顯與距平”和“多項排序”的2個頁面。位于頁面“突顯與距平”下的多頁控件包含名稱分別為“年份突顯”“歷史排位”“距平”的3個頁面。

2.4.4" 按鈕控件

程序對各站某氣象要素的歷年數據進行排序后,在諸多年份中,用戶需要對某一年份以突出背景顯示,以便于用戶對該年份的情況進行查詢。另外,用戶需要統計某時段內各站某氣象要素值在其歷史同期資料中的具體排序位置;統計某氣象要素的多年平均值,以計算該氣象要素值的距平或距平百分率等,這些功能在點擊按鈕控件后,得到相應的統計結果(圖2)。

2.5" 全局變量的作用

程序在處理、統計數據過程中,需要獲取原始數據最早和最晚年份;獲取用戶輸入的歷史資料時段范圍,即歷史資料的年份和日期的起始點和終止點;獲取分析年份值,以形成字符串,用于年份突出顯示和查找某年份的歷史排位;獲取區間查詢選填的關系符號和區間數值,以輸出到統計結果的標題內容中;在統計某氣象要素多年平均值時,獲取輸入的多年起始年份和終止年份;根據用戶選擇的不同統計選項,以獲取不同的工作簿名稱。程序需要判斷某處理文件是否為打開狀態;判斷某統計模塊是否完全執行;判斷用戶輸入的查詢時段是否跨年,輸入的分析年份值是否在歷史資料的最早年份和最晚年份之間;判斷在相應的控件中,用戶是否輸入了合規數據,控件的前后值是否發生了改變;判斷某類按鈕是否為首次執行,或者是否執行了其他按鈕且相關輸入性控件的數據前后至少發生過一次改變等。針對以上情況,需要設置全局變量獲取信息,以便于相應對象或函數的引用。

2.6" 公共程序的作用

對用戶輸入的數據信息進行自動識別、糾錯,即用戶在選填歷史資料的查詢時段時,可能有未輸入數據或輸入非數值型數據等不規范情況出現,程序需要判斷用戶在相應控件中輸入的數據是否符合規范。判斷用戶在多次運行某程序模塊時,在相應控件中輸入的各類數據前后是否發生了改變;如果輸入數據前后均未發生變化,則無須重新運行相應的程序模塊,以提高程序運行效率;如果至少有一個控件其中輸入的數據前后發生了改變,則須重新運行相應程序模塊。程序在執行統計功能前,要打開相應的處理文件,需要判斷這些文件是否處于打開狀態,如果文件處于關閉狀態,則要打開文件;相反,如果不需要處理此類文件,則需關閉文件,即判斷該文件是否處于打開狀態,如果該文件處于打開狀態,則關閉該文件,以減少運存占用。判斷用戶進行的查詢時段是否為跨年、統計選項是否為區間查詢,需對不同的統計選項進行標識,并將相關的信息輸出到統計結果的標題中。

通過選擇不同的統計選項,獲取對應的工作表名稱,以供其他對象引用。向工作表中寫入查詢的日期,以查找該對應日期的氣象要素值,并為相應單元格公式所引用,即通過查找歷史資料各年份起始日期和結束日期在工作表中的行號,計算行號對應查詢項目的值。在工作表中,通過一系列單元格公式,對氣象要素各年的值進行排序。根據統計項目是否為日極值、查詢時段是否跨年的不同,賦予用于查詢的中間變量值,根據此變量查找相應日期對應的氣象要素值在歷史資料中的排位。

2.7" 主要控件事件完成的任務

控件事件主要包括Initialize、Activate、Change、AfterUpdate和Click等。加載程序主窗體時,對相應的控件和變量進行初始化設置。程序窗體每次被激活時,將進行相應的判斷,對控件進行賦值,以便于用戶輸入,同時,程序對用戶的操作進行糾錯,并對出錯的情形進行處理。當統計選項變化時,可控制其他控件的可見性、名稱和相應控件的值及是否打開相關的處理文件,并決定是否調用某些公共程序。可統計某氣象要素若干年份的逐日、旬、月、年平均值以及任意時段的多年平均值。根據用戶選擇的統計選項,對原始數據進行預處理,在工作表中寫入統計標題,經過計算,顯示歷史排位、距平百分率等統計結果。本程序通過搜索日期性質的字符型變量,以獲取活動單元格地址,并將該活動單元格背景設置底色,即實現對被查詢對象所在日期的突出顯示。例如,統計各站點2001—2020年間6月1日—8月31日的平均氣溫,對統計結果進行排序,并突出顯示2020年的情況(圖3)。其中,當某年份排在第一位或者最后一位時,表示該年份在所分析的歷史時期范圍內,氣象要素統計值創歷史同期最高(最大)值或最低(最小)值。

2.8" 繪制等值線圖

通過調用繪圖程序(基于Surfer),可對歷史排位、距平、距平百分率和多年平均值等進行等值線圖的繪制。繪圖前需要向繪圖程序中輸入處理數據,繪圖程序讀取的處理數據來自工作簿文件,通過一定的方式向其工作表相應列寫入數據。打開繪圖程序后,用戶輸入等值線值、選擇色斑顏色后,則可輸出某氣象要素、某時段、某統計項的等值線圖。

3" 結論與討論

氣候評價、農業氣象服務等業務工作需要對某年份、某氣象要素的統計值與歷史資料比較,并進行評價。在農業氣象科研工作中,比如在研究作物生長發育、產量與積溫或其他需要統計的氣象要素之間的關系,或者作氣候資源評估時,需要開展大量的數據統計工作,本系統為這些方面的工作提供了很好的技術保障和支撐,在一定程度上,可有效提高業務、服務、科研等方面的工作效率。

本氣象資料歷史數據查詢系統可將任意時段的被查詢項目進行高亮顯示,這也是本系統的特色之一,用戶可以更直觀地了解某查詢項目在歷史資料中的排序、位置情況,利于用戶對查詢項目進行整體把握和了解,有助于用戶將某氣象要素與歷史資料作更準確的比較和評價。

查詢系統可以讓用戶更快地了解站點的某氣象要素在某閾值下的年份占整個歷史年份的比例,有助于用戶了解某時期的氣候特點,即便于確定某年某氣象要素處于何種狀況或常年該時段某氣象要素情況。例如,查詢某個站或某些站有氣象記錄以來的1到2月份合計降水量在10 mm以下的年份數量,以及其占整個查詢年份數量的比例等。

查詢系統可以統計有歷史氣象記錄以來的任意年份范圍、任意時段內的某氣象要素的平均值、累積值及某閾值區間的累積值,并將歷年情況進行排序,以便用戶查找歷史極值或進行氣候評價。系統可以統計某氣象要素歷史任意年份期間的逐日、旬、月、年,以及任意時段的多年平均值,以供統計距平值或距平百分率用。通過調用Surfer程序,可對統計出的排位結果、距平(或距平百分率)、多年平均值等繪制等值線圖。

由于對單元格進行逐個數據讀取會嚴重影響程序運行速度,本課題對工作表中的數據區域盡量采取整體復制的方式,并結合Excel引用、查找等函數對數據進行處理,以盡量提高程序運行速度。

參考文獻:

[1] 何國平,姜波,胥志強.基于TELNET協議的網絡監控和自動告警[J].高原山地氣象研究,2017,37(4):91-95.

[2] 宋智,呂爽,王凌.區域氣象服務產品共享平臺的設計與實現[J].高原山地氣象研究,2012,32(1):77-80.

[3] 孔莉莎,吳煥萍,劉秋鋒,等.氣候業務系統運行監控平臺設計與實現[J].氣象科技,2020,48(3):348-354.

[4] 李輯,劉東明,李榮平,等.遼寧省農業干旱監測預報業務系統的設計與實現[J].氣象科技,2020,48(5):640-647.

[5] 房鵬,馬聯敏,莫芳,等.VB結合Excel實現逐步回歸分析[J].電腦知識與技術,2019,15(16):231-235.

[6] 房鵬,鄭自君,莫芳,等.土壤濕度與氣象因子的關系分析[J].西昌學院學報,2019,33(2):86-93.

[7] 鄭自君,王建嬙,房鵬,等.臺站雙套自動氣象站質量控制系統[J].中低緯山地氣象,2018,42(5):80-84.

[8] 張宇.成都氣象數據庫監控系統的設計與實現[J].高原山地氣象研究,2014,34(1):86-89.

[9] 蔡蘇鵬,杜景林.基于GIS的人工影響天氣系統設計與實現[J].南京信息工程大學學報(自然科學版),2015,7(5):427-433.

[10] 肖天貴,肖光梁.高原山地短臨預警預報系統的設計與構建[J].高原山地氣象研究,2012,32(3):46-49.

[11] 賈利冬,何文春,李景鑫,等.基于CIMISS的等值線色斑圖接口設計與實現[J].氣象科技,2018,46(4):692-698.

[12] 張雪芬,王良宇,歷玉升,等.河南省農業氣象周報運行系統設計與實現[J].中國農業氣象,2005,26(1):45-48.

主站蜘蛛池模板: 中文字幕乱码二三区免费| 国产成人精品高清不卡在线| 国产农村妇女精品一二区| 日韩高清欧美| 亚洲欧美在线精品一区二区| 日本精品视频一区二区| 国产白浆一区二区三区视频在线| 欧美性猛交一区二区三区| 天天爽免费视频| 在线观看网站国产| 欧美日韩国产成人高清视频| 免费av一区二区三区在线| 亚洲娇小与黑人巨大交| 99这里只有精品免费视频| 国产精品久久久久久久久kt| 欧美国产在线看| www.日韩三级| 999精品在线视频| 久久久久久久久久国产精品| 成人综合久久综合| 国产精品午夜福利麻豆| 毛片网站在线看| 国产一区二区三区在线观看免费| 亚洲九九视频| 国产极品美女在线观看| 亚洲区一区| 国产91视频免费观看| 天天躁夜夜躁狠狠躁躁88| 免费福利视频网站| 国产色爱av资源综合区| 日本手机在线视频| 麻豆精品国产自产在线| 亚洲人成影院午夜网站| 国产成人免费手机在线观看视频| 欧美区一区二区三| 午夜精品一区二区蜜桃| 无码在线激情片| 欧美日韩国产在线观看一区二区三区 | 97se亚洲综合在线韩国专区福利| 亚洲成a人片77777在线播放| 国产乱人免费视频| 996免费视频国产在线播放| 欧美激情视频一区| 国产v精品成人免费视频71pao| 国产亚洲男人的天堂在线观看| 久久久久国产精品嫩草影院| 国产精品福利在线观看无码卡| 永久在线精品免费视频观看| 99久久性生片| 欧美在线视频不卡第一页| 免费无码又爽又刺激高| 中文成人在线| 国产精品永久免费嫩草研究院| 欧美亚洲一二三区| 韩日无码在线不卡| 91亚瑟视频| 久久免费看片| 天天躁日日躁狠狠躁中文字幕| 亚洲欧美极品| 狠狠做深爱婷婷综合一区| 亚洲香蕉久久| 91小视频在线播放| 国产美女人喷水在线观看| 992tv国产人成在线观看| 国产美女精品人人做人人爽| 色欲国产一区二区日韩欧美| 精品第一国产综合精品Aⅴ| 波多野结衣久久精品| 亚洲欧州色色免费AV| 亚洲精品日产精品乱码不卡| 91无码视频在线观看| 国产拍揄自揄精品视频网站| 日韩视频福利| 亚洲无码精彩视频在线观看| 97青草最新免费精品视频| 国产又粗又爽视频| 亚洲中文无码h在线观看| 欧美在线一级片| 国产原创演绎剧情有字幕的| 99久久国产综合精品2023| 强奷白丝美女在线观看| 伊人久久影视|