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

下載及裁剪美國GFS全球數值天氣預報資料的方法

2021-12-30 19:20:00史小康程文聰忤建勛
氣象水文海洋儀器 2021年3期
關鍵詞:區域方法

史小康,程文聰,忤建勛,李 森

(1.北京航空氣象研究所,北京100085;2.西北核技術研究院,烏魯木齊 841700)

0 引言

美國NCEP機構制作的GFS全球數值天氣預報產品在中國氣象業務中有著非常廣泛的應用,除了可提供預報信息,還可作為背景場驅動有著同樣廣泛應用的區域數值天氣模式WRF開展短期和短時預報等。隨著GFS預報模型空間分辨率的不斷提高,GFS全球數值天氣預報產品的文件大小急速增加。相比過去1.0°分辨力的數據,目前0.25°的grib2格式的預報產品的數據大小增加了10多倍,單個文件達到330 Mb左右,這對數據傳輸和存儲帶來較大壓力。

然而,及時下載和存儲GFS的0.25°grib2格式的預報產品有著非常重要的業務價值。文章重點分析了當前下載GFS數據存在的困難和問題,給出了解決方法。另外,通過裁剪關心區域和減少無用變量的方法,縮小了原始grib2格式文件大小,并可給WRF模式提供背景場。

1 方法分析

1.1 現有方法和問題

1)在Windows環境下,訪問數據網站https://ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/,點擊下載目標文件。0.25°分辨力預報結果的文件命名格式為:gfs.t**z.pgrb2.0p25.f###,其中,“**”取值為00、06、12或18,代表1 d中的4次預報;“###”為預報時效。

但由于不明原因,當前數據下載速度非常慢(測試環境帶寬為200 Mb/s),并且由于數據文件比較大,時常下載停止或掉線,從而導致下載失敗。此現象在其他測試環境中也會出現。

2)在Linux環境下(測試環境帶寬為200 Mb/s),數據下載相對穩定一些。經測試,每日清晨是下載速度最快的時段。但即使在此時段,下載12 h預報結果(比如,取3 h間隔,則共5個數據文件)也常需要數個小時,使得GFS資料的可用性降低。

3)訪問數據網站https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_0p25.pl,針對GFS預報產品,可以選取變量、層次和關心區域,這樣下載的文件比較小。在相同網速下,這種方法耗時明顯減少,且成功率非常高。但從2020-06-24起,該網站停止提供此服務,且尚未恢復。

1.2 初步解決方法

1)申請1臺騰訊云計算服務器(Linux環境),最低配置即可。以騰訊云服務器為平臺,利用其IP,可以較為穩定的訪問數據網站https://ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/。

2)編寫腳本,實現數據下載。

3)如需將騰訊云上的下載數據轉移至本地,數據轉移速度與購買的滕訊云帶寬有關。為加快數據傳輸速度,減少存儲空間,利用python軟件及相關程序包編寫程序,生成僅包含關心區域和變量的grib2文件,提供給WRF模式作為背景場。

2 grib2文件格式和WRF模式背景場變量

2.1 grib2文件格式

grib是世界氣象組織(WMO)開發的一種用于交換和存儲規則分布數據的二進制文件格式。現行的grib碼版本有grib1和grib2兩種格式,grib2相比grib1有較大優點,比如支持多種壓縮方式、表示多維數據等。其中,jasper和jpeg是兩種常用且高效的壓縮方式,大大減小了文件大小。

1份grib2文件一般情況下可包含9部分[1]:0段為指示段;1段為標志段;2段為本地使用段;3段為網格定義段;4段為產品定義段;5段為數據表示段;6段為位圖段;7段為數據段;8段為結束標志碼7777。

由于文章僅對grib2文件進行區域裁剪,不作其他修改,故涉及修改的地方主要在3段和5段。其中,在3段中重新定義區域,在5段中重新寫入數據。

2.2 WRF模式背景場變量

grib2格式的GFS資料可作為WRF模式背景場,驅動WRF模式開展更高時空分辨率的數值模擬。GFS資料包含的變量特別多,但在WRF模式中,通過編譯安裝grib2讀寫庫,再借助Vtable變量表的形式,可實現指定變量的讀取[2]。

使用包含以下物理量的grib2格式的GFS資料,可驅動WRF模式正常運行:各等壓面層的位勢高度、溫度、相對濕度、U風速、V風速;各層的土壤溫度和土壤濕度;累計雪深的水相當量、雪深、2 m氣溫、2 m相對濕度、10 mU風速、10 mV風速、地表氣壓、海陸分布標志、海平面氣壓和地形高度。

3 具體實現

3.1 數據下載腳本

核心內容是使用Linux系統自帶的wget命令實現數據下載,具體為:

/usr/bin/wget ${filepath}/${filename}

