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

news2024/12/26 4:01:05

netCDF数据处理

  • netCDF数据介绍
  • 1 netCDF数据结构
    • 1.1 维度(Dimensions)
    • 1.2 变量(Variables)
    • 1.3 坐标变量(Coordinate Variables)
    • 1.4 属性(Attributes)
  • 2 netCDF数据处理
    • 方法1:利用netCDF4打开nc格式数据
      • 2.1.1 安装netcdf4库
      • 2.1.2 创建/打开/关闭netCDF文件
      • 2.1.2 netCDF创建示例
    • 方法2:利用xarray打开nc格式数据
  • 参考

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库

pip install netCDF4
# 或者使用conda
conda install -c conda-forge netCDF

基于pip安装netcdf4库界面如下:
在这里插入图片描述

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

要从 python 创建 netCDF 文档,只需调用 Dataset 构造函数即可。这也是用于打开现有 netCDF 文件的方法。
确保资源能够释放,在文件的读写时使用with语句:

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)。

参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1171371.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python基础入门例程33-NP33 乘法与幂运算(运算符)

最近的博文: Python基础入门例程32-NP32 牛牛的加减器(运算符)-CSDN博客 Python基础入门例程31-NP31 团队分组(列表)-CSDN博客 Python基础入门例程30-NP30 用列表实现队列(列表)-CSDN博客 目…

水经微图Web版从入门到精通

我们在《47GB水经微图从入门到精通视频教程》和《163M水经微图从入门到精通文档教程》中,为大家分享了水经微图PC版的教程。 这里,我们再为大家分享水经微图Web版的文档教程。 水经微图Web版教程 水经微图Web版的教程,主要包括基础名词、…

【日常记录】关于LinkedHashMap中key为数字字符串根据compareTo排序的问题

今天在修复Bug的时候,在项目中发现有这样一段代码(为了方便,下面用一个例子进行演示)。 项目中使用了LinkedHashMap key为Long类型,value为String类型。 并且,LinkedHashMap 使用Stream流 对key进行升序的排…

Java web(六):FilterListenerAJAX

文章目录 一、Filter1.1 基本介绍1.2 过滤器的执行流程1.3 拦截路径配置1.4 过滤器链1.5 案例 二、Listener三、AJAX3.1 快速入门3.2 Axios异步框架 四、 JSON4.1 JSON基础语法4.2 Fastjson 五、 案例JSONAxiosServlet Java web的三大组件:Servlet、Filter、Listene…

2023最新版本 FreeRTOS教程 -5-切断驱动和应用的直接关联与多输入的编码思路

在多输入的场景方便添加新的设备如图 总体的思路框图 函数讲解(图片太抽象通过这个函数理解) 写入自己的队列 统一数据(建议读取自己的队列 再统一到应用的队列 这里图方便省略了) 通过统一的数据做出执行操作 验证 队列为空直接阻塞 通过三个按…

AST注入-从原型链污染到RCE

文章目录 概念漏洞Handlebarspug 例题 [湖湘杯 2021 final]vote 概念 什么是AST注入 在NodeJS中,AST经常被在JS中使用,作为template engines(引擎模版)和typescript等。对于引擎模版,结构如下图所示。 如果在JS应用中存在原型污染漏洞&…

Linux网络配置、ping不通外网解决办法

有很多说服务当中有五项才是对的,也不一定,我这里也只有四项,所以在尝试一些其他办法后再决定重新安装vmware吧,最开始我也ping不成功,查看也是四项,重新装了一次还是四项,找了一些办法&#xf…

芯片测试概述

芯片为什么要做测试 在芯片设计到制作的过程中 不可避免会出现缺陷 芯片测试就是为了发现产生缺陷的芯片 如果不加入测试环节 将有缺陷的芯片卖给顾客 受到的损失是测试的花费的数倍 芯片测试的作用 1. 保证芯片的质量 2. 缩短芯片上市时间 3. 提高公司利润 芯片的测试类型 …

SINAMICS S120变频器电流转矩功率限幅功能

