ncbuild文档

ncbuild函数简化了构建netCDF输出文件的过程基于Matlab数据变量。

这个函数编写Matlab数据到新的或现有的文件,同时定义netCDF文件属性,如变量名、维度名称和大小和文件和变量属性适合正在写入的数据。它提供了一个包装的任务通常由nccreatencwrite,同时也减少了所需的额外的代码重复常见任务。

另请参阅nccreate,ncwrite,ncwriteatt

回到气候数据工具的内容

内容

语法

ncbuild(文件,var) ncbuild (val1,文件、var param1)

描述

var ncbuild(文件)写文本或数字数据中的数据var到一个新的netCDF文件中的变量文件。如果文件还不存在,它将使用经典格式创建的。

ncbuild (…,“名字”,的名字)使用指定的字符数组的名字变量名。如果不包括,将使用输入变量的名称;如果变量输入数据没有一个变量名,“variableX”将被使用,其中X是计数器的变量在文件一旦variableX补充道。

ncbuild (…,“dimnames”,dimnames)分配的维度名称字符串数组或字符串单元阵列/字符dimnames创建的netCDF变量。如果需要这些尺寸将创建的文件。如果不包括,维独特的长度将标记为“我”,“j”、“k”等。

ncbuild (…,'format', format)指定文件格式。看到nccreate“格式”选项,选项和细节。默认值:“经典”

ncbuild (…,“fileatts”,fileatts)将全球文件属性添加到文件。fileatts应该是一个名称/值属性对单元阵列(看到了吗attribstruct输入描述详情)

ncbuild (…,'unlimited', unlim)表示维度(通过名称的字符串数组或字符串单元阵列/字符unlim),应该是无限的长度。请注意,对于经典的文件,和许多netCDF约定,只有一个维度可以是无限的。默认值:{}(即。,no unlimited dimensions)

ncbuild (…,“varatts”,varatts)供应变量属性变量的新文件。varatts应该是一个名称/值属性对单元阵列(看到了吗attribstruct输入描述详情)

ncbuild (…,'type', type)指定变量的数据类型。看到nccreate“数据类型”选择选项和细节。如果不包括,将推断从输入变量数据类型。注意,如果一个类型指定的和不匹配var,输入数据将自动重新在写这种类型。

示例1:可变数据保存到文件以最小的元数据

对于这个示例,我们从3开始变量:

x = 1:10;y = 1:8;Z1 =兰德(8、10);

我们现在可以使用ncbuild保存Z1netCDF文件数据。

ncbuild (“test1.nc”Z1);

当使用这个最小的语法,ncbuild函数首先认识到,它需要创建一个新文件,并使用默认的经典格式创建它。它假设存储变量的名称应该与Matlab的变量名,和分配名称变量尺寸使用它自己的默认方案,而不是要求用户提供这些细节。

ncdisp (“test1.nc”)
来源:/用户/ kakearney /文件/ MatlabCodeKAK /外部/ CDT / CDT / doc / test1。数控格式:netcdf4_classic维度:i = 8 j = 10变量:Z1尺寸:8 x10维度:i, j数据类型:双

我们可以继续使用ncbuild新变量添加到文件。如果我们继续提供最小的细节,ncbuild将继续尝试匹配的变量大小对现有尺寸的文件:

ncbuild (“test1.nc”,x);ncbuild (“test1.nc”,y);ncbuild (“test1.nc”Z1 +π);ncdisp (“test1.nc”)
来源:/用户/ kakearney /文件/ MatlabCodeKAK /外部/ CDT / CDT / doc / test1。数控格式:netcdf4_classic维度:i = 8 j = 10变量:Z1尺寸:8 x10维度:i, j数据类型:双x染色体大小:10 x1维度:数据类型:双y尺寸:8 x1维度:我数据类型:双variable4尺寸:8 x10维度:i, j数据类型:双

注意,最后添加,可变数据不是作为一个传递变量,而是一个表达式。因为ncbuild没有一个Matlab使用变量名偷,而是倒在其默认变量命名方案,简单的数字变量基于它们的顺序添加到文件中。

最小输入选项有限制;如果你尝试通过一个变量ncbuild维度是模棱两可的,它会抛出一个错误消息。

Z3 =兰德(10,10);试一试ncbuild (“test1.nc”Z3);我disp (ME.message);结束
模棱两可的维度匹配;明确的维度名称列表必须包含这个变量

在这个例子中,ncbuild不知道Z3的第一或第二维度是否应该匹配与现有的维度j。同样的错误会发生如果文件已经包含多个维度长度相同;在这种情况下,ncbuild需要一些澄清从用户为了找出哪些维度使用。说的更明确一些,我们可以使用可选的ncbuild在下一个示例中输入。

示例2:与显式建立netCDF文件元数据

在上面介绍的最小的语法选项可以节省很多时间和麻烦,你经常会想施加更多控制新netCDF中的元数据文件。

这个例子将相同的数据写入文件,在上面的例子中。然而,这一次,我们提供了一些明确的细节:

ncbuild (“test2.nc”,x,“dimnames”,{“x”},“varatts”,{“long_name”,“x数据”,“单位”,“x单位”},“fileatts”,{“作者”,“简”,“历史”sprintf (“% s:通过ncbuild Matlab中创建”datetime (“今天”)});ncbuild (“test2.nc”,y,“dimnames”,{“y”},“varatts”,{“long_name”,“y数据”,“单位”,“y份”});ncbuild (“test2.nc”Z1,“varatts”,{“long_name”,“Z1数据”,“单位”,“z-units”});ncbuild (“test2.nc”Z1 +π,“名字”,“Z2”,“varatts”,{“long_name”,“Z1 +π”,“单位”,“z-units”});ncbuild (“test2.nc”Z3,“dimnames”,{“x”,“x2”},“varatts”,{“long_name”,“随机数”,“单位”,“z-units”});ncdisp (“test2.nc”)
来源:/用户/ kakearney /文件/ MatlabCodeKAK /外部/ CDT / CDT / doc / test2。数控格式:netcdf4_classic维度:10 x = y = 8 x2 = 10变量:x尺寸:10 x1维度:x数据类型:双属性:long_name = x数据的单位y = x单位的大小:8 x1维度:y数据类型:双属性:long_name = y数据的单位= y份的Z1尺寸:8 x10维度:y, x数据类型:双属性:long_name = Z1数据的单位= ' z-units Z2尺寸:8 x10维度:y, x数据类型:双属性:long_name =“Z1 +π”单位= ' z-units Z3尺寸:10 x10维度:x, x2数据类型:双属性:long_name =单位“随机数”=“z-units”

这个选项仍然允许用户输入比需要的少nccreate函数。例如,我们可以让ncbuildintuit正确的预先存在的维度用于Z1和Z2变量。

作者信息

这个函数和支持文档写的凯利卡尼的气候金宝app数据为Matlab工具箱。