python讀取nc檔案(上)安裝包教程
Python是非常強大的工具,雖然在氣象領域應用還不普遍,但是隨著時代發展,Python的應用前途是光明的。Python豐富的模組(module)讓其可以做的事情非常多,包括處理各種格式的資料,其中就包括nc/HDF4/HDF5格式的資料。
安裝Anaconda
首先需要選擇一個Python版本進行安裝。Anaconda是Python的一個發行版本,適用於用來科學計算。在Anaconda裡,一些常見的模組,包括numpy、scipy和matplotlib都已經裝好了,可省去自己安裝的麻煩,因此對於做科學計算的人來說,使用Anaconda是非常方便的。
可以看到,Anaconda版本分為Python 2.7和Python 3.5。這兩個版本的Python有部分是不相容的,建議使用3.5的版本。在windows系統下,直接下載安裝包就可以安裝。安裝完成後,開啟Spyder IDE,可以看到如下介面:
左邊可以用來寫Python程式,右邊可以看到執行結果和變數的值,還是非常方便的。
安裝所需模組
雖然Anaconda已經自帶了很多模組(在Anaconda Prompt中輸入命令 conda list 可檢視已經裝好的模組),但是讀nc/HDF4/HDF5格式資料所需的模組是沒有的,因此需要自己安裝。在安裝模組之前,先更換一下Anaconda映象,因為在國內,Anaconda官方映象速度非常慢,這裡推薦清華大學TUNA映象源: https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ 。
Anaconda除了使用其自身的模組安裝工具conda外,也可以使用Python官方的模組安裝工具pip,這裡將pip映象源也更改一下,pip映象源推薦使用中科大的映象。
windows下,建立 C:\Users\username\pip\pip.ini 檔案,並將以下內容寫入pip.ini:
[global] timeout = 6000 index-url = http://pypi.mirrors.ustc.edu.cn/simple/ [install] trusted-host = pypi.mirrors.ustc.edu.cn
Linux下,建立~/.pip/pip.conf,同樣寫入以上內容。
完成以上更改後,可以安裝所需模組了,首先進行一下更新,在Anaconda Prompt中輸入命令:
conda update --all
安裝讀nc檔案所需的模組netCDF4和讀HDF5資料所需的h5py:
conda install netCDF4 conda install h5py
安裝讀HDF4所需的模組pyhdf略為有點麻煩,由於python官方不提供pyhdf模組,但幸好有非官方的可以下載。先到 這裡 下載對應版本的whl檔案,比如我的是64位系統,python版本為3.5,則下載 python_hdf4-0.9-cp35-none-win_amd64.whl .
然後在終端裡輸入:
pip install /path/of/python_hdf4-0.9-cp35-none-win_amd64.whl
這樣就完成了pyhdf模組的安裝。
Python程式碼
讀nc資料程式碼如下:
# -*- coding: utf-8 -*- from netCDF4 import Dataset a=Dataset('AMSR_E_L2A_BrightnessTemperatures_V12_200905080016_A.nc') print(a.variables.keys())
讀HDF4資料程式碼如下:
# -*- coding: utf-8 -*- from pyhdf import SD from pyhdf.HDF import * from pyhdf.VS import * fileName='AMSR_E_L2A_BrightnessTemperatures_V12_200905080016_A.hdf' hdf4Obj=SD.SD(fileName, SD.SDC.READ) print(hdf4Obj.datasets().keys()) open_file_for_reading_vdata = HDF(fileName, HC.READ).vstart() vdata = open_file_for_reading_vdata.vdatainfo() print(vdata)
其中包括讀Science Data (SD)和VData (VD)資料的程式碼。