前言
这两天帮一个朋友处理了些 nc 数据,本以为很简单的事情,没想到里面涉及到了很多的细节和坑,无论是“知难行易”还是“知易行难”都不能充分的说明问题,还是“知行合一”来的更靠谱些,既要知道理论又要知道如何实现,于是经过不太充分的研究后总结成此文,以记录如何使用 python 处理 nc 数据。
一、nc 数据介绍
既然 nc 可以用来一系列的数组,所以经常被用来存储科学观测数据,最好还是长时间序列的。
试想一下一个科学家每隔一分钟采集一次实验数据并存储了下来,如果不用这种格式存储,时间长了可能就需要创建一系列的 csv 或者 txt 等,而采用 nc 一个文件就可以搞定,是不是很方便。
更方便的是如果这个科学实验与气象、水文、温度等地理信息稍微沾点边的,完全也可以用 nc 进行存储, GeoTiff 顶多能多存几个波段(此处波段可以认为是气象、水文等不同信号),而 nc 可以存储不同波段的长时间观测结果,是不是非常方便。
可以使用 gdal 查看数据信息,执行:
gdalinfo name.nc
即可得到如下信息:
Driver: netCDF/Network Common Data Format
Files: test.nc
Size is 512, 512
Coordinate System is `'
Subdatasets:
SUBDATASET_1_NAME=NETCDF:"test.nc":T2
SUBDATASET_1_DESC=[696x130x120] T2 (32-bit floating-point)
SUBDATASET_2_NAME=NETCDF:"test.nc":PSFC
SUBDATASET_2_DESC=[696x130x120] PSFC (32-bit floating-point)
SUBDATASET_3_NAME=NETCDF:"test.nc":Q2
SUBDATASET_3_DESC=[696x130x120] Q2 (32-bit floating-point)
SUBDATASET_4_NAME=NETCDF:&#