如何插入多维 xarray?

How to interpolate a multidimensional xarray?

我使用 xarray 读取了一个 netCDF 文件。数据集包含 population 年份的 latlon 信息:1975、1990、2000 和 2015。

数据集如下所示,我也提供了它 here:

import xarray as xr
ds = xr.open_dataset('borneo_pop_t.nc')
ds

对于每个像素,鉴于我拥有的数据点的趋势,我希望获得 1975 年至 2000 年之间每年的信息。特别是,我想为缺失的年份生成更多信息和不同层次的人口。

我该怎么做?

可以使用xarray的插值function

使用您的变量名,

import pandas as pd

# Create time series of 1x a year data
# (you can use any date range; you can generate pretty much 
# any sequence you need with pd.date_range()) 
dates = pd.date_range('1975-01-01','2015-01-01',freq='1Y') 

# Linear interpolation
ds_interp = ds.interp(time=dates)

注意几点:

  1. 虽然 ds.interp() 支持 scipy.interpolate.interp1d() 所做的一切 - 例如,三次、多项式等插值,但此代码仅生成一个简单的线性插值。查看上面链接的码头以获取示例。
  2. 这当然不会创建新信息;您仍然只“知道”原始点的人口。请注意插值数据会对您了解给定年份的实际人口数量产生什么影响。