python netCDF4

NetCDF简介

NetCDF 即 network Common Data Form(网络通用数据格式),是一种面向数组型并适于网络共享的数据的描述和编码标准。文件的后缀是 .nc。nc 在气象领域应用很广,因为它可以存储不同波段的长时间观测结果。

NetCDF 文件中的数据以数组形式存储。例如,某个位置处随时间变化的温度以一维数组的形式存储。某个区域内在指定时间的温度以二维数组的形式存储。来源:【知乎Assimov】。

netCDF4 是一个专门处理 nc数据的 python库。

netCDF4 安装

在安装 netCDF4 之前,需要先安装 numpy 和 cftime,不然大概率会报错。numpy 版本必须大于1.9cftime的版本最好与netCDF4一致,比如我安装了cftime 1.5.2 和 netCDF4 1.5.8。

netCDF4 使用

# nc_path : nc文件路径。示例为2003-2021年OBS4MIPS全球甲烷数据。
nc_path = "200301_202112-C3S-L3_GHG-GHG_PRODUCTS-MERGED-MERGED-OBS4MIPS-MERGED-v4.4.nc"
ds = Dataset(nc_path)
print(ds)

"""
输出信息:
<class 'netCDF4._netCDF4.Dataset'>
root group (NETCDF3_CLASSIC data model, file format NETCDF3):
    activity_id: obs4MIPs
    comment: Since long time, climate modellers use ensemble approaches to calculate the
ensemble median and to estimate uncertainties of climate projections where
no ground-truth is known. Following this idea, the ensemble median
algorithm EMMA composes level 2 data of independently developed retrieval
algorithms. EMMA determines in 10x10 degree grid boxes monthly averages and
selects level 2 data of the median algorithm.
    contact: Maximilian Reuter (maximilian.reuter@iup.physik.uni-bremen.de)
    Conventions: CF-1.7 ODS-2.1
    creation_date: 2022-07-13T12:28:13Z
    data_specs_version: 2.1.0
    frequency: mon
    further_info_url: https://climate.copernicus.eu
    grid: L2 data gridded by arithmetic averaging
    grid_label: gn
    institution: Institute of Environmental Physics, University of Bremen
    institute_id: IUP
    license: GHG-CCI Licence: 
As condition of using this product, you agree
... to inform us prior to any publication where the data products are planned to be used. Please do this by sending us the
manuscript for review before submission for publication to ensure that our data are accurately represented.
... to offer us co-authorship for any planned peer-reviewed publication based on our data products. (For non peer-reviewed
publications it is sufficient if you add an appropriate acknowledgement.) In these instances, please contact the project management
(Michael Buchwitz (michael.buchwitz@iup.physik.uni-bremen.de) or Maximilian Reuter (maximilian.reuter@iup.physik.uni-bremen.de))
who will then forward the information to the respective retrieval teams.
    nominal_resolution: 5.00x5.00 degree
    product: observations
    realm: atmos
    references: M. Reuter, H. Bösch, H. Bovensmann, A. Bril, M. Buchwitz, A. Butz,
J. P. Burrows, C. W. ODell, S. Guerlet, O. Hasekamp, J. Heymann, N. Kikuchi,
S. Oshchepkov, R. Parker, S. Pfeifer, O. Schneising, T. Yokota, and
Y. Yoshida: A joint effort to deliver satellite retrieved atmospheric CH4
concentrations for surface flux inversions: the ensemble median algorithm
EMMA. Atmospheric Chemistry and Physics, 13, 1771-1780, 2013
    region: global
    source: C3S XCH4 v4.4 (2022)
    source_id: C3S-XCH4-v4-4
    source_label: C3S-XCH4
    source_type: satellite_retrieval
    source_version_number: v4.4
    title: C3S XCH4 v4.4
    tracking_id: 2dbf9794-a7c5-45ea-be6c-ea140fe809ec
    variable_id: xch4
    variant_info: Best Estimate
    variant_label: BE
    dimensions(sizes): time(228), bnds(2), lat(36), lon(72), pressure(10)
    variables(dimensions): float64 time(time), float64 time_bnds(time, bnds), float64 lat(lat), float64 lat_bnds(lat, bnds), float64 lon(lon), float64 lon_bnds(lon, bnds), float64 pre(pressure), float64 pre_bnds(pressure, bnds), float64 land_fraction(lat, lon), float32 xch4(time, lat, lon), int32 xch4_nobs(time, lat, lon), float32 xch4_stderr(time, lat, lon), float32 xch4_stddev(time, lat, lon), float32 column_averaging_kernel(time, pressure, lat, lon), float32 vmr_profile_ch4_apriori(time, pressure, lat, lon)
    groups: 

Process finished with exit code 0
"""