转矩限幅是SINAMICS S120变频器中一个常用的功能,可以用来限制电机轴上的输出转矩,以达到所希望的控制目标,也可以用来保证机械设备的安全。为了实现转矩的限幅有3种实现方式:电流限幅、转矩限幅、功率限幅。 电流限幅中的电流值…

【Java】汉诺塔

汉诺塔 汉诺塔(Tower of Hanoi)(河内塔):把圆盘从下面开始按大小顺序重新摆放到另一根柱子上,并且小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 汉诺塔规则 disk表示圆盘数一次只…

这5个老年人技巧,让你的微信操作起来更方便

目录 一、便捷登录验证 二、快速开启关怀模式 三、语音与消息撤回 四、快速打开名片二维码 五、语音收藏 六、总结 今天小编给大家分享5个老年人技巧,一起来看看吧!说不定也能让你的微信操作起来更方便呢! 一、便捷登录验证 在微信中&a…

GAMP源码阅读:PPP中的模型改正:对流层延迟、电离层延迟

原始 Markdown文档、Visio流程图、XMind思维导图见:https://github.com/LiZhengXiao99/Navigation-Learning 文章目录 一、对流层延迟改正1、原理2、model_trop():对流层改正入口函数3、tropmodel():Saastamoinen 模型改正计算延迟1. Saastam…

redis数据库缓存服务器

redis比mysql访问数据快 非关系型数据库以键值对的方式存储数据 作用:加快访问速度,缓解数据库压力 redis最新版本7 特点 丰富的数据结构 list,set,hash等数据结构的存储 支持持久化 支持事务 “一个完整的动作,要么全部执行&#xff0…

模拟与高精度

文章目录 模拟[NOIP2003 普及组] 乒乓球[NOIP2015 普及组] 扫雷游戏[NOIP2016 提高组] 玩具谜题 高精度P1601 AB Problem(高精)P1303 A*B Problem[NOIP1998 普及组] 阶乘之和 #mermaid-svg-LVtcjL47i4zwUnwI {font-family:"trebuchet ms",verd…

面试梳理-Redis01

目录 开场白-追命3连 使用场景 01缓存穿透场景与方案 02布隆过滤器 03缓存击穿场景与方案 04缓存雪崩场景与方案 开场白-追命3连 看你项目中有说用到Redis,都是哪些场景使用了Redis呢? 如果发生了缓存穿透、击穿、雪崩如何应对呢?缓存…

程序员笔记本电脑选 windows 还是 MAC

计算机选择是每个进入 IT 行业同学的第一个重要选择,那么你是怎么选择的呢? 选择操作系统(Windows还是macOS)取决于程序员的需求、偏好和工作流程。每个操作系统都有其优点和缺点,下面将分别讨论它们,以帮助…

一文搞懂设计模式之七大原则

大家好,我是晴天。在接下来的一个多月里,我将跟大家一起学习设计模式的一些基础知识和基本应用。不要问我为什么突然想起来写一个设计模式系列的文章,问就是:爱过。。。 问题引出 作为程序猿的我们,隔三岔五的就会因为…

上班族必备:制作电子宣传册的网站

​对于上班族来说,制作电子宣传册是一项非常重要的技能。因为宣传册是展示公司形象、产品特点、服务优势的重要工具,也是与客户沟通交流的重要手段。那么,如何制作一份高质量的电子宣传册呢?今天就为大家推荐几个制作电子宣传册的…

hackergame2023菜菜WP

文章目录 总结Hackergame2023更深更暗组委会模拟器猫咪小测标题HTTP集邮册Docker for everyone惜字如金 2.0Git? Git!高频率星球低带宽星球小型大语言模型星球旅行日记3.0JSON ⊂ YAML? 总结 最近看到科大在举办CTF比赛,刚好我学校也有可以参加,就玩了…

SQL左连接实战案例

要求:用表df1和表df2的数据,得到df3 一、创建表 CREATE TABLE df1 (姓名 varchar(255) DEFAULT NULL,年龄 int DEFAULT NULL,部门 varchar(255) DEFAULT NULL,id int DEFAULT NULL );CREATE TABLE df2 (部门 varchar(255) DEFAULT NULL,年龄 int DEFAU…