全国气象预报业务产品grib2数据格式解析
參考資料
全國(guó)智能網(wǎng)格氣象預(yù)報(bào)業(yè)務(wù)規(guī)范暫行: https://www.docin.com/p-2089521384.html
解析工具
grib2轉(zhuǎn)json工具下載地址:
https://github.com/cambecc/grib2json
解析過程
- 從github上下載源代碼
- 導(dǎo)入相關(guān)依賴
-
編寫一個(gè)測(cè)試類運(yùn)行代碼,將grib2數(shù)據(jù)格式轉(zhuǎn)化為json數(shù)據(jù)格式
@Test public void test_ny() {String args = "-d -n -o E:/data/apple-weather/pre.json E:/data/apple-weather/Z_NWGD_C_BABJ_20200422033236_P_RFFC_SMERGE-ER03_202004220800_24003.GRB2";Launcher.main(args.split(" ")); } -
數(shù)據(jù)樣例
解析之后的json數(shù)據(jù)非常大,為了方便截取了json中的一個(gè)對(duì)象進(jìn)行說明
單個(gè)對(duì)象包含兩部分,一部分是header,是一些元數(shù)據(jù)信息,一部分是data,全國(guó)陸地范圍共1401*1201 = 1682601條數(shù)據(jù)
header部分:
data部分:
-
根據(jù)氣象站點(diǎn)經(jīng)緯度去獲取數(shù)據(jù)(以棲霞為例)
棲霞 lat:37.19 lon:120.51
根據(jù)站點(diǎn)經(jīng)緯度計(jì)算該站點(diǎn)在網(wǎng)格數(shù)據(jù)data中的下標(biāo),全國(guó)氣象預(yù)測(cè)業(yè)務(wù)產(chǎn)品的網(wǎng)格范圍為70°E-140°E,0-60°N,起始點(diǎn)為(70°E,0),經(jīng)緯方向上共1401個(gè)點(diǎn),維度方向上共1201個(gè)點(diǎn),格點(diǎn)總數(shù)為1401*1201=1682601,根據(jù)經(jīng)緯度計(jì)算網(wǎng)格位置的公式如下,代入棲霞站點(diǎn)的經(jīng)緯度
index = (lat/0.05)*1401 + (lon-70)/0.05 = 1043074這樣就可以得到一個(gè)氣象站點(diǎn)附近的數(shù)據(jù),任意經(jīng)緯度同樣可以參照這種方式進(jìn)行計(jì)算
-
可以寫一個(gè)簡(jiǎn)單的腳本驗(yàn)證一下格點(diǎn)數(shù)據(jù)
</body><script>window.onload = function () {var url = "tmp1.json"var request = new XMLHttpRequest();request.open("GET",url);request.send(null);request.onload = function () {if(request.status == 200) {var json = JSON.parse(request.responseText);console.log(json[0].data.length);}}}</script>
可以看到data的數(shù)據(jù)量為1682601,符合上述計(jì)算出的數(shù)值。
總結(jié)
以上是生活随笔為你收集整理的全国气象预报业务产品grib2数据格式解析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 中counter什么意思_方便
- 下一篇: android 高德地图线路规划,路线规