【Python实例】netCDF数据介绍及处理

netCDF数据处理

  • netCDF数据介绍
  • [1 netCDF数据结构](#1 netCDF数据结构)
    • [1.1 维度(Dimensions)](#1.1 维度(Dimensions))
    • [1.2 变量(Variables)](#1.2 变量(Variables))
    • [1.3 坐标变量(Coordinate Variables)](#1.3 坐标变量(Coordinate Variables))
    • [1.4 属性(Attributes)](#1.4 属性(Attributes))
  • [2 netCDF数据处理](#2 netCDF数据处理)
  • 参考

netCDF数据介绍

NetCDF(network Common Data Form)网络通用数据格式是由美国大学大气研究协会(University Corporation for Atmospheric Research,UCAR)的Unidata项目科学家针对科学数据的特点开发的,是一种面向数组型并适于网络的数据的描述和编码标准。

NetCDF官方介绍

netcdf4-python官方文档

1 netCDF数据结构

netCDF存储为包含两个部分的单个文档:

  • 文件头,包含维度(dimensions), 属性(attributes)和变量(variables)的所有信息,但不包含变量数据(variable data)
  • 数据部分,由固定大小数据(fixed-size data,存储有限维度变量的数据)和可变大小数据(variable-size data,存储具有无限维度变量的数据

1.1 维度(Dimensions)

netCDF的维度具有名称和长度,维度的长度可以为任意正整数,只是在经典的netCDF数据集中只有1个维度可以具有无限长度,而在netCDF4中可以使用任意数量的无限维。这样的维度称为无限维度或者记录维度,具有无限维度的变量可以沿该维度增长至任意长度。无限维度索引就像传统面向记录的文件的记录编号。

netCDF经典数据集最多可以具有一个无限维度(不是必要的)。如果一个变量具有无限维度,这个维度必须是最重要的。因此任何无限维度都必须是CDL形状中的第一个维度和相应C数组声明中的第一个维度。而在netCDF4数据集中可以有多个无限维度,并且在变量维度列表中的顺序没有限制。要沿无限维度增长变量,请使用任何netCDF写入数据写入函数写入数据,并将无限维度的索引指定为所需的记录编号,netCDF库将写入所需的记录数量(使用填充值填充任何干预记录,除非关闭该功能)。如纬度,经度,高度和时间,前三个分配固定的长度,时间赋予UNLIMITED,这意味着它是无限的维度。

1.2 变量(Variables)

变量用于将大量数据存储在netCDF数据集中,变量表示一组具有相同类型的值。标量被当作0维数据,一个变量具有名称、数据类型和形状,形状有创建变量时指定的维度列表描述。变量还可能具有关联的属性,这些属性可以在创建变量后添加、删除或更改。

1.3 坐标变量(Coordinate Variables)

变量与维度同名是合法的,这些变量对于netCDF库没有特殊意义,但是有一个约定,就是使用此库的软件应该应以特殊方式处理此类变量。与维度同名的变量称为坐标变量,它通常定义为该维度对应的物理坐标。

1.4 属性(Attributes)

NetCDF 属性用于存储有关数据的数据(辅助数据或元数据),在许多方面类似于存储在传统数据库系统中的数据字典和架构中的信息。大多数属性提供有关特定变量的信息。属性比变量或维度更具动态性;它们可以被删除,并在创建后更改其类型、长度和值,而 netCDF 接口不提供删除变量或更改其类型或形状的方法。

2 netCDF数据处理

netCDF 文档有五种类型(NETCDF3_CLASSIC、NETCDF3_64BIT_OFFSET、NETCDF3_64BIT_DATA、NETCDF4_CLASSIC 和 NETCDF4)。

方法1:利用netCDF4打开nc格式数据

2.1.1 安装netcdf4库

clike 复制代码
pip install netCDF4
# 或者使用conda
conda install -c conda-forge netCDF

基于pip安装netcdf4库界面如下:

2.1.2 创建/打开/关闭netCDF文件

要从 python 创建 netCDF 文档,只需调用 Dataset 构造函数即可。这也是用于打开现有 netCDF 文件的方法。

确保资源能够释放,在文件的读写时使用with语句:

clike 复制代码
import netCDF4 as nc

with nc.Dataset("./demo.nc", "a") as dataset:
    print(dataset.data_model)

2.1.2 netCDF创建示例

方法2:利用xarray打开nc格式数据

存储 xarray 数据结构的推荐方法是netCDF,它是一种二进制文件格式,适用于起源于地球科学的自描述数据集。Xarray是基于netCDF数据模型,所以磁盘上的netCDF文件直接对应Dataset对象(更准确的说,netCDF文件中的一个组直接对应一个Dataset对象,详见Groups)。

参考

相关推荐
zbdx不知名菜鸡17 分钟前
深度学习参数管理
python·深度学习·机器学习
繁星璀璨G25 分钟前
C++11标准模板(STL)- 常用数学函数 - 计算e的给定幂 (ex)(std::exp, std::expf, std::expl)
开发语言·c++·算法·stl·计算e的给定幂
阑梦清川1 小时前
C++初阶-list用法总结
开发语言·c++·stl·list
音程1 小时前
一次使用threading.Thread来实现Pytorch多个模型并发运行的失败案例
人工智能·pytorch·python
wheeldown1 小时前
【数据结构&&C语言】【入门】【首次万字详细解析】入门阶段数据结构可能用到的C语言知识,一章让你看懂数据结构!!!!!!!
c语言·开发语言·数据结构
凯子坚持 c1 小时前
【机器学习】--- 决策树与随机森林
python·决策树·随机森林·机器学习
x-cmd1 小时前
x-cmd pkg | bat: cat 命令现代化替代品,终端用户必备工具
运维·python·rust·终端·命令行·bat·cat
计算机编程-吉哥1 小时前
计算机毕业设计 基于Python的校园个人闲置物品换购平台 闲置物品交易平台 Python+Django+Vue 前后端分离 附源码 讲解 文档
python·django·毕业设计·毕业论文·计算机毕业设计·计算机毕业设计选题·闲置物品交易
爱技术的小伙子1 小时前
【30天玩转python】使用第三方库(如 NumPy、Pandas)
python·numpy·pandas
小麦黑客笔记1 小时前
2024年三个月自学手册 网络安全(黑客技术)
开发语言·网络·安全·web安全·网络安全