我想使用xarray处理具有时间相关坐标的数据集。更准确地说,我处理以风暴为中心的预测,这导致维度(时间,纬度,经度)发生变化,但是纬度,经度是风暴移动时时间的函数。
似乎xarray中没有本机处理这种情况的方法,但是可能的解决方法是什么?独立地存储每个时间步很麻烦,但是,使用xr.concat始终导致一个纬度,经度坐标...我想知道应用time1.interp_like(time2)是否会有所帮助。从本质上讲,随着时间的推移,用nan填充所有时间步长,直到lat,lon随着时间的最大延长。
如果您的目标是绘图,则可以使用非三维坐标来解决此问题。
考虑以下玩具示例。这里j
和i
是“逻辑”尺寸,其不对应于任何物理位置(只是数组索引),而lon
与lat
是与时间相关的地理坐标。
import xarray as xr
import numpy as np
# create a dummy dataset
ds = xr.Dataset({'foo': (('time', 'j', 'i'), np.random.rand(10, 30, 30))})
# add non-dimension coordinates that depend on time
ds.coords['lon'] = 190 + 0.25 * ds.i + 0.01 * ds.time
ds.coords['lat'] = 24 + 0.25 * ds.j + 0.02 * ds.time
print(ds)
# select a specific time and plot
ds.foo.sel(time=5).plot(x='lon', y='lat')
数据集代表是
<xarray.Dataset>
Dimensions: (i: 30, j: 30, time: 10)
Coordinates:
lon (i, time) float64 190.0 190.0 190.0 190.0 ... 197.3 197.3 197.3
lat (j, time) float64 24.0 24.02 24.04 24.06 ... 31.39 31.41 31.43
Dimensions without coordinates: i, j, time
Data variables:
foo (time, j, i) float64 0.7443 0.2943 0.4479 ... 0.5386 0.3574 0.5597
该图如下所示:
您可以将这种方法适应您描述的场景
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句