Matlab之netCDF格式文件读取方法

目录

一、netCDF格式文件

1.简介

2.NetCDF的数据结构

二、Matlab读取netCDF使用到的函数

1.ncdisp()

2.ncinfo()

3.ncread ()

4.ncreadatt()


一、netCDF格式文件

1.简介

NetCDF(network Common Data Form)网络通用数据格式是由美国大学大气研究协会(University Corporation for Atmospheric Research,UCAR)的Unidata项目科学家针对科学数据的特点开发的,是一种面向数组型并适于网络共享的数据的描述和编码标准。目前,NetCDF广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域。

2.NetCDF的数据结构

NetCDF数据集(文件名后缀为.nc) 的格式不是固定的,它是使用者根据需求 自己定义的。一个NetCDF数据集包含维(dimensions)、变量(variables)和属性(attributes)三种描述类型,每种类型都会被分配一个名字和一个ID,这些类型共同描述了一个数据集,NetCDF库可以同时访问多个数据集,用ID来识别不同数据集。变量存储实际数据,维给出了变量维度信息,属性则给出了变量或数据集本身的辅助信息属性,又可以分为适用于整个文件的全局属性和适用于特定变量的局部属性,全局属性则描述了数据集的基本属性以及数据集的来源。一个NetCDF文件的结构包括以下对象:

NetCDF name{Dimensions:… //定义维数Variables:… //定义变量Attributes:… //属性Data:…//数据
}

二、Matlab读取netCDF使用到的函数

1.ncdisp()

功能:在命令窗口中显示NetCDF数据源的内容

示例:显示示例NetCDF文件example.nc的内容。

ncdisp('example.nc')

结果如下:

Source:H:\matlab\toolbox\matlab\demos\example.nc
Format:netcdf4
Global Attributes:creation_date = '29-Mar-2010'
Dimensions:x = 50y = 50z = 5
Variables:avagadros_numberSize:       1x1Dimensions: Datatype:   doubleAttributes:description = 'this variable has no dimensions'temperature     Size:       50x1Dimensions: xDatatype:   int16Attributes:scale_factor = 1.8add_offset   = 32units        = 'degrees_fahrenheight'peaks           Size:       50x50Dimensions: x,yDatatype:   int16Attributes:description = 'z = peaks(50);'
Groups:/grid1/Attributes:description = 'This is a group attribute.'Dimensions:x    = 360y    = 180time = 0     (UNLIMITED)Variables:tempSize:       []Dimensions: x,y,timeDatatype:   int16/grid2/Attributes:description = 'This is another group attribute.'Dimensions:x    = 360y    = 180time = 0     (UNLIMITED)Variables:tempSize:       []Dimensions: x,y,timeDatatype:   int16

2.ncinfo()

finfo = ncinfo(source)

功能:在结构finfo中返回有关source指定的整个NetCDF数据源的信息,其中source可以是NetCDF文件的名称或OPeNDAP NetCDF数据源的URL。

示例:

  • 搜索名称以文件中的字符x开头的尺寸。
finfo = ncinfo('example.nc');
disp(finfo);
dimNames = {finfo.Dimensions.Name};
dimMatch = strncmpi(dimNames,'x',1);
disp(finfo.Dimensions(dimMatch));

输出结果如下图所示

  • 获取变量的大小,并检查其是否具有无限制的尺寸。
vinfo = ncinfo('example.nc','peaks');
varSize = vinfo.Size;
disp(vinfo);
hasUnLimDim = any([vinfo.Dimensions.Unlimited]);

输出结果如下图所示:

  • 查找组中定义的所有无限尺寸
ginfo = ncinfo('example.nc','/grid2/');
unlimDims = [ginfo.Dimensions.Unlimited];
disp(ginfo.Dimensions(unlimDims));

输出结果如下图所示:

3.ncread ()

功能:从NetCDF数据源中的变量读取数据

语法:

  • vardata = ncread(source,varname)

    从source中的变量varname读取数据,该变量可以是NetCDF文件的名称,也可以是OPeNDAP NetCDF数据源。

  • vardata = ncread(source,varname,start,count,stride)

    从源中的变量varname读取数据,起始位置是start给出的位置。 count指定沿相应维度读取的元素数。 可选参数stride指定沿每个尺寸的元素间距。


示例1:读取并显示示例文件中peaks变量中的数据

ncdisp('example.nc','peaks');
peaksData  = ncread('example.nc','peaks');
peaksDesc  = ncreadatt('example.nc','peaks','description');
surf(double(peaksData));
title(peaksDesc);

输出结果如下图所示:


示例2:将峰数据二次采样2倍(沿每个维度读取其他所有值)。

subsetdata = ncread('example.nc','peaks',...[1 1], [Inf Inf], [2 2]);
surf(double(subsetdata));

输出结果如下图所示:

4.ncreadatt()

功能:NetCDF数据源读取属性值

语法:attvalue = ncreadatt(source,location,attname)

描述:attvalue = ncreadatt(source,location,attname)

source中的位置指定的组或变量中读取属性attname,其中source是NetCDF文件的名称或NetCDF数据源的URL

示例:

  • 读取全局属性
creation_date = ncreadatt('example.nc','/','creation_date')

输出结果如下图所示:

  • 读取与变量关联的属性
