亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種保存Micaps數(shù)據(jù)資料的思路和方法

        2020-11-23 06:10:26李細生
        中低緯山地氣象 2020年5期
        關(guān)鍵詞:數(shù)據(jù)文件二進制備份

        張 華,李細生

        (湖南省株洲市氣象局,湖南 株洲 412003)

        0 引言

        Micaps4[1]是目前我國大部分氣象臺站制作天氣預(yù)報的操作平臺,功能眾多,需海量的數(shù)據(jù)資料支持,國家氣象局將這些數(shù)據(jù)以不同格式(大部分是文本格式)下發(fā),優(yōu)點是便于直接讀取和訪問,缺點是空間占用非常大,每天大約有100 G,且訪問效率較低?,F(xiàn)在各個省局都建有分布式數(shù)據(jù)中心,市、縣兩級再無需維護數(shù)據(jù)服務(wù)器,訪問速度和效率較以前大幅度提升,但仍然沒有解決基層臺站歷史資料的長期不間斷保存問題,這些海量的歷史數(shù)據(jù)其實也是氣象部門的寶貴資源和財富,白白流失實在浪費?;诖?,可設(shè)計一個資料存儲程序,通過一些必要的刪減和壓縮手段,將每天的資料打包到一個數(shù)據(jù)文件,既大大節(jié)約存儲空間,又便于資料的交流和使用以及日后的分析應(yīng)用,從而打好氣象部門的“大數(shù)據(jù)”[2]這張牌。

        1 壓縮數(shù)據(jù)文件的主要思路

        為了達到數(shù)據(jù)文件大幅度瘦身的目標,保存資料時必須有相應(yīng)的刪減和壓縮技巧,可通過如下幾種方式縮減容量:

        1.1 縮小資料覆蓋范圍

        Micaps資料一般有全球范圍,東亞范圍等,基層臺站如果研究的區(qū)域不需要那么大,則可將范圍適當縮小。如中央臺下發(fā)的EC細網(wǎng)格資料范圍是73°~135°E、18°~54°N,總共有497×289=143 633個網(wǎng)格點,網(wǎng)格距是0.125個經(jīng)緯度。假如研究目標區(qū)域僅僅為江南、華南等地,那么可以將經(jīng)緯度范圍裁取為:100°~130°E、20°~40°N,如此一來,網(wǎng)格點變?yōu)?61×161=25 921個,數(shù)據(jù)量變?yōu)樵瓉淼?/6。

        1.2 刪除不常用的要素或產(chǎn)品

        Micaps資料里占用空間較大的有衛(wèi)星數(shù)據(jù)產(chǎn)品、雷達產(chǎn)品、數(shù)值模式產(chǎn)品等,如果去除這些,或者只選擇少數(shù)幾個精品進行保持,也可減少一半以上存儲容量。

        1.3 將文本格式的數(shù)據(jù)改寫成二進制格式

        Micaps后臺使用的數(shù)據(jù)很多為文本格式,它是一種典型的順序文件,其文件的邏輯結(jié)構(gòu)又屬于流式文件??梢栽赨nix、Macintosh、Microsoft Windows、DOS和其它操作系統(tǒng)之間自由交互,文本文件編碼基于字符定長,譯碼容易但占用空間較大;二進制文件編碼是變長的,所以它靈活,存儲利用率高,占用空間較小。因此,可以利用二進制文件占用空間小的優(yōu)點,通過程序?qū)⑽谋疚募械臄?shù)據(jù)按一定的順序?qū)懭攵M制DAT文件,從而縮減容量。當然,二進制文件也有可讀性差的缺點,所以數(shù)據(jù)保存好以后一定要用專門的說明文件對數(shù)據(jù)的格式和順序進行單獨說明,并與數(shù)據(jù)文件存放在同一路徑下。

        2 寫入二進制文件的源碼和注意事項

        下面以ECMWF_THIN某個時次的低溫預(yù)報數(shù)據(jù)為例來說明改寫程序的編寫。編程語言為VB.NET,源程序用Microsoft Visual Studio 2010編譯[3]通過,代碼的功能是將某一時間點EC細網(wǎng)格2 m最低氣溫預(yù)報(間隔6 h、共38個預(yù)報時次)通過范圍裁取后寫入二進制DAT文件,設(shè)計思路是將原文本數(shù)據(jù)文件去除文件頭,選取適當范圍數(shù)據(jù)再改變順序?qū)懭攵M制文件*.dat。源代碼如下:

        Public Function DuECTmn(ByVal Parth As String)

        Dim Jd(2), Jdt(2) As Single '原經(jīng)度范圍,細網(wǎng)格73

        Dim Wd(2), Wdt(2) As Single '原緯度范圍,細網(wǎng)格18

        Dim T1(17), Tm1(38) As Integer

        Dim T2(17), Tm2(38) As String

        Dim myFileTmn As New IO.FileStream("d: fxtdat” °ComboBox4.Text ° "Tmn6.dat", FileMode.Create, FileAccess.Write)’創(chuàng)建新的二進制文件。

        Dim bwTmn As New BinaryWriter(myFileTmn, System.Text.Encoding.UTF32) ’ 定義二進制文件的數(shù)據(jù)壓縮格式為UTF32。

        For K = 1 To 38 '按順序循環(huán)讀取低溫文件38個(6h間隔)

        txtFmn6 = TxtTmn6 °ComboBox4.Text °Tm2(K)'EC6 h低溫全路徑文件名。

        If My.Computer.FileSystem.FileExists(txtFmn6) = False Then‘如果原始資料缺失則提示并退出。

        MsgBox(txtFmn6 °"文件缺失!")

        bwTmn.Flush()

        bwTmn.Close()

        myFileTmn.Close()

        Exit Function

        End If

        Dim strRead As String() = IO.File.ReadAllLines(txtFmn6)

        Dim Temp(strRead.Length - 1)() As String

        For i = 0 To strRead.Length - 1

        strRead(i) = Trim(strRead(i))

        Do While InStr(strRead(i), " ") '如果有連續(xù)的兩個空格就替換成一個空格,用循環(huán)方式去除文本文件中多余的空格。

        strRead(i) = Replace(strRead(i), " ", " ")

        Loop

        If i<6 Then

        Temp(i) = strRead(i).Split(" ")’用回車符分割數(shù)據(jù)

        Else

        Temp(i) = strRead(i).Split(" ")’用空格分割數(shù)據(jù)

        End If

        Next

        Jd={107, 117} '縮小經(jīng)度范圍

        Wd={23, 31} '縮小緯度范圍

        Dim Ds(Int((Wd(1)-Wd(0))/0.125), Int((Jd(1)-Jd(0))/0.125)) As Single

        x=0

        For i=0 To Int((Wd(1)-Wd(0))/0.125)-1

        For j=0 To Int((Jd(1)-Jd(0))/0.125)-1

        Ds(i, j)=Temp(2*(54-Wd(0))/0.125-2*i+6)((Jd(0)-73)/0.125+j)’將文本文件數(shù)據(jù)讀入數(shù)組,并改變順序?qū)懭攵M制文件,+6是為了去除文本文件的前6行(文件頭)。

        Gf=Val(Ds(i, j))

        bwTmn.Write(Gf) ’寫入二進制文件

        x=x+1

        Next

        Next

        Next

        bwTmn.Flush()

        bwTmn.Close()

        myFileTmn.Close()

        End Function

        上述子程序?qū)⒆x取數(shù)據(jù)范圍設(shè)置成107°~117°E、23°~31°N ,網(wǎng)格點變?yōu)?01×81=8 181個,6 h一次、38個預(yù)報時次的文件(TXT格式)本來總共占33 M空間,改寫成一個二進制dat數(shù)據(jù)文件后縮小為680 K,約為原來的1/50,文件大幅度變小,訪問效率提升。

        這里需要注意兩個問題:一是寫DAT文件時的編碼格式,“System.Text.Encoding.UTF32”必須是UTF32編碼,其它編碼格式用GRADS軟件讀取時為錯誤數(shù)據(jù);二是寫數(shù)據(jù)的順序,Micaps的數(shù)據(jù)順序是從高緯度到低緯度,寫數(shù)據(jù)時必須改成從低緯度到高緯度。

        Micaps的文本數(shù)據(jù)一般是一個文件保存二個維度數(shù)據(jù),寫成二進制文件時可以根據(jù)需要將一天的所有資料保存到一個文件里,那么就有5個維度(空間三維,時間一維,要素一維)的數(shù)據(jù),如此處理之后,每天100 G的原始數(shù)據(jù)除去不常用的,全部寫入一個dat,大小變?yōu)?00~500 M,壓縮比例為200~1 000倍,保存幾年的數(shù)據(jù)毫無壓力。

        3 二進制數(shù)據(jù)文件的訪問和使用

        通過前面方法處理保存的數(shù)據(jù)文件的說明文件通常在同路徑下可以找到,如果這些數(shù)據(jù)需要在Micaps里使用,用簡單的少數(shù)幾行代碼恢復(fù)成一個個文本格式文件,再加上相應(yīng)的文件頭即可。

        如需要用GRADS等繪圖軟件查看數(shù)據(jù),則另寫數(shù)據(jù)描述文件。前文EC低溫預(yù)報的數(shù)據(jù)描述文件如下:

        dset d: fxtdat19091008Tmn6.dat

        TITLE EC dw

        UNDEF -9.99E+33

        options little_endian

        XDEF 80 LINEAR 107 0.125

        YDEF 64 LINEAR 23 0.125

        ZDEF 1 LEVELS 999

        TDEF 38 LINEAR 08Z10Sep2019 6hr

        vars 1

        dw 0 99 dw

        ENDVARS

        4 備份程序的業(yè)務(wù)使用情況

        株洲市氣象臺是湖南省的地區(qū)級臺站,備份數(shù)據(jù)需要從湖南省氣象局數(shù)據(jù)服務(wù)器遠程拷貝下載,每天的數(shù)據(jù)量很大,如果是直接下載再保存于本地,受限于網(wǎng)絡(luò)帶寬和硬盤容量,基本無法實現(xiàn),用前文所述方法加以處理后,如果只選取常規(guī)地面、高空資料,EC-Thin資料等,一天的數(shù)據(jù)壓縮后大約只有500 M,這樣一來,1TB的硬盤可以輕松保存5 a以上資料。基于此思路,我們用VB.NET編寫了可執(zhí)行程序,該程序的主要功能是定時備份遠程服務(wù)器上的M4后臺數(shù)據(jù),定時功能由WIN系統(tǒng)的計劃任務(wù)實現(xiàn),將該程序放入系統(tǒng)計劃任務(wù)欄每日02—03時自行啟動(如圖1),備份完畢后自動退出。

        圖1 WIN7系統(tǒng)計劃任務(wù)中的M4資料備份程序Fig.1 M4 data backup program in win7 system planning task

        具體需要備份哪些資料由設(shè)置文件設(shè)置(如圖2),該設(shè)置文件列舉需要備份的資料及其目錄地址,備份主程序啟動后搜索該目錄下一天之內(nèi)的所有新文件并逐一寫入DAT文件,圖2所示的設(shè)置文件備份高空、地面和EC細網(wǎng)格資料,日儲存數(shù)據(jù)量大約為原數(shù)據(jù)量的25%,占用空間150 M,一般1 h內(nèi)即可完成備份。通過最近2 a的實踐運行,此程序穩(wěn)定可靠,操作簡單,設(shè)置好參數(shù)文件后無需人工干預(yù)即可每日定時完成資料備份工作。

        圖2 備份程序的設(shè)置文件Fig.2 The setup file of backup program

        5 結(jié)語

        資料備份工作非常重要,前文所述的思路和方法可以概括為:刪除不常用數(shù)據(jù),保留必需的核心數(shù)據(jù),并用二進制編碼進一步壓縮數(shù)據(jù)文件容量,后期數(shù)據(jù)使用可借助GRADS軟件或者恢復(fù)成M4文本文件。2年的實踐使用證明該方法穩(wěn)定、實用且操作簡便,保存和使用資料的成本降低,效率提高,可為基層臺站解決海量歷史資料備份問題提供借鑒。

        猜你喜歡
        數(shù)據(jù)文件二進制備份
        “備份”25年:鄧清明圓夢
        用二進制解一道高中數(shù)學(xué)聯(lián)賽數(shù)論題
        有趣的進度
        二進制在競賽題中的應(yīng)用
        數(shù)據(jù)文件恢復(fù)專題問答
        數(shù)據(jù)文件安全管控技術(shù)的研究與實現(xiàn)
        SQL數(shù)據(jù)文件恢復(fù)工具
        淺析數(shù)據(jù)的備份策略
        科技視界(2015年6期)2015-08-15 00:54:11
        Tekla Structure數(shù)據(jù)文件交互格式分析
        出版原圖數(shù)據(jù)庫遷移與備份恢復(fù)
        久久精品岛国av一区二区无码 | 深夜福利啪啪片| 免费观看性欧美大片无片| 亚洲精品二区中文字幕| 国产一区二区三区观看视频| 开心五月骚婷婷综合网| 人妻丰满av无码中文字幕| 亚洲国产成人精品无码区99| 久久精品亚洲精品毛片| 亚洲日本精品一区二区三区| 中文字幕无码乱人伦| 国产青草视频在线观看| 亚洲中文字幕无码二区在线| 日本免费三片在线播放| 日日碰日日摸日日澡视频播放 | 精品人妻av一区二区三区麻豆| 午夜福利理论片在线观看| 免费人成再在线观看网站| 国产精品电影久久久久电影网 | 女同另类激情在线三区| 国产精品国产三级国产专区不| 中文无码一区二区三区在线观看| 品色堂永远的免费论坛| 亚洲精品中文字幕乱码二区| 国产成人精品一区二三区孕妇| 中文在线8资源库| 99久久免费国产精品2017| 丝袜美腿诱惑一二三区| 伊人情人色综合网站| 国产成人精品日本亚洲11| 91热国内精品永久免费观看| 亚洲成a人一区二区三区久久| 亚洲熟妇av一区| 日韩精品一区二区三区视频| 久久精品国产亚洲av热九九热 | 亚洲av无码乱码在线观看富二代| 熟妇人妻中文av无码| 免费人成视频网站在线观看不卡| 扒开美女内裤舔出白水| 久久久久国产一区二区| 精品不卡久久久久久无码人妻|