python - 用 python 平均多个 netCDF4 文件

标签 python numpy average netcdf4

我是 python 菜鸟中的 netCDF,所以请原谅这个菜鸟问题。

我有一个文件夹,里面装满了大约 3650 个 netCDF4 文件。十年来每天一个文件。奈尔斯被命名为 yyyymmdd.nc(例如 20100101、20100102、20100103 等)。每个 .nc 文件都包含同一区域(汤加专属经济区的一部分)在同一时间点的纬度、经度和温度。

我想做的是计算所有文件中每个纬度和经度的平均温度,即我想最终得到一个 .nc 文件,该文件具有相同的纬度和经度以及 10 年的平均温度。

我尝试过不同的东西/代码版本,通常,它们最终看起来像这样......

files = glob('*.nc')
ds = xr.open_mfdataset(files,)
mean = np.mean(ds['temp'][:, 0].values)

......这段代码会给我一个 .nc 文件中所有 .nc 文件的平均温度,而不是基于纬度和经度的十年文件的平均温度。

非常感谢所有帮助。

谢谢。

最佳答案

假设您在 linux/macOS 上工作,这可以使用我的 nctoolkit 包轻松完成(参见详细信息 here)。

以下将计算所有文件的平均值,然后绘制结果:

import nctoolkit as nc
files = glob('*.nc')
ds = nc.open_data(file)
ds.ensemble_mean()
ds.plot()

nctoolkit 默认使用 CDO 作为后端,但也可以使用 NCO,从而提高性能。所以以下可能会更快:

import nctoolkit as nc
files = glob('*.nc')
ds = nc.open_data(file)
ds.ensemble_mean(nco=True)
ds.plot()

关于python - 用 python 平均多个 netCDF4 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67868777/

相关文章:

python - 如何为 N 个骰子生成 "Go First"骰子?

c# - 从 C# 执行 python

r - 如何在R中按小时计算变量的平均值

python - 如何循环遍历目录中的 csv 文件并将值写入二维列表?

python - 跨多个文档的字符串搜索 - grep?

python - 如何在 TensorFlow 中实现 Numpy where 索引?

python - 通过矩阵与向量元素相乘构建 NXN 矩阵的 Numpy 方法

python-3.x - 从具有不同分隔符的结构化 numpy 数组写入行

c++ - 我如何使用 opencv 取 100 张图像的平均值?

php - 如何计算表数据库的平均值