首页 > 解决方案 > Python - 当索引只有 1 个值时如何合并/合并数据集

问题描述

我对 XArray 库很陌生,并且在使用 concat/merge 函数时遇到了困难。

所以我有几个具有这种坐标的数据集

<xarray.Dataset>
Dimensions:        (latitude: 721, longitude: 1440)
Coordinates:
    number         int64 0
    time           datetime64[ns] 2019-09-01
    step           timedelta64[ns] 00:00:00
    isobaricInhPa  int64 1000
  * latitude       (latitude) float64 90.0 89.75 89.5 ... -89.5 -89.75 -90.0
  * longitude      (longitude) float64 0.0 0.25 0.5 0.75 ... 359.2 359.5 359.8
    valid_time     datetime64[ns] 2019-09-01
Data variables:
    t              (latitude, longitude) float32 ...

每个都描述了不同压力水平 ( isobaricInhPa) 和不同日期 ( time) 的大气温度。我想合并到一个独特的数据集中。例如,我只保留描述独特压力水平的那些,但在不同的日期。我从 grib 文件中收集不同的数据集匹配日期和压力,然后使用它们latitudelongitudeisobaricInhPatime.

为此,我试图转向time维度isobaricInhPa。但是,由于它们只有 1 个值,numpy.ndarray因此决定它是一个 0 维数组。在其他情况下,我会使用np.atleast_1d(time)or np.atleast_1d(isobaricInhPa)。在这种情况下,以下代码不起作用。

ds = ds.set_index({entry: entry})

我得到错误:

Exception has occurred: TypeError
DatetimeIndex() must be called with a collection of some kind, numpy.datetime64('2019-11-01T00:00:00.000000000') was passed

在这种情况下如何合并?如何避免覆盖数据,因为库只使用latitudeandlongitude而不是timeand isobaricInhPa

标签: pythonnumpypython-xarray

解决方案


推荐阅读