前言
NetCDF全稱為network Common Data Format,中文譯法為“網絡通用數據格式”,它是由美國大學大氣研究協會的Unidata項目科學家針對科學數據的特點開發的,是一種面向數組型並適於網絡共享的數據描述和編碼標准。
NetCDF和zip、jpeg、bmp文件格式類似,都是一種文件格式的標准。NetCDF文件開始時目的是用於存儲氣象科學中的數據,現在已經成為許多數據采集軟件生成文件的格式。利用NetCDF可以對網絡數據進行高效地存儲、管理、獲取和分發等操作。由於其靈活性,能夠傳輸海量的面向陣列(array-oriented)數據,目前廣泛應用於大氣科學、水文、海洋學、環境模擬、地球物理等諸多領域。
結構形式包含維數、變量、屬性和數據四個子域,從數學上來說,netcdf存儲的數據就是一個多自變量的單值函數。用公式來說就是f(x,y,z,...)=value,函數的自變量x,y,z等在netcdf中叫做維(dimension)或坐標軸(axis),函數值value在netcdf中叫做變量(Variables)。而自變量和函數值在物理學上的一些性質,比如計量單位(量綱)、物理學名稱等等在netcdf中就叫屬性(Attributes)。
Python讀取NetCDF文件可以選擇安裝NetCDF4或者xarray工具包,這一小節主要學習了解NetCDF4為主。
安裝
NetCDF github地址: https://github.com/Unidata/netcdf4-python
NetCDF 指導文檔:https://www.unidata.ucar.edu/software/netcdf/docs/index.html
使用pip工具進行安裝
pip install netCDF4
Python讀取示例
nc_path = "./air.sfc.1997.nc"
# 讀入文件:使用netCDF4的Dataset方法即可讀入文件,讀入文件后直接輸出即可查看文件的結構。
nc = Dataset(nc_path)
print(nc)
# 查看文件的變量:
print(nc.variables.keys())
for x in nc.variables.keys():
print(x)
# 查看某個變量的信息:
print(nc.variables['air'])
# 查看某個變量的屬性:
print(nc.variables['air'].ncattrs())
# 讀取數據值
data = nc.variables['air'][:]
print(data)
可視化工具
Panoply軟件(不需安裝,提前配置JAVA SE即可)
下載地址:https://www.giss.nasa.gov/tools/panoply/
數據下載
NECP/NCAR再分析數據庫,ICOADS數據庫,包括氣溫、降雨、濕度、下行輻射、上行輻射等; 分辨率0.06°、0.25°、1.0°、2.5°等。