MetDig 用Python打造天氣診斷分析利器

2021-01-11 中國氣象局

中國氣象報記者 張格苗

 

  在國家和中國氣象局鼓勵科技創新的浪潮中,中央氣象臺成立天氣預報技術研發室,希望用技術手段解決那些困擾預報員多年的業務問題。
  宮宇所在的天氣學診斷分析技術研發團隊看到了一個業務痛點——以前,每次重要天氣過程過後,預報員想要復盤分析研究時,就會各自去編寫代碼、搜集數據,這種分散勞動很大程度上造成了重複,浪費了寶貴的時間和精力。解決這一痛點成為他們確立的第一個目標。
  一年過去了,一個等待更多天氣預報員和氣象愛好者「檢驗」的通用型天氣學診斷分析工具包(MetDig)登陸GitHub,供用戶下載使用。

MetDig 技術架構。

  選擇Python,帶來意外和驚喜
  計算機語言的種類很多,不同語言之間存在種種技術壁壘。而GrADS、Fortran、NCL、IDL等常用氣象分析計算機語言專業性更強,所以技術交流困難、重複勞動頻繁、技術實現標準難以統一等諸多問題無法避免。
  MetDig是用Python語言寫成的。Python何許「人」也?稱其為當下最火的計算機語言也不為過。Python由荷蘭程式設計師吉多·范羅蘇姆30年前創立,後作為開源項目吸收了成千上萬人的智慧。它易於編碼,可讀性較高,使學習者和使用者不會被語言結構所困擾,在數據科學、人工智慧和機器學習流行的今天成為增長最快的主流程式語言。
  正是因為開源集眾智,各行各業的程式設計師們基於Python語言開發了種類不同的程序庫,可以被「後來者」直接調用。以大氣科學為例,有人整理了常用的Python程序庫,涉及數值模式、資料同化、數據預處理和分析、可視化等的就有9個方面63個庫。
  宮宇和同事原計劃直接用比較熱門的幾個庫來實現目標。結果發現,每個庫其實都有自己的獨立性,他們只好從底層代碼開始處理,進行技術整合和分析庫開發,才感覺找到了正確的路子,也因此帶來了意外之喜。就好像蓋房子,Metpy、Magics、PyNGL和wrf-python等程序庫是裝配式建築中已經成型的建築模塊,不能簡單拼湊了之,仍需建築師們按照這棟房子的要求進行針對性設計,再深挖地基,搭建良好的兼容環境,才能使房子蓋得又好又快。
  不會編程,也能「私人定製」
  MetDig 與生俱來的使命是支撐天氣預報及其相關研究工作,為重大天氣過程預報、復盤、機理研究等應用場景提供診斷分析技術支持。
  在技術框架上,MetDig由四層組成——IO層、用戶調用層、算法層和可視化層。
  IO層通過nmc_met_io自研程序庫接入我國天氣預報業務MICAPS Cassandra 和 CIMISS資料庫數據環境。
  用戶調用層提供兼顧通用性和結構簡明的調用參數,讓使用者可以定製數據源、時空信息、地理信息標註等要素。
  在算法層,MetDig底層基於Xarray結構,引入了NumPy、Pandas、SciPy、MetPy等熱門科學計算、大氣診斷和數據結構體等算法程序庫,此外,還包含了nmc_met_diagnostic、nmc_met_base等自研算法包。用戶可以基於我國天氣預報業務MICAPS Cassandra和CIMISS資料庫等數據環境,進行大氣診斷量計算、多維時空插值、多維數據切片和提取等常用計算。
  可視化層則基於Matplotlib、Cartopy、MetPy等程序庫,可以實現常用地圖投影轉換、圖形繪製及圖形簡單交互等功能。
  宮宇說,這樣的設計,對使用者更友好。即便是不會寫代碼的天氣預報員和氣象愛好者,也可以通過MetDig輸入自己需要的時間、地點、數據來源等信息,得到一個清晰明了的可視化結果,而不必在意背後的代碼是如何運行的。
  要做天氣診斷分析利器
  MetDig並非第一次走進用戶,中央氣象臺的預報員們就是第一批「體驗官」。一年裡,研究團隊邊研發邊試用,收到反饋再改進,才有了現在的MetDig,可以為用戶提供等壓面、等熵面、Miller綜合圖、時間剖面、空間剖面、點等多維度類型的診斷分析圖形分析。
  有需求的預報員和氣象愛好者可以登錄Github網站下載安裝應用。中央氣象臺通過搭建Jupyterhub系統,實現了對MetDig 的雲計算和可視化應用。這樣的應用流程具有較好的用戶友好性,功能上比較靈活,容易拓展,用戶無需在本地機器安裝MetDig 和任何特定系統環境,僅需通過瀏覽器打開Jupyterhub地址,即可通過MetDig 用戶調用層實現在線分析。
  在Python豐富在線技術資源的支持下,後臺管理員「掌握」的功能也很強大。他們可以通過更新MetDig,快速實現新功能的接入應用,使新技術從研究到應用的距離大大縮短。而且,預報員如果對某種災害性天氣的物理機制有足夠理解,對該類天氣有清晰的預報思路,也可以更好地通過Jupyterhub將MetDig「為我所用」,可通過編輯診斷分析腳本集對各類天氣的認識於一體,幫助有針對性地聚合預報關鍵信息,打造更方便快捷的天氣診斷分析平臺。
  在宮宇和團隊成員的設計中,未來MetDig 將繼續引入新的診斷分析理論和方法,逐步發展物理量計算、天氣系統客觀識別、三維時空結構特徵提取、數值模式誤差來源捕捉與追蹤、環流型聚類降維等技術,對不同季節、環流、地形條件下天氣系統的精細化診斷分析提供支撐;面向數值模式的歷史、實時、零場和預報的天氣學檢驗評估,進一步實現從海量模式預報數據中對暴雨(雪)、強對流、颱風、霧霾等災害性天氣的概念模型構建、預報關鍵特徵、結構演變等信息的獲取。
  「MetDig目前還處於起步階段,在運行速率、對歷史過程分析的支撐、交互性和通用性的平衡規劃、圖形表達效果等方面還需進一步改進,我們期待通過用戶的應用反饋來不斷完善它,通過開放的交流和努力,MetDig 工具箱能夠成為一個包羅萬象的天氣診斷分析利器。」宮宇說。

