问题标签 [nco]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1781 浏览

python - 使用 nco 工具将半度 netCDF 的分辨率更改为四分之一度 netCDF

我可以通过执行以下操作将 netCDF 文件的分辨率更改为更粗略的文件:

我怎么走另一条路?即将粗尺度netCDF的分辨率更改为更细尺度?

0 投票
3 回答
860 浏览

python - NetCDF 文件 - 为什么在修复记录尺寸后文件大小为 1/3?

我正在努力解决这个问题。

我创建了一个具有以下维度和变量的 netcdf4 文件(特别注意无限point维度):

我有一个 Python 程序,它在循环中用数据填充这个文件(因此无限的记录维度 - 我不知道先验文件有多大)。

填充文件后,大小为 103MB。

我的问题是从这个文件中读取数据非常慢。我猜这与分块和无限point维度有关?

ncks --fix_rec_dmn在该文件上运行,(经过大量搅动)它生成了一个新的 netCDF 文件,该文件的大小仅为 32MB(对于它包含的数据来说,这大约是正确的大小)。

这是大小上的巨大差异 - 为什么原始文件如此臃肿?此外 - 访问此文件中的数据要快几个数量级。例如,在 Python 中,读取hs变量的内容在原始文件上需要 2 秒,而在固定记录维度文件上需要 40 毫秒。

我遇到的问题是我的一些文件包含很多点并且似乎太大而无法运行ncks(我的机器内存不足,我有 8GB),所以我无法将所有数据转换为固定记录维度.

谁能解释为什么文件大小如此不同,以及如何使原始文件更小,阅读效率更高?

顺便说一句 - 我没有使用 zlib 压缩(我选择将浮点值缩放为整数 short)。

克里斯

编辑 我的 Python 代码本质上是在 3 个月内从多个单独的模型预测文件中构建一个包含并置模型和观测数据的单个时间序列文件。我的预测模型每天运行 4 次,我汇总了 3 个月的数据,因此大约有 120 个文件。

该程序从每个文件中提取预测周期的子集(et T+24h -> T+48h),因此连接文件并不是一件简单的事情。

这是我的代码在做什么的粗略近似(它实际上读/写了更多变量,但为了清楚起见,我在这里只显示 2):

有趣的是,如果我将输出文件格式NETCDF3_CLASSIC而不是NETCDF4输出大小设置为我期望的大小。NETCDF4 输出似乎臃肿。

0 投票
1 回答
4393 浏览

netcdf - 为 netCDF 文件中的一个变量定义一个新维度

我有一个 NetCDF 文件,其中包含许多变量(1d、2d、3d 和 4d)。我想为 3d 变量之一添加一个新维度。

为了更清楚,假设:

我有一个 3d 变量: A(d1, d2, d3)

我想要 4d 变量:A(d1, d2, d3, d4)

事实上,d4 是我想添加到变量中的新维度。我的文件中没有 d4。我知道它只有一个价值。

如果有人指导我,我将不胜感激。

0 投票
1 回答
1319 浏览

matlab - 如何修改变量及其在 netcdf 中的相应维度

我正在使用带有 netcdf 格式输出的大气模型进行理想化实验。但是netcdf文件头并没有清楚地描述变量和维度。例如 :

有4个维度,Time(Time)、zc(bottom_top)、yc(south_north)、xc(west_east)和5个变量,其中前4个变量应该是第五个变量的维度,即qc。但似乎不是。维度只是从 1 到 45、32 的序列号索引……其他什么。

我想计算一些变量,它是压力的函数。在 CDO 中的脚本是这样的

(此代码来自此处

但是当我使用这个函数 clev(qv) 时,我只是获得了一系列指数,比如 1 ,2 ,3 ...不是真正的压力水平。那么如何将变量维度(如 qc from qc(Time, bottom_top, south_north, west_east) ; to )重写为qc(Time, zc, yc, xc) ; 我认为我可以在 matlab 中完成此操作,但我只是不想打开这个数据集,因为它的大小太大......所以我试图找到一些工具,如 ncks 或 cdo,但仍然无法做到这一点。

多谢。

0 投票
2 回答
498 浏览

netcdf - 截断 netCDF

我有一个从 1850 年到 2005 年每月表面气温的 netCDF 文件。如何在 unix 中截断文件,以便新文件的时间维度为 1855 - 2005?反之亦然,截断文件以使其适用于 1850-2000?

0 投票
1 回答
672 浏览

python - 将边界变量添加到 netcdf 文件

我想将纬度范围添加到现有的 netCDF 文件中。见http://www.cgd.ucar.edu/cms/eaton/netcdf/CF-20010629.htm#bnds边界的定义。

有没有可以自动添加边界的命令?我对使用 nco 或 netCDF4 或 cdms 工具包的任何解决方案持开放态度。但是,我更希望它是一个后处理解决方案。

0 投票
1 回答
2350 浏览

python - 在 netcdf 文件中将所有变量和维度从 int/float 转换为 double

我有一个带有以下内容的 netCDF 文件。ncdump:

是否有 nco 命令将所有变量和维度从 int/float 转换为 double ?

我找到了这个:

但是,这一次只能使用一个变量,我的文件中有大约 30 个变量

0 投票
1 回答
132 浏览

unix - 使用 unix 中另一个文件的维度提取许多 netcdf 文件的一部分

我有几千个 .nc 文件,每个文件都需要修剪以匹配另一组文件的大小(纬度/经度)。我只想要 70-90N 的数据,但长文件包含全局数据。在 longFile1.nc 上运行 ncdump 给出

并在 shortFile1.nc 上运行 ncdump 给出

longFile1.nc 需要被削减,以便 dim = 8111。每个文件的短文件尺寸长度都会发生变化。我知道我需要每个长文件的开头,但每次的结尾都会不同。

我可以修剪 longFile1.nc

但我不知道如何为所有这些执行此操作,尤其是因为每个文件的长度都会发生变化。我还必须从索引 0-8010 开始保持正确的纬度范围。有没有办法从每个短文件中读取第一维,然后在上面的 nco 命令中为每个相应的长文件使用它?那 nco 命令甚至是最好的方法吗?

提前致谢!

0 投票
1 回答
975 浏览

netcdf - ncks 对多个小的 netcdf 文件附加缓慢

我的模型为每个时间步长和每个变量生成一个名为 DDDDDDD.VVV.nc 的 netcdf 文件,其中 DDDDDDD 是日期,VVV 是变量名。

对于每个时间步,我使用 nco 附加与不同变量对应的文件,以便每个时间步获取一个文件。

大约有 432 个输出变量,每个文件大约 6,4K 或 1,1K(变量的维数不一样)。

我发现这个过程非常慢(例如每个时间步长 15 秒),而文件非常小。知道我应该如何优化脚本吗?

0 投票
4 回答
3541 浏览

bash - 将低于阈值的值设置为 netcdf 文件中的阈值

我想在 netcdf 文件中将常数c以下的所有值设置为c本身:file.nc

使用气候数据运营商 (CDO) 的解决方案将是

但是有没有更简洁/更短的方法来做到这一点?