在matlab中如何读取nc文件?

在matlab中如何读取nc文件?,第1张

首先,nc1的这个“3”是netcdf.open函数返回的ncid;Matlab自带、与NETCDF相关的 Low-Level 函数中很多以 id 来识别文件(ncid)、维度(dimid)、变量(varid)。在help中搜索 “netcdf” 可以找到所有相关函数。

其次,仅需要从nc文件中读取数据时,不必调用这些 Low-Level 函数,一般使用 ncread,例如最简单的 u = ncread('uwnd.2010.nc', ‘u’)这个命令将从你的nc文件中读取变量“u”。详细说明建议看help:help ncread。

最后,如上面建议的,简单的工作中,尽量使用 ncread、ncwrite、 ncreadatt 等函数。一方面,这些函数使用时非常方便、直观;另一方面,使用那些 netcdf.××× 形式的 “Low Level” 函数前,最好先熟悉一下 NetCDF C Interface,否则可能会出现一些问题。例如使用 ncread 可以直接使用文件名、变量名读取变量,但 “Low Level” 函数则需要:获得ncid(ncid = netcdf.open(‘×××’))、获得变量id(varid = netcdf.inqVarID(ncid,‘×××’))、读取变量(data = netcdf.getVar(ncid,varid))三步。

PS:

Matlab从2008b开始,就开始自带netcdf接口了(当时是netcdf-3),并且跟随netcdf标准的演变,在之后的版本中添加了对netcdf-4、OpenDAP等的支持,并加入了一些符合Matlab习惯的函数。

因此如果使用的是2008b之前的版本,需要MEXNC、SNCTOOLS等外部接口;而2008b-2010b则不必依赖外部函数;最后如果是2011a及更新版本的,则可以直接使用“ncread”、“ncwrite”等非常方便的函数

试试这个咯:

nc='/home/willie/Desktop/nc.nc'

with open(nc,'rb') as f:

s=f.read()

nc文件是常用的科学数据文件,该文件可以使用ncbrowse软件打开,但是个人觉得该软件只能打开一个nc文件,无法连续处理多个文件,因此这里介绍如何使用matlab打开该文件。

Matlab中如何打开nc文件

matlab2013之后,对nc文件的处理更进了一步,到了2016a版本就更加方便。

查看nc文件的命令:ncinfo;

我们在网上下载了一个nc文件“FK150117_wh300_tide_IO.nc”,使用ncinfo命令查看文件内容。

ncinfo('FK150117_wh300_tide_IO.nc')

Matlab中如何打开nc文件

Matlab中如何打开nc文件

可以查看到nc文件的各个变量的信息。

当然也有数据说明,我们打开time的attributes之后,可以看到相关信息。

Matlab中如何打开nc文件

可以根据自己的需要导出文件的内容。比如我们想导出文件中名字为lon和lat的信息。

使用ncread命令。

lon = ncread('FK150117_wh300_tide_IO.nc','lon')

lat = ncread('FK150117_wh300_tide_IO.nc','lat')

plot(lon,lat,'b.')

Matlab中如何打开nc文件

也可以使用uv生成其他图形:

u = ncread('FK150117_wh300_tide_IO.nc','u')

v = ncread('FK150117_wh300_tide_IO.nc','v')

quiver(lon,lat,u,v)

下图是放大后的矢量图形。

Matlab中如何打开nc文件


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10029623.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存