1. 導論#

PyAOS簡介#

PyAOS是一套Python的程式套件,按照PyAOS官方網站的定義,PyAOS是

Python libraries stack used by the AOS community. A group of programs that works in tandem to produce a result or achieve a common goal is often referred to as a software stack.

在大氣科學研究中,我們常用的程式邏輯就是

  • 讀取資料

  • 統計與分析

  • 模式模擬

  • 視覺化

Source: Grolemund and Wickham (2016), R For Data Science.

那PyAOS套件怎麼幫助我們完成以上的事情呢?我們先從PyAOS的核心套件(core libraries)認識起。下圖中,虛線框框中的Python套件就是PyAOS的核心,預設用來處理數值計算與簡單的統計的套件是Numpy,而用來處理比較複雜的科學、數學運算的則是Scipy (例如微積分等)。如果進行大量運算或大型資料處理,需要用到平行運算時,則預設使用Dask,Dask和Numpy和Scipy都有很好的整合。分析資料後,將資料視覺化的套件首選則是Matplotlib,而在大氣科學中常常需要用Cartopy繪製地圖以及調整圖的投影。

然而,以上的幾個套件雖然就可以幫助我們完成研究,用起來也彈性,但也因為功能較為基礎,簡單的工作可能就需要寫比較長的程式碼。為了讓這些工作可以簡化,Python社群就開發了高階的套件,雖然彈性可能沒那麼大,但是可以完成很多事情,讓科學家的研究工作變得更有效率。這些高階的PyAOS套件包含xarray、iris等。本次的工作坊會以xarray為學習的主軸。

xarray簡介#

xarray是由The Climate Corporation的科學家Stephan Hoyer、Alex Kleeman、Eugene Brevdo開發的工具,2014年以開放取用資源的方式釋出,2018年起由NumFOCUS贊助。這套工具專門為多維陣列的資料所設計,用以讀取netCDF資料、進行資料處理、範圍選取、統計運算和繪圖,並且把這些功能整合在一起,使得工作流程變得簡潔流暢。

因此,本文將按照讀檔、資料分析、視覺化三個步驟,以xarray函式庫為主要資料處理、統計計算和繪圖的核心,以氣候分析的角度介紹常使用的Python函式庫以及程式技巧,以建立資料分析流程。本文的目的不在建立一個嚴謹的xarray使用說明,而是從氣候分析的實例出發,說明xarray的用法,因此若需要函數或引數的相關細節,請參見xarray網頁

小提示: 如果對Python的基本指令還不熟悉 (e.g. 變數種類、變數定義、if分支結構、for迴圈、函數/副程式⋯⋯等),可以先上網站搜尋入門教學,再來學習本文的內容喔!(例如:一小時Python入門網頁,其實網路上資源非常多也容易讀)

引入函式庫#

在本文中,需要的函式庫有 numpyxarraymatplotlib……等,在空白的Python程式 (副檔名.py) 加入以下指令,就可以引入所需要的資源庫。例如:

import numpy as np
import xarray as xr 
from matplotlib import pyplot as plt