(來源:《中國氣象報》2020 年3月16日三版 責任編輯:王美麗)


  

相關焦點

  • dig的意思是挖掘,dig deep是什麼意思呢?
    dig作為挖掘的意思很常見,除了這個常見的意思外,還有其它意思。今天我們就一起來看一下dig的用法。首先,dig可以做動詞,意思是挖掘、探究、刺、喜歡等。這句話中的dug是dig的過去式,意思是挖掘。2、I'll dig some potatoes for lunch.我要挖點土豆作午餐。這句話中的dig意思是挖出、挖到。3、I dug around in my bag for a pen.我在包裡到處翻找筆。這句話中的dug是dig的過去式,意思是尋找、搜尋。
  • Python趣味打怪:60秒學會一個例子,147段代碼助你從入門到大師
    不要害怕學習的過程枯燥無味,這裡有程式設計師jackzhenguo打造的一份中文Python「糖果包」:147個代碼小樣,60秒一口,營養又好玩,從Python基礎到機器學習盡皆囊括。>例子是有趣的例子,教程也是正經教程,學習路徑清晰、系統,先一起來看看完整目錄:學習路徑施工完成:1、Python基礎2、Python字符串和正則化3、Python文件4、Python日期5、Python利器6、Python畫圖7、Python實戰施工中:Python基礎算法
  • Python趣味打怪:147段簡單代碼完成從入門到大師
    不要害怕學習的過程枯燥無味,這裡有程式設計師jackzhenguo打造的一份中文Python「糖果包」:147個代碼小樣,60秒一口,營養又好玩,從Python基礎到機器學習盡皆囊括。實戰施工中:Python基礎算法python 機器學習,包括機器學習的基礎概念和十大核心算法以及Sklearn和Kaggle實戰的小例子PyQt製作GUIFlask前端開發Python數據分析:NumPy, Pandas, Matplotlib
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    總目錄 零基礎全能篇(4套課程) 實用編程技巧進價(1套課程) 數據分析與挖掘(8套課程) 辦公自動化(3套課程) 機器學習與人工智慧(7套課程) 開發實戰篇(4套課程) 量化投資(2套課程) 網絡爬蟲(6套課程) 資料庫操作(1套課程) python
  • 你知道dig in是什麼意思嗎?
    在句話中的dig in的意思是開始吃吧。There is nothing we can do except dig in and wait.我們除了耐心等待別無他法。這句話中的dig in意思是耐心等待、忍耐、忍受。The manure should be well dug in.肥料應均勻地混入土壤。
  • 使用Python中的線性回歸通過語音診斷帕金森氏病
    本文,我們將創建一個簡單的python機器學習算法,以便能夠通過聲音來診斷該人是否為患者。我們將使用一組(健康者和帕金森病患者)音頻文件庫,通過對音頻進行一些測量來構建我們的機器學習數據集。最後,我們將構建一個python庫,這個庫可以輕鬆集成到其他應用程式中。數據集首先,我們需要將音頻文件轉換成包含音頻測量值以及患者是否健康標誌的表格。我們將要使用的音頻文件(zenodo.org/record/2867216#.Xp4kVsgzaUl )。
  • 「python學習手冊-筆記」003.數值類型
    雙精度浮點數相關信息In [3]: sys.float_infoOut[3]: sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig
  • 一元線性回歸分析python - CSDN
    python多重線性回歸分析多重線性回歸分析定義多重線性回歸模型:MulitipleLinear Regression多元線性回歸模型:Multivariate Linear Regression數據準備#多重線性回歸#數據準備import pandas as pddf=pd.read_csv('e:/python/out/corr.csv',encoding='utf8')
  • 學習Python對辦公真的有用嗎?用經驗告訴你答案
    那麼,這些賣python課程的,是如何販賣焦慮的呢?他們會在廣告文章或者視頻中突出這麼一點:同事下班比我早,就是因為用了python辦公;面對海量數據和文檔要整理,我卻無能為力,但是用了python便可以快速搞定;學習一種程式語言,可以讓自己的職業發展更加有力。
  • 把英語學成英語:「人肉」( dig him up)
    把英語學成英語:人肉搜索(Let's dig him up)當你把英語dox僅僅學成中文「人肉搜索」而「懂得」dox是什麼意思時,你的英語學習是「不幸的」,因為你所有有關「人肉搜索」的英語表達就僅僅局限於運用dox這個英語詞彙上。
  • 自媒體利器!5分鐘學會Python影視頻轉GIF動態圖秘笈
    本文,隆重推出Python視頻製作利器,MoviePy。視頻片段以下是您可能想要在Python中編輯視頻的幾個原因:您有許多視頻要處理或以複雜的方式編排。你想從另一個python庫生成的圖像創建動畫(Matplotlib,Mayavi,Gizeh,scikit-images ......)
  • linux的centos系統中,dig命令的安裝和使用詳解
    說到dig命令,在linux系統下,其實nslookup指令和dig指令的功能是相同的,在使用上,只不過要因人而異,使用習慣上的不同而選擇順手的指令即可,也不必糾結那個好壞,只要能解決問題就行了。我經常用dig指令來測試域名系統工作是否正常。
  • python的繪圖利器--海龜繪圖turtle
    作為你學習python的第一個程序,樹哥決定直接來一個實戰乾貨程序:利用海龜turtle來畫一個奧運五環。這樣就既可以理解庫的概念和使用,又可以理解程序的基本概念。安裝python的時候自帶的turtle庫被稱作標準庫,需要另外安裝的庫稱作第三方庫。也就是說,第三方庫必須先安裝,再import。第二條:p = turtle這條語句相當於把給turtle起了個比較短的名字叫做p,如果沒有這條語句的話,那麼下面的語句就變成:turtle.pensize(3)這條語句其實沒有什麼實際意義,就是可以讓下面的語句簡單一些而已。
  • 用R也可以跑Python了
    如果你主要從事數據分析、統計建模和可視化,R大概是你的不二之選。但如果你還想來搞點深度學習,整個自然語言處理,那你可還真得用Python。如果你處於交叉領域,很可能就需要兩種語言切換。通過安裝包,你現在可以在R上運行Python的安裝包和函數了~今天文摘菌就來教教你咋用這個reticulate包。
  • 數據分析從業者必看,10 個加速 python 數據分析的簡單的小技巧
    其中,有些可能是相當有名的,有些可能是新的,但我相信下次您從事數據分析項目時,它們會非常有用。1.Profiling the pandas dataframeProfiling 是一個幫助我們理解數據的程序,而 Pandas Profiling 正是實現這一點的一個 python 包。
  • 人生苦短,我用Python,那麼問題來了,普通人要學python嗎?
    話說在金融和IT行當混跡了多年,python一直是被我隨手拿來當個小工具用用,有時候偷懶用python弄個excel自動化整理工具,有時候拿來上各種網站爬蟲搜集點信息,有時候也會拿來寫點量化小工具。那麼到底什麼是python?
  • Python神器:找不到模塊怎麼辦?pip安裝器一鍵全搞定
    一個錯誤從上圖中可以看到運行編寫的python程序時,出現了ModuleNotFoundError的提示,意思python解釋器找不到名為pandas的模塊/庫 !pip安裝pandas模塊使用pip list檢測python解釋器中是否成功安裝了pandas庫:
  • 用樹莓派製作一朵預報天氣的雲
    今天分享一朵預報天氣的雲,通過顏色變化來告知天氣情況。雲朵使用樹莓派Zero W製作,連接到 Yahoo Weather API 獲取天氣信息,通過變化的顏色告訴你天氣情況。/jgarff/rpi_ws281x.gitcd rpi_ws281xscons接下來cd pythonsudo python setup.py install現在,所需的庫都已安裝完畢
  • python一元線性回歸分析專題及常見問題 - CSDN
    python多重線性回歸分析多重線性回歸分析定義多重線性回歸模型:MulitipleLinear Regression多元線性回歸模型:Multivariate Linear Regression數據準備#多重線性回歸#數據準備import pandas as pddf=pd.read_csv('e:/python/out/corr.csv',encoding='utf8')
  • 「dig oneself into a hole」別理解成「給自己挖了個洞」
    大家好,歡迎來的餅哥英語的頻道,今天我們分享一個非常有用且地道的表達——dig yourself into a hole, 這個短語的含義不是指「給自己挖了個洞」,其正確的含義是:dig oneself into a hole 讓自己陷入困境,讓自己處於不利位置Boy