首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >时间序列重采样-时间位置均匀

时间序列重采样-时间位置均匀
EN

Stack Overflow用户
提问于 2015-11-19 15:53:55
回答 1查看 1.4K关注 0票数 3

正如地球科学中经常发生的那样,我有一个时间序列的职位(龙,拉特)。时间序列的时间间隔不均匀。时间抽样看上去如下:

代码语言:javascript
运行
复制
    t_diff_every_position = [3.99, 1.00, 3.00, 4.00, 3.98, 3.99, ... ]

我和每一个T都有关联:

代码语言:javascript
运行
复制
   lat = [77.0591,  77.0547,  77.0537, 74.6766,  74.6693,  74.6725, ... ]
   lon = [-135.2876, -135.2825, -135.2776, -143.7432, -143.7994,
   -143.8582, ... ]

我想重新采样位置,使数据集在时间上间隔均匀。所以我希望时间向量看起来像:

代码语言:javascript
运行
复制
    t_resampled = [4.00, 4.00, 4.00, 4.00, 4.00, 4.00, ... ]

并通过插值获得相关联的位置。

这些位置不遵循单调函数,所以我不能使用通常的重新采样和插值函数。位置随时间变化

有没有人知道如何实现这一目标?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-20 16:42:53

一种方法是分别对经度和纬度进行插值。下面是一个有一些模拟数据的例子。

假设我们有100个经度(lon)、纬度(lat)和时间戳(t)。时间不规则:

代码语言:javascript
运行
复制
>>> t
array([ 0.        ,  1.09511126,  1.99576514,  2.65742629,  3.35929893,
        4.1379694 ,  5.55703942,  6.52892196,  7.64924527,  8.60496239])

由这些坐标绘制的路径看起来类似于:

我们使用interp1d对纬度和经度分别进行线性插值:

代码语言:javascript
运行
复制
from scipy.interpolate import interp1d
f_lon = interp1d(t, lon)
f_lat = interp1d(t, lat)

然后,我们制作了一个常规时间戳( [1, 2, 3, ..., 100] )阵列,并对我们的纬度和经度进行了重采样:

代码语言:javascript
运行
复制
reg_t = np.arange(0, 99)
reg_lon = f_lon(reg_t)
reg_lat = f_lat(reg_t)

下面的图显示了在正则区间np.arange(0, 99, 5)上插值的结果。这是一个比您想要的更粗的间隔,因为如果使用更细的间隔,很难看出每个图中实际上有两个函数。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33808554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档