其中,${filepath}為包含數據的網址;${filename}為被下載的GFS數據文件名。

經測試,利用騰訊云計算服務器的數據下載速度比使用之前的Linux環境快5倍左右。

3.2 基于python、ecCodes和pygrib軟件的grib2文件裁剪

1)軟件安裝

參考https://www.cnblogs.com/sunshine8/p/10348204.html[3]中方法,依次安裝anaconda3(V4.4.0)、ecCodes支持庫、ecCodes(V 2.18.0)和pygrib(V 2.0.5)等軟件。針對pygrib軟件安裝過程中存在的問題,文章給出以下解決步驟:

①修改setup.cfg文檔內容,主要是去掉下列行的注釋,并修改

tar -xzvf v2.0.5rel.tar.gz

cp setup.cfg.template setup.cfg

packages_to_install=["pygrib","ncepgrib2"]

grib_api_dir=/usr/local

jasper_dir=/usr

openjpeg_dir=/usr

grib_api_libname=grib_api_lib

②創建下面的2個鏈接,因為pygrib需要訪問grib_api*庫

cd /usr/local/lib

ln -sf libeccodes.so libgrib_api_lib.so

ln -sf libeccodes_f90.so libgrib_api_lib_f90.so

③安裝

cd pygrib-2.0.5rel/

python3 setup.py build

python3 setup.py install

2)grib2文件的讀寫和區域裁剪

編寫python程序,利用pygrib庫實現grib2文件的讀寫和區域裁剪。

①導入庫

import pygrib

from ncepgrib2 import Grib2Decode,Grib2Encode

②打開讀寫文件

infile=pygrib.open(infile_str) #被讀的且完整的GFS文件

outfile=open(outfile_str,′wb′) #存儲結果的GFS文件

③設置WRF模式運行需要的變量

#將要讀取的變量包含在varnames列表中,這些變量可供WRF模式正常運行使用。

varnames=[′Geopotential Height′,′Temperature′,′Relative humidity′,′U component of wind′,′V component of wind′,′Soil Temperature′,′Volumetric soil moisture content′,′Water equivalent of accumulated snow depth (deprecated)′,′Snow depth′,′2 metre temperature′,′2 metre relative humidity′,′10 metre U wind component′,′10 metre V wind component′,′Surface pressure′,′Land-sea mask′,′Pressure reduced to MSL′,′MSLP (Eta model reduction)′,′Sea ice area fraction′,′Land -sea coverage (nearest neighbor) [land=1,sea=0]′,′Orography′]

④讀取每一個gribmessage單元,并進行區域裁剪

for varname in varnames:

grbs=infile.select(name=varname)

for i in range(len(grbs)):

grbmsg=grbs[i]

#獲得關心區域的數據datsubset和原文件的編碼信息

datsubset,latsubset,lonsubset=grbmsg.data(lat1=lat1,lat2=lat2,lon1=lon1,lon2=lon2)

grb=Grib2Decode(grbmsg.tostring(),gribmsg=True)

#修改編碼信息

grb.grid_definition_info[1]=number_data_unpack #關心區域的格點數

grb.grid_definition_template[7]=points_x #東西方向格點數

grb.grid_definition_template[8]=points_y #南北方向格點數

grb.grid_definition_template[11]=lat2*1000000 #起始緯度

grb.grid_definition_template[12]=lon1*1000000 #起始經度

grb.grid_definition_template[14]=lat1*1000000 #終點緯度

grb.grid_definition_template[15]=lon2*1000000 #終點經度

grb.latitude_first_gridpoint=lat2*1.0

grb.latitude_last_gridpoint=lat1*1.0

grb.longitude_first_gridpoint=lon1*1.0

grb.longitude_last_gridpoint=lon2*1.0

grb.number_of_data_points_to_unpack=number_data_unpack

grb.points_in_x_direction=points_x

grb.points_in_y_direction=points_y

#存儲datsubset和新的編碼信息

grbo=Grib2Encode(grb.discipline_code,grb.identification_section)

grbo.addgrid(grb.grid_definition_info,grb.grid_definition_template)

grbo.addfield(grb.product_definition_template_number,grb.product_definition_template,grb.data_representation_template_number,grb.data_representation_template,datsubset) #寫數據

grbo.end()

outfile.write(grbo.msg) #寫輸出文件

通過以上步驟,可實現GFS預報資料的區域裁剪。其中,lat1

3.3 結果分析

通過以上方法,根據關心區域的格點數與全球的格點數的比值,以及存儲變量個數與全部變量個數的比值,可以大概算出文件最終的大小。

以生成區域——lat:17°E~57°E;lon:70°E~120°E的WRF模式背景場為例,實測表明采用文章所述方法可將1個GFS文件的大小從330 Mb縮小至7 Mb,在很大程度上節省了存儲空間并加快了數據傳遞速度。

