主要内容

导入NetCDF文件和OpenDAP数据

使用高级函数从netcdf文件中读取数据,然后通过使用读取文件netcdf.包低级功能。

马铃薯草netcdf能力

网络常见数据表单(NetCDF)是一组软件库和机器独立的数据格式,支持创建,访问和共享阵列导向的科学数据。金宝appNetCDF由各种工程和科学领域使用,这些字段希望存储数据的标准方法,以便可以共享。

马铃薯草®高级功能简化了从NetCDF文件或OpenDAP NetCDF数据源导入数据的过程。MATLAB低级函数通过提供对NetCDF C库中的例程访问,可以更好地控制导入过程。要有效地使用低级功能,您应该熟悉NetCDF C接口。netcdf文件可用Unidata网站

笔记

有关导入常见数据格式(CDF)文件的信息,具有单独的,不兼容的格式,请参阅使用低级函数导入CDF文件

连接到Opendap服务器时的安全注意事项

强烈建议您仅连接到可信Opendap服务器。在R2020B中,Matlab NetCDF接口仅通过执行服务器证书和主机名验证来连接到可信数据访问协议(DAP)端点。以前,当您访问Opendap服务器时,默认情况下禁用服务器证书和主机名验证。

如果要禁用服务器证书和主机名验证,请在a中添加以下行.dodsrc文件在当前目录中:

[mylocaltestserver.lab] http.ssl.validate = 0

这使得matlab netcdf接口连接到在URI中指定的名称的Opendap服务器mylocaltestserver.lab.在不执行服务器证书或主机名上执行任何验证。这种变化仍然存在于未来的Matlab会话中。有关Opendap服务器身份验证和主机名验证的更多信息,请参阅NetCDF授权支持金宝app

使用高级功能从NetCDF文件读取

此示例显示如何使用高级功能显示和读取NetCDF文件的内容。

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

NCDISP('example.nc'的)
来源: \\matlabrootmatlab工具箱\ \ \ demo \例子。nc格式:netcdf4全局属性:creation_date = '29-Mar-2010' Dimensions: x = 50 y = 50 z = 5变量:avagadros_number尺寸:1x1尺寸:Datatype: double属性:description = 'this variable has no Dimensions ' temperature尺寸:50x1尺寸:x数据类型:int16属性:scale_factor = 1.8 add_offset = 32 units = 'degrees_fahrenheight' peaks尺寸:50x50尺寸:x,y数据类型:int16 Attributes: description = 'z = peaks(50);' Groups: /grid1/ Attributes: description = '这是一个组属性。'变量:temp Size: [] Size: x,y,time数据类型:int16 /grid2/ Attributes: description = '这是另一个组属性。'尺寸:x = 360 y = 180 time = 0 (UNLIMITED)变量:temp尺寸:[]尺寸:x,y,time数据类型:int16

NCDISP.在文件中显示所有组,尺寸和可变定义。用标签识别无限尺寸,无限

读取数据山顶多变的。

peaksdata = ncread('example.nc'“高峰”);

显示有关的信息peaksdata.输出。

谁是peaksdata.
名称大小字节类属性peaksData 50x50 5000 int16

阅读描述与变量关联的属性。

peaksdesc = ncreadatt('example.nc'“高峰”'描述'的)
peaksdesc = z =峰(50);

创建变量数据的三维表面图。使用价值描述属性作为图形的标题。

冲浪(双(峰值))标题(峰值);

阅读描述与之相关的属性/ grid1 /团体。将组名指定为第二个输入Ncreadatt.功能。

g = ncreadatt('example.nc''/ grid1 /''描述'的)
g =这是一个组属性。

读取全局属性,创立日期。对于全局属性,请指定第二个输入参数Ncreadatt.作为'/'

creation_date = ncreadatt('example.nc''/''创立日期'的)
Creation_date = 2010年3月29日

在netcdf文件中查找所有无限制的维度

此示例显示如何使用高级功能在NetCDF文件中查找组中的所有无限尺寸。

获取有关的信息/ grid2 /在示例文件中组,example.nc., 使用ncinfo.功能。

ginfo = ncinfo('example.nc''/ grid2 /'的)
ginfo = filename:'\\matlabroot\ toolbox \ matlab \ demos \ example.nc'name:'grid2'尺寸:[1x3 struct]变量:[1x1 struct]属性:[1x1 struct]组:[]格式:'netcdf4'

ncinfo.返回包含有关该组信息的结构数组。

