【问题标题】:How to read all NetCDF files in one directory and create one single NetCDF file with the same variable atributes of one the files?如何读取一个目录中的所有 NetCDF 文件并创建一个具有相同变量属性的单个 NetCDF 文件?
【发布时间】:2020-04-09 19:24:40
【问题描述】:

我在一个目录中有数百个 3D Netcdf 文件。我想首先在 for 循环中一次读取目录中存在的所有 Netcdf 数据,并创建一个具有与单个文件之一相同的变量和属性的 NetCDF 文件,例如 -Fill_value missing_value Lon 和 @ 987654324@。一个文件中有多个变量属于同一月份。

每个数据的维度:1x180x360,最后我的文件应该是280x180x360

所有数据都包含相同的变量和属性。?

cdo merge file.nc file2.nc file.nc new_file.nc    

不起作用,因为我正在使用 Windows 和 Python 3.7。

from netCDF4 import Dataset

file1 = 'D:\DATA\gls_SWE5K_202001_NHEMI_SSMIS_v0.nc'
data = Dataset(file1, 'r')

TW=  data.variables['tw'][:]
Pre = data.variables['pre'][:]
Tem = data.variables['tem'][:]
Lonn = data.variables['lon'][:]
Lat = data.variables['lat'][:]
Time = data.variables['time'][:]

非常感谢任何帮助,

【问题讨论】:

  • 嗨,Ehsan,很不清楚你想做什么,是文件的简单 cdo 合并时间吗?蟒蛇从哪里来?请尝试澄清

标签: multidimensional-array 3d netcdf


【解决方案1】:

如果您使用的是 Windows 10,则可以从 Microsoft 商店安装 Ubuntu,假设它是您自己的机器。

从那里可以直接安装cdonco。我个人会使用后者,因为它是一个更轻量级的包,你只需要使用ncrcat 命令。

如果您没有安装任何东西的权限,恐怕您可能使用了错误的工具来完成这项工作。

【讨论】:

  • 亲爱的罗伯特,感谢您的回复。实际上我有 linux 并且已经在我嵌入 Windows 10 的 linux 机器上安装了 cdo。这很好用。 cdo mergetime *.nc Goutput_file.nc
【解决方案2】:

cdo一起,我们可以使用pythonxarray一次打开多个netcdf文件,如下所示,更简单:

xarray.open_mfdataset('path/to/my/files/*.nc', concat_dim="time")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-28
    • 2018-10-10
    • 2018-07-18
    • 2013-02-14
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多