variable_names = ds.variables.keys()  # 变量名,类似于该数据的属性
print(len(variable_names), variable_names)

"""
输出信息:
15 dict_keys(['time', 'time_bnds', 'lat', 'lat_bnds', 'lon', 'lon_bnds', 'pre', 'pre_bnds', 'land_fraction', 'xch4', 'xch4_nobs', 'xch4_stderr', 'xch4_stddev', 'column_averaging_kernel', 'vmr_profile_ch4_apriori'])

Process finished with exit code 0
"""

print(ds.variables['time'])
"""
<class 'netCDF4._netCDF4.Variable'>
float64 time(time)
    standard_name: time
    long_name: time
    units: days since 1990-01-01
    calendar: standard
    axis: T
    comment: time center
unlimited dimensions: 
current shape = (228,)
filling on, default _FillValue of 9.969209968386869e+36 used
"""

print(ds.variables['time'][0])
"""
4763.5  # 意思是从1990-01-01开始加上4763.5天
"""

time = nc.num2date(ds.variables['time'][:], 'days since 1990-01-01').data  # 转换成时间戳
print(time[0])
"""
2003-01-16 12:00:00
"""

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ncast盈可视高清智能录播系统busiFacade RCE漏洞(CVE-2024-0305)

产品介绍 Ncast盈可视高清智能录播系统是一套新进的音视频录制和播放系统&#xff0c;旨在提供高质量&#xff0c;高清定制的录播功能。 漏洞描述 广州盈可视电子科技有限公司的高清智能录播系统存在信息泄露漏洞(CVE-2024-0305)&#xff0c;攻击者可通过该漏洞&#xff0c;…

vue前端开发自学,子组件传递数据给父组件,使用$emit

vue前端开发自学,子组件传递数据给父组件,使用$emit 父子组件之间互相传递数据的情况非常常见&#xff0c;下面为大家介绍的是&#xff0c;来自子组件&#xff0c;给父组件传递数据的情况。 <template><h3>组件事件demo</h3><Child someEvent"getI…

matplotlib教程(一)—— 入门基础

前言 Matplotlib 是 Python 的绘图库&#xff0c;它能让使用者很轻松地将数据图形化&#xff0c;并且提供多样化的输出格式&#xff1b;它可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等 在使用它之前&#xff0c;应导入&#xff1a;import matp…

LeetCode刷题笔记

面试经典150题 1. 数组/字符串 1.1 合并两个有序数组 题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺…

python 文件夹中 __init__.py

common文件夹下有&#xff1a;project&#xff0c;__init__.py&#xff0c;common1.py project文件夹内有&#xff1a;__init__.py&#xff0c;p.py common文件夹里&#xff0c;project文件夹 各放了一个 __init__.py 这样就可以在p.py内用from导入common1.py内的代码 # p…

Git的简单使用说明

Git入门教程 git的最主要的作用&#xff1a;版本控制&#xff0c;协助开发 一.版本控制分类 ​​ 1.本地版本控制 ​​ 2.集中版本控制 ​​ 所有的版本数据都存在服务器上&#xff0c;用户的本地只有自己以前所同步的版本&#xff0c;如果不连网的话&#xff0c;用户就看不…

第一次在RUST官方论坛上留言发布我的Rust板箱

第一次在RUST官方论坛上发帖子&#xff0c;有点紧张~地址在这里&#xff1a; 【My Rust Crate】obtains linux local information - The Rust Programming Language Forum (rust-lang.org)

设计模式之装饰者模式

装饰者模式 装饰者模式是一种设计巧妙的设计模式&#xff0c;它能够动态的添加对象功能&#xff0c;而对原始对象无干扰。java程序设计中有一个很重要的原则就是尽可能实现复用。逻辑复用只有两种模式&#xff0c;一种是继承&#xff0c;一种是委托。继承模式两者之间是强依赖…

超详细讲解Transformers自然语言处理NLP文本分类、情感分析、垃圾邮件过滤等(附数据集下载)

超详细讲解Transformers自然语言处理NLP文本分类、情感分析、垃圾邮件过滤等(附数据集下载) 什么是自然语言处理 (NLP) ? 自然语言处理 (NLP) 是计算机科学的一个分支,更具体地说,是人工智能 (AI) 的分支,旨在让计算机能够以与人类大致相同的方式理解文本和语音。 自然语…

