全国气象预报业务产品grib2数据格式解析
生活随笔
收集整理的這篇文章主要介紹了
全国气象预报业务产品grib2数据格式解析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參考資料
全國智能網格氣象預報業務規范暫行: https://www.docin.com/p-2089521384.html
解析工具
grib2轉json工具下載地址:
https://github.com/cambecc/grib2json
解析過程
- 從github上下載源代碼
- 導入相關依賴
-
編寫一個測試類運行代碼,將grib2數據格式轉化為json數據格式
@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(" ")); } -
數據樣例
解析之后的json數據非常大,為了方便截取了json中的一個對象進行說明
單個對象包含兩部分,一部分是header,是一些元數據信息,一部分是data,全國陸地范圍共1401*1201 = 1682601條數據
header部分:
data部分:
-
根據氣象站點經緯度去獲取數據(以棲霞為例)
棲霞 lat:37.19 lon:120.51
根據站點經緯度計算該站點在網格數據data中的下標,全國氣象預測業務產品的網格范圍為70°E-140°E,0-60°N,起始點為(70°E,0),經緯方向上共1401個點,維度方向上共1201個點,格點總數為1401*1201=1682601,根據經緯度計算網格位置的公式如下,代入棲霞站點的經緯度
index = (lat/0.05)*1401 + (lon-70)/0.05 = 1043074這樣就可以得到一個氣象站點附近的數據,任意經緯度同樣可以參照這種方式進行計算
-
可以寫一個簡單的腳本驗證一下格點數據
</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的數據量為1682601,符合上述計算出的數值。
總結
以上是生活随笔為你收集整理的全国气象预报业务产品grib2数据格式解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 中counter什么意思_方便
- 下一篇: android 高德地图线路规划,路线规