通過編寫作業腳本,利用Linux系統自帶的crontab命令設置定時作業,可實現GFS文件的批量自動下載和裁剪。經測試,測試平臺可實現多個數據文件的并行下載,但基于python文件裁剪功能的進程數量不宜同時超過4個,因此需在作業提交時給予合理時間安排。

3.4 pygrib在處理grib文件中的其他應用

grib格式是存放氣象數值預報產品的一種重要數據格式,開展grib格式文件的讀寫是一件非常重要的能力。在以往研究中,常基于Fortran或C程序進行開發,難度較大,文章基于python環境,利用pygrib庫可較容易地實現數據讀寫與裁剪。

但此過程的實現,也用到了pygrib庫的其他函數。比如,grbs.seek()函數可獲得grib文件中所有變量的文字介紹;grbs.select()函數可實現對指定變量或指定位置的內容的讀取;grbs.latlons()函數可獲得詳細的經緯度信息等。

此外,在pygrib庫的test子目錄下,有大量的python示例程序可供參考;在utils子目錄下,有多個可執行程序可供使用,比如grib1和grib2的互轉、grib文件的拆分和合并等,可加以關注和使用,這些都將方便用戶對grib格式文件的使用。

4 結束語

針對當前美國GFS全球數值天氣預報資料下載速度較慢和文件所需存儲空間較大的問題,文章提出借助騰訊云計算服務器實現數據的穩定、快速下載;基于python、ecCodes和pygrib軟件實現grib2格式文件的區域裁剪,減少無用變量,縮小文件大小,并可給WRF模式提供背景場,具有較強的業務應用價值。

猜你喜歡
區域方法
永久基本農田集中區域“禁廢”
今日農業(2021年9期)2021-11-26 07:41:24
分割區域
學習方法
關于四色猜想
分區域
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
基于嚴重區域的多PCC點暫降頻次估計
電測與儀表(2015年5期)2015-04-09 11:30:52
主站蜘蛛池模板: 免费全部高H视频无码无遮掩| 91麻豆精品国产91久久久久| 欧美人与牲动交a欧美精品| 欧美va亚洲va香蕉在线| 黄色在线不卡| 露脸一二三区国语对白| 91久久国产成人免费观看| 又猛又黄又爽无遮挡的视频网站| 日本一区中文字幕最新在线| 亚洲日韩欧美在线观看| 欧美亚洲中文精品三区| 精品成人一区二区三区电影| 国产成+人+综合+亚洲欧美| 国产福利免费在线观看| 国产资源免费观看| 人妻丰满熟妇αv无码| 亚洲妓女综合网995久久 | 欧美成人综合在线| 久久人午夜亚洲精品无码区| 精品国产aⅴ一区二区三区| 欧美日韩亚洲国产| 国产成年无码AⅤ片在线| 狠狠五月天中文字幕| 亚洲欧美精品一中文字幕| 国产00高中生在线播放| 2021最新国产精品网站| 91综合色区亚洲熟妇p| 无码国内精品人妻少妇蜜桃视频 | 亚洲人成影视在线观看| 亚洲日本中文字幕乱码中文| 亚洲第一综合天堂另类专| 青青草原国产免费av观看| 国产精品久久久久久久久久久久| 日韩在线影院| 无码粉嫩虎白一线天在线观看| 996免费视频国产在线播放| 色欲色欲久久综合网| 91精品伊人久久大香线蕉| 亚洲精品国产成人7777| 欧美激情成人网| 欧美日韩一区二区在线免费观看| 色综合天天综合中文网| 热热久久狠狠偷偷色男同| 欧美成人一区午夜福利在线| 香蕉久久国产精品免| 在线精品亚洲国产| 四虎永久免费地址在线网站| 亚洲男人天堂网址| 国内精品视频在线| 亚洲欧洲日韩综合| 一级毛片不卡片免费观看| 成人免费一级片| 蝌蚪国产精品视频第一页| 国产精品区视频中文字幕| 国产专区综合另类日韩一区| 婷婷午夜影院| 午夜啪啪网| 青青青亚洲精品国产| 亚洲天堂区| 久久这里只有精品8| 91啦中文字幕| 污视频日本| jizz亚洲高清在线观看| 欧美第一页在线| 波多野结衣一二三| 8090成人午夜精品| 欧美日韩国产成人高清视频| 992tv国产人成在线观看| 国产情精品嫩草影院88av| 免费人成黄页在线观看国产| 国产麻豆另类AV| 就去色综合| www亚洲天堂| 国产精品成人观看视频国产 | 免费激情网址| 国产综合精品日本亚洲777| 国产成人喷潮在线观看| 欧美精品成人| 99re热精品视频国产免费| 毛片免费在线视频| 四虎国产永久在线观看| 欧美色综合网站|