【问题标题】:xarray - Merge multiple DataArray objects with overlapping or missing time coordinatesxarray - 合并多个具有重叠或缺失时间坐标的 DataArray 对象
【发布时间】:2021-12-21 02:47:46
【问题描述】:

我有多个 netCDF 文件,它们使用具有三个维度 [timelatitudelongitude] 的 xarray 加载到 DataArray 对象中。

latitudelongitude 坐标相同,但有些坐标在 time 维度中有重叠或缺失的坐标。

**da1**:

time    (time)    datetime64[ns]    2017-10-03T18:00:00 ... 2017-10-...

array(['2017-10-03T18:00:00.000000000', '2017-10-03T19:00:00.000000000',
       '2017-10-03T20:00:00.000000000', '2017-10-03T21:00:00.000000000',
       '2017-10-03T22:00:00.000000000', '2017-10-03T23:00:00.000000000',
       '2017-10-04T00:00:00.000000000', '2017-10-04T01:00:00.000000000',
       '2017-10-04T02:00:00.000000000', '2017-10-04T03:00:00.000000000',
       '2017-10-04T04:00:00.000000000', '2017-10-04T05:00:00.000000000',
       '2017-10-04T06:00:00.000000000', '2017-10-04T07:00:00.000000000',
       '2017-10-04T08:00:00.000000000', '2017-10-04T09:00:00.000000000',
       '2017-10-04T10:00:00.000000000', '2017-10-04T11:00:00.000000000',
       '2017-10-04T12:00:00.000000000', '2017-10-04T13:00:00.000000000',
       '2017-10-04T14:00:00.000000000', '2017-10-04T15:00:00.000000000',
       '2017-10-04T16:00:00.000000000', '2017-10-04T17:00:00.000000000',
       '2017-10-04T18:00:00.000000000', '2017-10-04T19:00:00.000000000'],
      dtype='datetime64[ns]')

**d2**:
time
(time)
datetime64[ns]
2017-10-04T13:00:00 ... 2017-10-...

array(['2017-10-04T13:00:00.000000000', '2017-10-04T14:00:00.000000000',
       '2017-10-04T15:00:00.000000000', '2017-10-04T16:00:00.000000000',
       '2017-10-04T17:00:00.000000000', '2017-10-04T18:00:00.000000000',
       '2017-10-04T19:00:00.000000000', '2017-10-04T20:00:00.000000000',
       '2017-10-04T21:00:00.000000000', '2017-10-04T22:00:00.000000000',
       '2017-10-04T23:00:00.000000000', '2017-10-05T00:00:00.000000000',
       '2017-10-05T01:00:00.000000000', '2017-10-05T02:00:00.000000000',
       '2017-10-05T03:00:00.000000000', '2017-10-05T04:00:00.000000000',
       '2017-10-05T05:00:00.000000000', '2017-10-05T06:00:00.000000000',
       '2017-10-05T07:00:00.000000000', '2017-10-05T08:00:00.000000000',
       '2017-10-05T09:00:00.000000000', '2017-10-05T10:00:00.000000000',
       '2017-10-05T11:00:00.000000000', '2017-10-05T12:00:00.000000000',
       '2017-10-05T13:00:00.000000000', '2017-10-05T14:00:00.000000000'],
      dtype='datetime64[ns]')

我想通过time 坐标运行“concat”或“merge”或“combine”它们。时间坐标将从“2017-10-03T18:00:00.000000000”到“2017-10-05T14:00:00.000000000”。使用发生重叠坐标的较新值。例如,使用来自 da2 的值,其中 time = '2017-10-04T13:00:00.000000000'。如果输入 DataArray 对象中缺少 time 坐标,请使用 nan

我试过了:

da_merged = xr.merge([da2, da1], compat="override")

但我最终得到了一大堆nan 值,用于da1 中的时间坐标。我可以告诉我应该使用哪些方法/参数吗

【问题讨论】:

    标签: python pandas numpy python-xarray


    【解决方案1】:

    我希望你解决了它,但对我来说它只是做:

    da_merged=xr.Dataset()
    file_paths_list =[da1,da2]
    
    for file in file_paths_list:
    
            da_merged = xr.merge([da_merged,xr.open_mfdataset(file)],compat='override')
    

    【讨论】:

      猜你喜欢
      • 2017-10-10
      • 2020-07-15
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-02
      • 2019-03-04
      • 2016-08-12
      相关资源
      最近更新 更多