我非常喜欢NetCDF用于连续/数组数据(即栅格)。NetCDF的优点是:
- NetCDF是自我描述的(即,数据定义可通过文件头获得),因此您无需提供辅助元数据文件
- NetCDF4允许存储n维数据(使用磁盘上的HDF5数据格式,这是一个优点,因为它允许文件的大小与您的OS一样大)。这带有合理的压缩和对数据的快速访问。请注意,NetCDF3不支持n维数据,并且在32位系统上的文件大小限制约为2GB。
- NetCDF是一种开放格式,因此通过通用库访问数据通常也不是问题。例如,在python中,从scipy足够简单以读取数据片段:
from scipy.io import netcdf
f = netcdf.netcdf_file('source.nc')
print(nc.dimensions) #take a look at the dimensions of the data
print(nc.variables) #A dictionary containing all the variables
nc.variables["some_data"].dimensions #The dimensions this variable is in, e.g. lat, lon
out_array = nc.variables["some_data"].data
f.close() #and we're done
我可以看到的NetCDF4的唯一缺点是对标准GIS软件包(如ArcGIS和QGIS)的支持不大(尽管我非常希望对此进行纠正!)。
编辑其他一些支持NetCDF的软件包
一些支持NetCDF的标准编程语言(尽管公平地说,任何可以读取HDF的东西都可以读取NetCDF4):
对于数学和统计用户,您具有:
特别是在GIS中:
如果您想快速查看NetCDF文件,可以使用NASA的跨平台Panoply。如果您对更多感兴趣,UCAR Unidata拥有软件列表。