1. 程式人生 > >python讀取nc檔案(上)安裝包教程

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,可以看到如下介面:

figure 1

左邊可以用來寫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)資料的程式碼。