NetCDF(Network Common Data Form)在气象数据中比较常见,是一种多维数据结构,结构形
式可以参考下图。简单来讲,数据切片可以理解为切面包,垂直于时间轴切,每片面包代表某个时
间点全球(或区域范围)相应变量(气温或是降水等)空间分布情况。
Python读取.nc数据有两种库均可实现数据提取,分别是xarray以及netCDF4(专门读取nc数据的库)。
因个人处理数据习惯,本文只介绍xarray
## 导入库
import xarray as xr
## 读取数据
# 法一
ds = xr.open_dataarray("/mnt/e/Research_life/DATA/SIF/CSIF/OCO2.SIF.clear.daily.2000.nc")
# 法二
ds = xr.open_dataset("/mnt/e/Research_life/DATA/SIF/CSIF/OCO2.SIF.clear.daily.2000.nc").clear_daily_sif
## 根据所需经纬度范围提取数据(数据切片的三个维度分别为[时间,维度,经度])
ds.loc[:,4.25:52.25,70.12:130.24]
注意ds进行经纬度索引的时候不要加引号,否则会导致索引不准确
仔细观察即可发现open_dataarray读取数据的方式并不需要在后面指明变量名,该方法在.nc数据
中只存在一个变量的情况下使用比较方便。
读取数据之后可以查看一下,数据的结构顺序按照以下图片进行,[时间,维度,经度]
doy(day of year)是一种特殊时间结构,可能不能算作为时间,一般由数字构成,例如
1,5,9,13...,表示每隔四天有一数值。若后面要使用月值进行分析时,需要进行月平均,后面
会继续发文章讲如何处理。
读取数据后一般都需画个草图大致看看数据空间分布情况
## 任取一时间点画图
ds[121,::].plot()
参考文献: