scipy 使用xarray沿着一条线进行高级插值

7gs2gvoe  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(57)

我想用xarray沿着沿着红线内插和外推空气值。我是按照文档中的示例进行的,但我漏掉了一些东西,我想我的代码是为整个图像内插的?我只想为红线:

如何将插值限制在红线上?这是代码:

ds = xr.tutorial.open_dataset("air_temperature")
ds_mean = ds.air.mean(dim='time')

def line(x,A):
    return x, A*x

x, y = line(np.linspace(ds_mean.lon[0], ds_mean.lon[-1], 30), 0.1)
dsi = ds_mean.interp(lon=x, lat=y, kwargs={"fill_value":"extrapolate"})

fig, axes = plt.subplots(ncols=2, figsize=(10, 4))

ds_mean.plot(ax=axes[0],zorder=0, alpha=0.4)
axes[0].plot(x,y,'o',zorder=10)
axes[0].set_title("Mean Air")


dsi.plot(ax=axes[1])

axes[1].set_title("Mean air along one line")

字符串

mm9b1k5b

mm9b1k5b1#

我也遵循了相同的文档,我看到的与您所做的主要区别是使用DataArray插值而不是使用简单的linspace插值
试图取代

x, y = line(np.linspace(ds_mean.lon[0], ds_mean.lon[-1], 30), 0.1)

字符串

x = xr.DataArray(np.linspace(ds_mean.lon[0], ds_mean.lon[-1], 30),dims="new_coord")

y = xr.DataArray(np.linspace(ds_mean.lat[0], ds_mean.lat[-1], 30),dims="new_coord")


重要的是,如文档中所述,将一个公共的新维度关联到x,y(在我的示例中为“new_coord”)
希望它能帮助

相关问题