获取指示此组的无限尺寸的布尔值的向量。

Unlimdims = [ginfo.dimensions.unlimited]
UNLIMDIMS = 0 0 1

使用Unlimdims.矢量显示无限制度。

disp(ginfo.dimensions(Unlimdims))
名称:'time'长度:0无限:1

使用低级函数从netcdf文件读取

此示例显示如何使用MATLAB低级功能获取有关尺寸,变量和属性的信息,使用MATLAB低级功能netcdf.包裹。要有效地使用这些功能,您应该熟悉NetCDF C接口。

打开netcdf文件

打开样本netcdf文件,example.nc., 使用netcdf.open.功能,具有只读访问权限。

ncid = netcdf.open('example.nc''nc_nowrite'的)
ncid = 65536.

netcdf.open.返回文件标识符。

获取有关NetCDF文件的信息

获取有关文件内容的信息使用netcdf.inq.功能。此功能对应于nc_inq.在NetCDF库C API中的功能。

[NDIMS,NVARS,NATT,UNLIMDIMID] = NETCDF.INQ(NCID)
ndims = 3
nvars = 3.
NATTS = 1
UNLIMDIMID = -1

netcdf.inq.返回文件中的维度,变量和全局属性的数量,并返回文件中无限制度的标识符。无限制的维度可以增长。

使用文件中全局属性的名称使用netcdf.inqattname.功能。此功能对应于nc_inq_attname.在NetCDF库C API中的功能。要获取属性的名称,必须指定该属性与属性编号关联的变量的ID。要访问与特定变量无关的全局属性,请使用常量'nc_global'作为变量ID。

global_att_name = netcdf.inqattname(ncid,......netcdf.getConstant('nc_global'),0)
global_att_name ='creation_date'

获取有关使用该属性的数据类型和长度的信息netcdf.inqatt.功能。此功能对应于nc_inq_att.在NetCDF库C API中的功能。再次,指定使用变量IDnetcdf.getConstant('nc_global')

[xtype,attlen] = netcdf.inqatt(ncid,......netcdf.getConstant('nc_global'),global_att_name)
xtype = 2
attlen = 11

获取属性的值,使用netcdf.partatt.功能。

global_att_value = netcdf.getatt(ncid,......netcdf.getConstant('nc_global'),global_att_name)
global_att_value = '29 -MAR-2010'

获取有关文件中第一个维度的信息,使用netcdf.inqdim.功能。此功能对应于nc_inq_dim.在NetCDF库C API中的功能。第二个输入netcdf.inqdim.是维度ID,它是标识维度的基于零索引。第一维度具有索引值0.

[dimname,dimlen] = netcdf.inqdim(ncid,0)
dimname ='x'
dimlen = 50.

netcdf.inqdim.返回维度的名称和长度。

获取有关文件中第一个变量的信息使用netcdf.inqvar.功能。此功能对应于nc_inq_var.在NetCDF库C API中的功能。第二个输入netcdf.inqvar.是可变ID,它是标识变量的基于零索引。第一个变量具有索引值0.

[varname vartype dimids,奈特]= netcdf.inqVar (ncid, 0)
varname ='avagadros_number'
vartype = 6.
dimids = []
NATTS = 1

netcdf.inqvar.返回与变量关联的名称,数据类型,维度ID和属性的数量。返回的数据类型信息vartype.是NetCDF数据类型常量的数值,例如:nc_int.nc_byte.。有关这些常量的信息,请参阅netcdf文档。

从netcdf文件读取数据

读取与变量关联的数据,avagadros_number,在示例文件中,使用netcdf.getVar功能。第二个输入netcdf.getVar是可变ID,它是标识变量的基于零索引。这avagadros_number变量具有索引值0.

a_number = netcdf.getvar(ncid,0)
a_number = 6.0221e + 23

查看数据类型一个号码

谁是一个号码
名称大小字节类属性a_number 1x1 8 double

中的功能netcdf.包自动选择最符合NetCDF数据类型的MATLAB类,但您还可以使用可选参数指定返回数据的类netcdf.getVar

读取与之相关的数据avagadros_number并以类的形式返回数据单身的

a_number = netcdf.getvar(ncid,0,'单身的');谁是一个号码
名称大小字节类属性a_number 1x1 4单个

关闭NetCDF文件

关闭NetCDF文件,example.nc.

netcdf.close(ncid)

也可以看看

|||

相关的话题

外部网站