scale_factor = ncreadatt('example.nc','temperature','scale_factor')

输出结果如下图所示:

  • 读取与组关联的属性

本示例仅适用于netcdf4格式的文件。

desc_value = ncreadatt('example.nc','/grid2','description')

输出结果如下图所示:

Matlab之netCDF格式文件读取方法相关推荐

  1. python xlrd读取excel-使用Python xlrd模块读取Excel格式文件的方法

    这是一篇关于如何使用Python xlrd模块读取Excel格式文件的方法的文章,下面的python代码中使用 了xlrd模块的方法,这样就能够很方便的读取 excel 文件内容.同是这个xlrd模块 ...

  2. python 读取csv文件转成字符串,python实现csv格式文件转为asc格式文件的方法

    一.背景描述 csv格式文件是一种类似于excel的文件格式 asc格式文件是一种可以用text打开的文本文件 csv转asc本来可以用arcgis顺利完成,但由于csv数据量太大(744万行),ar ...

  3. php生成vcf,php简单读取.vcf格式文件的方法示例

    本文实例讲述了php简单读取.vcf格式文件的方法.分享给大家供大家参考,具体如下: /** * 读取.vcf格式文件 * @param $filename */ function readCvf($ ...

  4. unity向服务器发送xml文件格式,Unity读取Excel文件转换XML格式文件的方法

    Unity读取Excel文件转换XML格式文件的方法 发布时间:2020-06-23 09:34:33 来源:亿速云 阅读:107 作者:清晨 不懂Unity读取Excel文件转换XML格式文件的方法 ...

  5. php vcf,php读取 .vcf 格式文件的方法

    这篇文章主要介绍了php读取.vcf格式文件的方法,结合具体实例形式分析了php自定义函数读取vcf格式文件的具体实现方法与相关注意事项,需要的朋友可以参考下 具体如下: /** * 读取.vcf格式 ...

  6. php vcf,php简单读取.vcf格式文件的方法示例

    本文实例讲述了php简单读取.vcf格式文件的方法.分享给大家供大家参考,具体如下: /** * 读取.vcf格式文件 * @param $filename */ function readCvf($ ...

  7. python读取mp4文件失败_Python代码打开本地.mp4格式文件的方法-mp4文件

    Python开发技术的应用相信有不少的小伙伴都有所了解,简单的说那就是非常的强大,Python开发技术的应用是非常广泛的,本篇文章扣丁学堂Python培训小编就给读者们分享一下Python代码打开本地 ...

  8. python处理netcdf_使用Python处理NetCDF格式文件

    NetCDF(Network Common Data Form)是一种科学二进制数据格式,由UCAR负责开发和维护netCDF软件,主要用于存储多维科学数据.在地球科学领域使用较为广泛,大多数数值模式 ...

  9. 基于Python的netCDF格式文件转换为GeoTiff格式

    文章目录 目录 文章目录 前言 一.netCDF格式文件主要内容 二.准备工作 1.所需要的库 netCDF4库 2.GDAL库的安装 3.thinker库 三.nc格式文件主要内容的存储 四.总结 ...

最新文章

  1. 几种Normalization算法.md
  2. 谁说技术男不适合养猫!90后程序员2天做出猫咪情绪识别软件
  3. 数据类型:Struct 和 Union区别
  4. 应用TP3.2.3的一些小问题(一)
  5. 第二阶段团队每日冲刺07
  6. 神策专访丨摩天轮票务陈校校:在线票务平台精准营销之道
  7. QDU-GZS and String
  8. get请求可以传数组吗_王源 袁冰妍 孟美岐 手套在大片中的时尚,普通人可以get吗...
  9. 这些21个不太好搜索其含义的特殊符号你都知道吗?
  10. Docker快速安装RabbitMQ服务
  11. sphinx 字符串转html,在Pycharm中获取Sphinx,以将我的文档字符串包含在生成的html中...
  12. Vim批量注释、替换和缩进
  13. android 8.1.0怎么截屏,vivo Z1i怎么截屏?4种vivo Z1i截图方法
  14. SPOJ SUBST1 New Distinct Substrings(后缀数组 本质不同子串个数)题解
  15. mysql怎么更改gbk_把mysql 中的字符gb2312 改为gbk的方法
  16. ORB_SLAM2之Pangolin的安装与问题处理
  17. Python实现图片转pdf
  18. 戴尔笔记本电脑的计算机配置在哪,戴尔g3怎么查电脑配置
  19. [NOIP初赛复习]插空法与插板法解排列组合问题
  20. 第六章 go 文件操作

热门文章

  1. dB dBm dBFs 理解
  2. GIT切换分支的简单操作
  3. 中国软件行业待遇问题
  4. ThinkPad E545连WiFi教程(系统:ubuntu-20.04.3-live-server,无线网卡:BCM34142)
  5. centos 6.5 mysql 5.7_CentOS 6.5下安装MySql 5.7
  6. NDIS中间层的驱动包截获技术教程
  7. 拼音中文首字母大写查询
  8. 〖ChatGPT实践指南 - 零基础扫盲篇⑧〗- OpenAI 的 模型(Model) 介绍
  9. List和IList的区别
  10. 如何将项目部署到服务器:从选择服务器到维护应用程序的全流程指南