程序员如何写高水平简历?(附模板)

Q&#xff1a;什么是高水平的简历&#xff1f; A&#xff1a;满足HR需求的同时&#xff0c;最大化的体现自身价值的简历是高水平的简历 HR的需求是什么&#xff1f; ✅ HR想看到清晰专业的简历模板 ——家人们每天看几百份简历谁懂啊&#xff01;花里胡哨真看不下去一点&…

FPGA:我的零基础学习路线(2022秋招已上岸)持续更新中~

可内推简历&#xff0c;丝我即可 前言 初次接触FPGA是在2022年3月左右&#xff0c;正处在研二下学期&#xff0c;面临着暑假找工作&#xff0c;周围的同学大多选择了互联网&#xff0c;出于对互联网的裁员形势下&#xff0c;我选择了FPGA&#xff0c;对于硬件基础知识我几乎是…

Mysql-排序查询方法

接上篇Mysql数据库的基础操作-CSDN博客 25. 基础-SQL-DCL-权限控制-_哔哩哔哩_bilibili 1、排序语法 2、查询结果示例 这个查询结果&#xff0c;因为特意选的age18 的数据来统计&#xff0c;所以当每一条数据的age一样时&#xff0c;使用worknno进行排序。可以看到work的升序和…

19_注解

文章目录 注解注解的作用注解的语法注解的使用 元注解注解处理器案例 注解VS配置文件注解的应用 注解 Annotation是代码里的特殊标记&#xff0c;这些标记可以在编译、类加载、运行时被读取&#xff0c;并执行相应的处理可以把Annotation理解为一个标签注解是不允许继承的 注…

鸿蒙开发笔记(一):ArkTS概述及声明式UI的使用

ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性&#xff0c;是TS的超集。 ArkTS在TS的基础上主要扩展了如下能力&#xff1a; 基本语法&#xff1a;ArkTS定义…

C++内存管理机制(侯捷)笔记3

C内存管理机制&#xff08;侯捷&#xff09; 本文是学习笔记&#xff0c;仅供个人学习使用。如有侵权&#xff0c;请联系删除。 参考链接 Youtube: 侯捷-C内存管理机制 Github课程视频、PPT和源代码: https://github.com/ZachL1/Bilibili-plus 第三讲&#xff1a;malloc和…

波动,热传导,扩散方程建立

数学物理方程是从自然科学的各个领域和工程技术领域中导出的偏微分方程和积分方程.在这些以偏微分方程为基础的数学模型中&#xff0c;二阶线性偏微分方程中的三个典型方程与定解条件的建立、解法及其应用&#xff0e;描述振动和波动过程的波动方程、描述输运过程的热传导&…

【笔记】Blender4.0建模入门-1、2

Blender入门 ——邵发 1.1 课程介绍 Blender&#xff0c;一款3D建模软件&#xff0c;小乔、免费、全流程 常见的3D建模软件&#xff1a; - 3DsMax/Maya/Blender/Cinema4D/ZBrush...游戏影视 - Proe/Solidworks/Inventor/UG...工业建模 - SketchUp/Rhino/Revit...建筑设计 …

想要简化重复订单吗?不妨考虑一揽子采购订单

企业想提高采购流程效率&#xff0c;简化大批量采购是一个很好的开始。财务、会计和采购部门通过系统化订购大量物品&#xff08;如纸张、打印机墨水和墨粉、清洁用品、纸制品和其他易重复采购的消耗品&#xff09;可以节省时间和金钱。借助正确的采购订单&#xff08;PO&#…

俩万字详解C++STL期末复习知识点(C++STL课本源码私信可得)

邸老师复习建议 复习注意事项 1 不考死记硬背的题&#xff0c;比如名词解释。 2 选择题重点考核宏观性、综合性的问题&#xff0c;比如&#xff1a;把电话通讯录存入容器&#xff0c;该选哪一个容器&#xff1f; 3 选择题重点考核理解性的问题&#xff0c;比如&#xff0c;…

C语言——(printf和scanf介绍)

一.printf 1.基本用法 printf&#xff08;&#xff09;的作用是将参数文本输出的屏幕。如下&#xff1b; 2.占位符 printf&#xff08;&#xff09;可以在输出文本中指定占位符 &#xff0c;“占位符”&#xff0c;也就是这个位置可以用其他值代入。 如&#xff1a; …