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

2021-01-10 中國氣象局

中國氣象報記者 張格苗

 

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


  

相關焦點

  • python字符的編碼與解碼
    既然計算機是通過二進位的數字來識別不同字符的,那不同的字符該用多少個1和0,又該以什麼樣的順序來排列呢?為什麼要字符編碼這裡為了規範,就出現了ASCII編碼。下面就來通過python中自帶的函數一起來驗證一下。理解:ord() 函數:以一個字符串作為參數,返回對應的 ASCII 數值。chr()函數:用一個整數作參數,返回一個對應的字符。可以二進位,十進位,十六進位。不理解進位數的可以自己去學習一下,或者利用python自帶的進位轉換函數去試一下。
  • 35行代碼利用python生成字符畫,非常適合初學者練習,附源碼!
    35行代碼利用python生成字符畫,非常適合初學者練習,附源碼! python字符畫生成的原理及其簡單,一句話概括就是----將圖片像素點用不同字符代替,從而將像素組成的圖片轉變成用字符組成的字符畫。為了儘可能的使得字符畫展示效果與圖片相同。
  • 「測一測你的性格」小案例學習python字符串操作
    今天樹哥也嘗試用python做一個「性格測試小程序」,用這個案例來說明一下python的日曆和字符串操作的一些用法。一、案例分析案例題目:讓用戶輸入出生年月日,返回這是這一年的第幾周第幾天,並輸出當周的日曆。給出用戶的屬相給出用戶的星座,並告知用戶的性格。
  • Python3.8.1的安裝及實現2.7.*和3.8.*版本的共存!
    軟體下載地址:https://www.python.org/downloads/選擇Python3.8.1後面的Download.點進去後的下一頁的下方,找到這個選擇倒數第二個,我是下載到桌面,雙擊安裝,選擇Add
  • Github超10000星:100天從Python新手到大師
    標籤承載頁面內容用CSS渲染頁面用JavaScript處理交互式行為jQuery入門和提高Vue.js入門Element的使用Bootstrap的使用Day31~35 - 玩轉Linux作業系統作業系統發展史和Linux概述Linux基礎命令Linux中的實用程序Linux的文件系統Vim編輯器的應用環境變量和Shell編程軟體的安裝和服務的配置網絡訪問和管理其他相關內容
  • 浩歐博:打造過敏和自免體外診斷細分領域國內領導企業
    未來,公司將通過不斷豐富完善檢測產品組合、進一步深化納米磁微粒化學發光等技術在過敏和自免診斷領域的應用,在產業鏈上下遊進一步拓展,逐步實現原材料的自主供應,在國際國內搭建完善的營銷網絡,將自身打造成過敏和自免診斷細分領域的國內領導企業。 我們希望通過本次交流活動,圓滿解答投資者朋友所關心的問題,讓大家更加了解和認同浩歐博。
  • 墨跡天氣深耕天氣+場景服務,打造生活出行新體驗
    在旅遊出行前,查看一下天氣預報APP是很多用戶的習慣,而隨著生活品質的升級,人們對天氣APP的需求開始有了新的變化,他們希望在查詢天氣的同時,還能夠深入到更多生活化場景中,獲得更全面的生活出行服務。作為國內領先的氣象服務平臺,墨跡天氣藉助大數據、人工智慧、機器深度學習等先進技術,深耕天氣+場景服務,持續提升自身氣象服務能力,在提高預報精準度的同時,衍生出更多基於天氣的場景化服務功能,為用戶打造生活出行新體驗。
  • 德國學者用機器學習「癌症指紋」診斷腦瘤,人為誤診率12%
    德國學者用機器學習「癌症指紋」診斷腦瘤,人為誤診率12% 澎湃新聞記者 賀梨萍 2018-03-16 16:03 來源:澎湃新聞
  • "挖苦"用英語怎麼說?
    「挖苦」,意思是用刻薄的話譏笑、諷刺別人,可以翻譯為「speak ironically/sarcastically」。還可以用短語「take a dig at」表示,意思是「intentionally insult, offend, demean or be derogatory towards another person」,dig作名詞有「挖苦;嘲諷」的意思。例句:我這門語言講得不錯,但她還是忍不住挖苦我的口音。
  • python編程30個常用技巧
    打開APP python編程30個常用技巧 深度學習這件小事 發表於 2020-12-24 15:07:51 1、冒泡排序
  • SSDfans_UFS 3.0協議分析診斷測試技術分享
    SSD Fans通過Saniffer(www.saniffer.com) 公司本周六將就UFS 3.0協議分析和診斷進行技術分享 本次UFS 3.0協議診斷和分析不僅適合從事UFS3.0的固件開發/測試學習,也適合UFS3.0
  • 用六壬測明日天氣會下雨嗎?
    最近天氣晴好,筆者22日晚上讀書忽然心動想測一下明天天氣看看會下雨嗎?所得六壬課如下:分析:測下雨先查水神,幹上登明亥水發用,似有雨之象,能不能下成還要繼續分析,亥水坐日幹戊土被克,上乘勾陳辰土,所謂被夾克
  • Python編程題:兩個日期間的天數統計(附代碼)
    編程題一:計算兩個日期之間的天數題目如下:題目一解題思路:將兩個日期格式化成time模塊中的標準時間結構struct_time,缺少值用0由於python中time模塊的很多函數都是可以直接計算出指定時間的時間戳(秒數),所以統計兩個日期間的總天數就非常方便了!
  • python由圓半徑計算圓的周長和面積
    計算圓的周長的公式為:l=2πr,r為半徑計算圓的面積的公式為:S=πrpython計算圓的周長和面積import mathradius=input("radius of cricle:")l=2*math.pi*radiusS=math.pi*radius*radiusprint ( "
  • 更快、更強的Python實現:Pyston v2.0發布
    Pyston 的試用較為簡單,安裝軟體包,將 python3 替換成 pyston3,然後使用 pip-pyston3 install 重新安裝依賴項。在已有自動構建設置時,這一改變只需幾行即可完成。Pyston 團隊表示,計劃未來將代碼開源,但由於編譯器項目成本高昂且沒有贊助,因此目前該項目仍是閉源的,但 Pyston v1.0 的原始碼是開放的。
  • 穿搭顯高「3大利器」,解決矮個子煩惱,輕鬆擁有165既視感
    因為個子矮,用這個「三大利器」,有身高165的既視感,解決個子矮的煩惱,腿粗的女性看起來更瘦,請早點來看,是哪三個利器?1、尖頭鞋衣服的搭配非常重要,只要選擇適合自己的衣服,就能看到自己的魅力,再好的衣服也需要漂亮的鞋子,個子矮的女孩,高跟鞋是唯一的選擇嗎?
  • 出伏又遇晴雨「混搭」天氣 墨跡天氣打造健康生活指南
    8月末,長達40天的三伏終於宣告結束,很多人本以為可以享受早秋的涼爽天氣,但天氣又再一次「不走尋常路」——全國不少地區都出現晴熱高溫與颱風暴雨「混搭」天氣,給人們的生活、出行甚至是健康帶來一系列影響。想要更安全、自如地出行,精準的天氣預報以及與天氣相關的生活服務,顯得尤為重要。
  • 產前診斷中心:以專業診斷守護寶寶健康
    作為惠州第一家獲得產前診斷資質的專科醫院、全市唯一的新生兒疾病篩查中心,市第二婦幼保健院產前診斷中心已開展多項產前篩查及產前診斷技術,包括唐氏綜合症和神經管缺陷的篩查、地中海貧血的篩查、無創DNA篩查和介入性產前診斷檢查胎兒染色體、胎兒地中海貧血基因檢查、耳聾等遺傳病相關基因檢查,對孕婦進行詳細專業的產前診斷,守護寶寶的健康和安全。
  • 如何診斷?
    如何診斷?下巴下面淋巴結腫大原因是什麼?淋巴結腫大早期與皮膚和周圍組織無粘連,病情加重可繼續腫大。但不超過核桃大小,以後可粘連融合成片,發生變化,破潰,流出黃棕色膿液或豆腐渣樣物質。下巴淋巴結腫大的原因有:1、組織細胞性增生腫大,下巴淋巴結內有大量組織細胞增生,可有肉芽腫形成,此外淋巴結內有大量細胞聚集時亦可引起下巴淋巴結腫大。