【问题标题】:Combining NetCDF files using Xarray使用 Xarray 组合 NetCDF 文件
【发布时间】:2021-01-22 22:16:09
【问题描述】:

我正在尝试使用 xarray 组合多个 NetCDF 文件。

这是我的尺寸:

Dimensions:        (Time: 1, XCells: 2000, YCells: 1000) 
Coordinates:
    longitude      (YCells, XCells) float32 
    latitude       (YCells, XCells) float32
  * Time           (Time) datetime64[ns]  
Dimensions without coordinates: XCells, YCells

组合 by_coords 仅适用于一维坐标。 combining spatial netcdf files using xarray python

但是,当我使用 combine="nested" 时,它会重复时间的纬度和经度。

float longitude(Time, YCells, XCells);
longitude:_FillValue = NaNf;
float latitude(Time, YCells, XCells);
latitude:_FillValue = NaNf;

纬度和经度是二维的,但在整个时间里都是一样的。 Xarray 有没有办法组合这些数据?

【问题讨论】:

  • 你想合并这两个文件吗?在这种情况下,xr.concat([file1, file2], concat_dim='time') 应该可以工作。
  • 感谢您的建议!这导致了重复的纬度和经度——我的经度和纬度是二维的。通过操作 numpy 数组并将它们转换为 NetCDF 数据集,我能够成功地组合数据集。
  • 我理解你的问题。是的,concat 会以这种方式重复原来的原始暗淡。也许 xarray 有一种更简单的方法来处理这个问题,但我也会通过分配新的 lon 和 lat 坐标来处理它。太好了,它对您有用,请发布您的答案,以便将来对某人有用:)

标签: python numpy netcdf python-xarray netcdf4


【解决方案1】:

我使用 netcdf-python 和 numpy 按时间组合文件。

将一个数据集复制到另一个数据集的代码类似于 Xavier Ho 的解决方案: python netcdf: making a copy of all variables and attributes but one

我不想重复的变量我直接复制了。对于随时间变化的时间维度和变量,我使用 numpy 切片更改了复制表达式。

【讨论】:

    猜你喜欢
    • 2018-12-31
    • 2018-04-23
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 2020-06-19
    • 1970-01-01
    • 2013-12-18
    相关资源
    最近更新 更多