问题标签 [cdo-climate]

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 投票
0 回答
397 浏览

python - netCDF4-python 网格坐标 CDO 失败

我正在使用 netCDF4-python 创建 netCDF4 文件。

要创建维度变量:

要创建其他变量:

它适用于 panoply 或 ncdump,但是当使用

网格坐标显示“通用”而不是“lonlat”,并且不出所料 cdo 不能子集数据集:

这里有人知道解决方案吗?谢谢,

——杰

0 投票
1 回答
732 浏览

bash - 在 netcdf 文件中将浮点数转换为字节

我有一个带有标准浮点字段的大型 netcdf 文件,该字段仅包含 0.0 或 1.0。我想从命令行将它转换为字节类型以节省一些空间,并且也更容易在数组中读取到 fortran 中的字节类型。

我尝试使用 ncap

但它似乎只是将所有字段归零。我在源文件上使用 zip_6 netcdf4 压缩,我不确定这是否会使事情复杂化?

更新:我发现 ncap2 适用于字节

但我不明白为什么两者不同?这可能是内存问题,因为在尝试转换为“int”而不是“byte”时,ncap 和 ncap2 都因内存分配失败。

0 投票
2 回答
1072 浏览

r - 从 netcdf 文件为特定坐标创建时间序列

我目前正在尝试从 CRU 全球陆地降水数据创建降水数据的时间序列。我正在工作的文件有 60 个时间片,从 2011 年到 2015 年。

到目前为止,我的代码是:

当我尝试运行它时出现以下错误:

'plot.window(...) 中的错误:需要有限的 'ylim' 值此外:警告消息:1:在 min(x) 中:min 没有非缺失参数;返回 Inf 2:在 max(x) 中:max 没有非缺失参数;返回-Inf'

正如您从上面看到的那样,我正在尝试为一系列坐标创建一个时间序列,如果找到这些点的平均值然后绘制一个时间序列更简单,我会这样做但也有困难。这是我第一次尝试 netCDF 文件,所以我对它并不过分自信,任何关于如何做到这一点的建议将不胜感激!

0 投票
2 回答
1369 浏览

netcdf - nco 将每日 netcdf 文件剪切为 10 分钟文件

我有一个每日 netcdf 文件(20060101),时间维度有 144 个步骤,所以文件中有 10 分钟的时间步骤。现在我想用 nco 为每 10 分钟的时间步创建一个 netcdf 文件。所以最后它应该创建 144 个文件。

我已经在他们使用的地方找到了类似的问题

ncks -d time,min,max,stride infile.nc outfile.nc

但我不知道如何编写创建这 144 个文件的代码。有人可以帮我弄这个吗?谢谢你的帮助!

0 投票
2 回答
243 浏览

python - NetCDF:如何提取跨越边界的数据?

我有一个具有 4 个维度的 NetCDF 文件:时间、级别、纬度和经度。数据的形状是:1, 60, 1440, 2880

这意味着有1个时间点,60个级别,1440个纬度和2880个经度。

纬度范围从 -90 到 90,增量为 0.125。例如:

经度范围从 0 到 360,增量为 0.125。例如:

我有一个带有 GPS 位置的“站”:station.lat, station.lon = 22.125, 275.250. 将经度转换为 360 度网格空间:station.lon = station.lon%360.0

我想提取一个关于我站的立方体。例如,左侧 5 个单元格,右侧 5 个单元格和所有级别。(包括站所在小区)

为此,我得到了latwithin的索引和withinlats的索引。lonlons

然后,我创建了一系列索引,用于从 netCDF 文件中提取数据:

让我们想象一下

然后我提取数据:

这很好用,但是,索引 2880 将代表 360 度,所以如果我的点位于边界附近(即它的经度被映射到 2879 的索引),我需要回到起点。我lon_index_range会看起来像这样:

现在提取我的数据将无法正常工作...

同样,我不能有这样的东西:factor[:,1220:1231,2879:8)

纬度也存在同样的问题......因为我的观点可能在纬度边界附近。

有谁知道我该如何解决这个问题?

0 投票
2 回答
494 浏览

unix - 当其中一个维度不受限制时,如何使用 NCO 进行连接?

我有很多带有以下标题的文件:

所有文件都涵盖相同的时间段,我想通过grp. 基本上,每个文件都有 100grp秒。

我怎样才能做到这一点?

0 投票
0 回答
68 浏览

python - 合并一个目录中的所有 NETCDF 文件

我有 NETCDF 格式的每日数据,每个“.nc”文件都包含一年的数据,而我有 1948 年到 2017 年的数据。文件名如下:tmax.2m.gauss.1948.nc tmax.2m.gauss .1949.nc .. tmax.2m.gauss.2017.nc

我想将它们全部合并到一个“.nc”文件中。我不知道如何准确地使用“CDO”或“ncrcat”。我写了这个:

但我收到错误,它不起作用。有谁知道我如何将所有 70 个 NETCDF 文件合并到一个文件中?

0 投票
1 回答
1549 浏览

bash - Bash 脚本通过占位符循环遍历 netCDF 文件并使用 cdo 命令

我想循环浏览 40 个 netCDF 文件。有 20 个带有变量的PRECC文件和 20 个带有变量PRECL("modelmember001.PRECC.192001-200512.nc", "modelmember002.PRECC.192001-200512.nc", ... ,"modelmember020.PRECC.192001-200512.nc"和 for的文件PRECL)。

我需要使用循环执行多个 cdo(气候数据运算符)命令(添加 PRECC 和 PRECL 文件,并将时间序列从 1920-2005 更改为 1955-2005)。

这是我使用的代码:

最终我需要 20 个同名的文件

这是我在运行代码时得到的结果(故意在 cdo 行前面加上一个“echo”):

我的代码似乎没有遍历成员。我使用占位符“成员”的方式有问题,但我不知道如何解决它。有人有建议吗?干杯!

0 投票
2 回答
2141 浏览

r - 使用 R 的 netcdf 栅格堆栈或栅格砖的时间和地理子集

对于以下包含 2016 年每日全球海面温度的 netcdf 文件,我正在尝试 (i) 时间上的子集,(ii) 地理上的子集,(iii) 然后为每个像素采用长期平均值并创建一个基本图。

文件链接:这里

设置我的工作目录后打开 netcdf

更改时间变量,以便于解释

更改为我可以解释的日期

现在我只想将 9 月 1 日到 10 月 15 日进行子集化,但无法弄清楚......

在时间子集之后,创建栅格砖(或堆栈)和地理子集

地理上的子集

最后,我想取我所有数据天数中每个像素的平均值,将其分配给单个栅格,并制作一个简单的绘图...

感谢您的任何帮助和指导。

0 投票
1 回答
1845 浏览

extract - 提取和求和 NetCDF 变量的某些层

我有一个 NetCDF 文件,这是一个截断的输出ncdump -h

我需要的是从变量中提取和求和PCT_CFT沿维度的第 3、4、61 和 62 层的值cft,然后总结几乎所有剩余的层(即 5-60、63、64)并将这两个结果相加分别PCT_NAT_PFT沿维度作为第 16 层和第 15 层的变量natpft

如果可能的话,我想使用 NCO(或 CDO)来实现这一点,我想避免使用 Python 或 R 等其他工具......我只知道如何在整个维度上对变量求和,而不是仅在选定层之间求和 - 我因此可能可以解决这个问题,但我想知道是否有更好和更清洁的方法来解决这个问题。