时序数据插值,对GPS采样数据进行线性插值

2023-05-16

此篇为上一篇的接续,对时序数据进行插值

上篇文章 解析kml文件,提取经纬度信息存入csv
将kml里面的信息提取了出来,但是有些数据间隔太大,甚至几十秒才一个采样点,需求对这样的数据进行插值,形成每秒一个采样点的数据,代码较简单,主要应用了scipy库的 interpolate 方法,希望对有同样需求的小伙伴有所帮助。

import pandas as pd
import os
import time
from scipy import interpolate

FinalPath = './final/'
CsvPath = './CSV/'
files = os.listdir(CsvPath)

for file in files:
    start = time.time()

    name, _ = os.path.splitext(file)
    filepath = CsvPath + file
    # 读入数据,对时间进行处理
    print('dealing ' + file)

    df = pd.read_csv(filepath)
    # df.drop_duplicates(subset=['time'], keep='first', inplace=True)
    df['time_diff'] = df['time'].apply(lambda x: pd.to_datetime(x)).diff()
    df['time_diff'] = df['time_diff'].apply(lambda x: x.total_seconds())
    df['time_diff'].fillna(0, inplace=True)
    df['time_t'] = df['time_diff'].cumsum(axis=0)

    a = int(df['time_t'].values.max())
    b = int(df.shape[0])
    print(f'时间范围 {a} s')
    # print(f'原数据 {b} s')
    print(f'需要添加 {a - b + 1} s数据')
    # print(df.head())
    # print(b)

    # 计算需要插值的坐标点
    t = list(df['time_t'].values)
    # print(len(t))
    t_all = [i for i in range(a)]
    insert_t = list(set(t_all).difference(set(t)))
    print(len(insert_t))

    # 计算插值
    y_lon = df['Lon'].values
    y_lat = df['Lat'].values
    y_alt = df['altitude'].values

    Flinear_lon = interpolate.interp1d(t, y_lon, kind='linear')
    y_new_lon = Flinear_lon(insert_t)
    # y_new_lon = np.array(y_new_lon).tolist()
    y_new_lon = [round(yi, 6) for yi in y_new_lon]

    Flinear_lat = interpolate.interp1d(t, y_lat, kind='linear')
    y_new_lat = Flinear_lat(insert_t)
    # y_new_lat = np.array(y_new_lat).tolist()
    y_new_lat = [round(yi, 6) for yi in y_new_lat]

    Flinear_alt = interpolate.interp1d(t, y_alt, kind='linear')
    y_new_alt = Flinear_alt(insert_t)
    # y_new_alt = np.array(y_new_alt).tolist()
    y_new_alt = [round(yi, 1) for yi in y_new_alt]

    # 插值的表
    df_t = pd.DataFrame(insert_t, columns=['time_t'])
    df_lon = pd.DataFrame(y_new_lon, columns=['Lon'])
    df_lat = pd.DataFrame(y_new_lat, columns=['Lat'])
    df_alt = pd.DataFrame(y_new_alt, columns=['altitude'])

    df_insert = pd.concat([df_t, df_lon, df_lat, df_alt], axis=1)

    # 与原表合并,形成秒采数据
    df = pd.concat([df, df_insert], ignore_index=True, join='inner', axis=0)
    df.sort_values(by='time_t', inplace=True, ascending=True, ignore_index=True)
    # print(df)

    df.to_csv(FinalPath + name + '_interpolated.csv', index=False)
    # print('done at ' + time.strftime('%Y-%m-%d %H:%M:%S'))

    end = time.time()
    print('time cost: ' + str(round((end-start), 3)) + ' s')
    print('--' * 20)
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

时序数据插值,对GPS采样数据进行线性插值 的相关文章

  • 如何在 Android 中找到附近的应用程序用户?

    我正在制作一个应用程序 需要能够找到附近的人 他们是我的应用程序的用户 我看了很多类似问题的答案 似乎我别无选择 只能不断将用户的当前位置上传到服务器 并在必要时获取附近的用户列表 那么我的问题是 1 要获取附近的列表 应该有一些计算距离的
  • 如何从广播接收器中取消注册侦听器并停止服务

    在我的应用程序中 我有一个广播接收器 当接收到短信中的关键字时 它会启动一项跟踪手机 GPS 位置的服务 我这样做使用 context startService new Intent context TrackGPS class 我还需要能
  • Android GPS 的准确度如何? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我好像在某处读过Android的GPS精度约为10厘米 任何人都可以验证或更正这个吗 原因是我正在尝试开发的应用程序会跟踪用户访问过的位置 这将极大地
  • 使用 GPS 获取 Android 手机的位置

    我还有一个关于基本 Android 编程的问题 如何访问 GPS 来获取运行应用程序的手机的当前位置 检索信息需要多长时间 在这种情况下 GPS 可能被禁用 如何再次启用 禁用它 必须在 andorid 清单中授予哪些权限 问候并感谢您的回
  • GPS 对比加速度计计算距离

    我正在尝试实现一个健身应用程序 可以在Android 中跟踪跑步速度和跑步距离 看起来我可以使用 GPS 或加速度计来计算这些信息 由于跑步者可能会将手机放在手里 放在肩膀上或放在口袋里 所以我的第一直觉是使用 GPS 获取位置并计算跑步速
  • 在不改变我的位置的情况下获取当前位置的经度和纬度

    我可以找到当前位置的纬度和经度 但是这些数据在更改我的当前位置之前不会显示 我想在不更改我的位置的情况下获取当前位置的经度和纬度 package com example gps import android app Activity imp
  • Google 地图 (Android) 中的位置更新率

    我正在编写一个简单的基于 GPS 的应用程序 用于位置感知 每当启用 GPS 时 应用程序都会请求位置更新并以格式打印纬度和经度 TextView 如果 GPS 被禁用 位置提供商会回退到LocationManager NETWORK PR
  • 根据步行速度在 2 个 GPS 位置之间进行插值

    Problem 给定两个位置 L1 latitude1 longitude1 timestamp1 L2 latitude2 longitude2 timestamp2 以及可配置但恒定的移动速度 v 1 39 米每秒 例如 How can
  • C# - LINQ - GPS 纬度和经度的最短距离

    我有数据库 其中有带有 GPS 坐标的一流酒店 我想获得距离我选择的坐标最近的地方 我认为它应该看起来像这样 我在这里找到了很多示例代码 就像这样 var coord new GeoCoordinate latitude longitude
  • 帮助使用 GPS 坐标,Android

    我正在使用此代码来获取我的位置并在屏幕上打印坐标 package com example alpha import android app Activity import android content Context import and
  • GPS 坐标(以度为单位)来计算距离

    在iPhone上 我以十进制度数获取用户的位置 例如 纬度39 470920和经度 0 373192 也就是A点 我需要用另一个 GPS 坐标 同样以十进制表示 B 点创建一条线 然后 计算从 A 到 B 的线与另一个点 C 之间的距离 垂
  • LocationManager requestLocationUpdates minTime OR minDistance

    我用的是安卓系统LocationManager及其方法requestLocationUpdates像这样 locationManager requestLocationUpdates LocationManager GPS PROVIDER
  • 使用 iPhone 版 gmap 中的经纬度计算两个地点之间的距离 [重复]

    这个问题在这里已经有答案了 可能的重复 GPS 坐标 以度为单位 来计算距离 https stackoverflow com questions 6994101 gps coordinates in degrees to calculate
  • 向 tk103 GPS 跟踪器发送命令

    我正在使用 php 开发实时 GPS 跟踪器 Web 应用程序 跟踪器参考号是tk103 我可以从跟踪器接收信息并将其存储到数据库中 设备的 GPRS 模式已启用 我的问题是 如何使用 php ini 将命令从服务器发送到设备 提前致谢 这
  • 如何找到特定路线上两点之间的距离?

    我正在为我的大学开发一个 Android 应用程序 可以帮助学生跟踪大学巴士的当前位置 并为他们提供巴士到达他们的预计时间 截至目前 我获取了公交车的当前位置 通过公交车上的设备 和学生的位置 我陷入了必须找到两个 GPS 坐标之间的距离的
  • 在 iOS 上从 GPS 获取时间

    我正在开发一个跟踪器应用程序 该应用程序需要高精度地了解设备位置 即它使用位置服务并忽略水平精度低于 20 米的位置 CLLocation没有明确声明是否通过 GPS 确定 但是 如果水平精度为 20 米或更好 则可以认为它是来自 GPS
  • iOS:应用程序在安装应用程序时不会征求用户的许可。每次都获取 kCLAuthorizationStatusNotDetermined - Objective-c 和 Swift

    我正在尝试在我的 iOS 应用程序中获取用户位置 我首先在我的项目中包含了核心定位框架 然后单击按钮 我将调用核心位置 api 如下所示 当我尝试在设备中安装它时 核心位置从不询问用户许可 当我尝试获取单击按钮时的位置时 我得到 kCLAu
  • 如何在从另一个活动调用一个活动时延迟一些?

    我有一个应用程序 其中我正在接收包含他的位置的短信 收到短信后 它会调用另一个活动来启动并将该位置传递给该活动以将其绘制在地图上 在调用第二个活动之前 它会显示一个类似于通知的吐司在屏幕上 但由于调用第二个活动 吐司没有出现 我的问题是我们
  • 我可以使用手机信号塔的信息在没有 GPS 服务的 j2me 中获取移动设备的位置吗

    我可以通过 j2me 编程获取未安装 GPS 装置的移动设备的位置吗 我可以使用手机信号塔信息获取位置吗 我听说过三角测量 https stackoverflow com a 9820133 839601 method 并且经历了http
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp

随机推荐

  • 基于can总线的A2L文件解析(3)

    文章目录 前言MOD COMMONMOD PARXCP数据Common Parameters定义IF DATA定义XCPPROTOCOL LAYERDAQEVENTXCP ON CANCAN Parameters 总结 前言 在第二篇A2L
  • 功放电路里三极管的工作状态:甲类、乙类和甲乙类怎么区分?

    1 甲类功放管的工作点电流设计在放大区的线性区中点 xff0c 所以静态电流较大 一般在800mA 1 5A之间 xff0c 不同功率的功放管是其最佳工作点电流是不同的 xff0c 其静态发热量较大 xff0c 所需的散热片也要面积较大 x
  • 文件操作原理

    文件描述符 文件描述符在形式上是一个非负整数 实际上 xff0c 它是一个索引值 xff0c 指向内核为每一个进程所维护的该进程打开文件的记录表 当程序打开一个现有文件或者创建一个新文件时 xff0c 内核向进程返回一个文件描述符 在程序设
  • C++头文件和变量的那些事儿

    头文件和变量的那些事儿 头文件变量在内存中函数与其链接性namespace关键字using声明和using编译指令命名空间的特性未命名空间 new关键字使用new运算符初始化new运算符 函数 头文件 最近在github上拔了一个项目 xf
  • Ubuntu18系统下采集点云数据(速腾16线激光雷达)与ZED 2 相机进行外参标定(Matlab的LCC工具箱)

    这篇是最近的实验记录 xff1a 在Ubuntu系统下读取点云数据并在rviz中显示 xff0c 录制自己的rosbag数据包并离线播放 xff0c 将rosbag文件转化为pcd格式导入MATLAB中 xff0c 和双目相机进行外参标定
  • 基于STM32的高精度超声波模块HC-SR04测距

    准备材料 超声波模块 H C S R 04 HC SR04 H C
  • linux系统实现tcp协议通讯

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 一 tcp通讯的链接二 使用步骤1 引入库2 读入数据 注意 提示 xff1a 以下是本篇文章正文内容 xff0c 下面案例可供
  • 无人机拉力测试台-无人机拉力、扭矩、转速测试教学

    无人机动力系统 测试实验实训教学课程 amp nbsp 实验课程3 xff1a 动力系统基础测试参数测试实验 课程内容 xff1a 1 amp nbsp 无人机动力系统基础测试参数解读 2 amp nbsp 无人机动力系统基础参数测试实验
  • 无人机拉力测试台-无人机动力系统匹配试验

    无人机动力系统 测试实验实训教学课程 amp nbsp 实验指引 一 实验开设背景 人社部2020年8月27号在 新职业 无人机装调检修工就业景气现状分析报告 中说明 xff0c 预计未来五年无人机装调检修工需求量约350万人 无人机装调检
  • 无人机动力测试-无人机电机、螺旋桨、电调测试

    无人机动力系统 测试实验实训教学课程 实验课程4 xff1a 动力系统基本参数测量与验证 课程内容 xff1a 1 amp nbsp 动力系统性能参数及性能特性曲线 2 amp nbsp 动力系统性能参数及性能特性曲线测试实验 实验器材 x
  • ubuntu18.04环境搭建

    1 ubuntu安装make xff1a sudo apt install make sudo apt install make guile 2 ubuntu上安装git xff1a 运行Ubuntu的主机 打开终端 xff0c 输入 su
  • 从0到1!Ubuntu上搭建Kubernetes Cluster

    目录 一 环境准备 二 初始化工作 1 设置root用户密码 2 使用xshell连接三台主机 3 设置主机名和修改hosts文件 4 安装依赖软件以及关闭停用不需要使用的软件 5 时间的同步与时区设置 6 关闭swap分区 7 在 kub
  • 傅立叶变换和拉普拉斯变换的区别

    傅立叶变换可以看做拉普拉斯变换的特殊形式 拉氏变换就是将原时域函数乘上一个与o相关的衰减 子 因为傅氏变换要求绝对可积 xff0c 但实际上很多函数不满足 xff0c 乘上衰减因子之后就基本都可以 了 之后做傅氏变换得来 假如这个为0就还是
  • 一篇让你完全弄懂GPIO的8种配置模式

    前言 配置GPIO口是我们软件开发中必须要掌握的 xff0c 每个模式的作用效果也是需要清楚的 如果连gpio应该配置成什么模式都不懂 xff0c 是无法进行后面的开发的 1 输入模式 1 1 浮空输入模式 I O端口的电平信号进入输入数据
  • 上位机与下位机的通讯

    一 概念 上位机 xff1a 是指人可以直接发出操作命令的计算机 xff0c 一般指PC 人机界面等 发出的命令首先给下位机 xff0c 下位机再根据命令解释成相应的时序信号 xff0c 直接控制相应设备 下位机 xff1a 直接控制设备获
  • OptiTrack Motive 使用教程

    相机标定 最近在使用Quanser的地面车做实验 xff0c 需要用到OptiTrack系统进行定位 xff0c 记录一下使用过程 xff0c 供需要的人参考 本文参考了以下博客 xff1a https blog csdn net banz
  • 一种int型、float型转char型以及回转方法

    摘要 xff1a 本文讲述一种可以在STM32F103C8T6上面运行的一种int型 float型转char型以及回转方法 xff0c 一般用于计算好的数据输入到传感器中或物联网器件中 xff1b 把传感器中的数据提取出来计算等等 实验时间
  • Ubuntu18 python多版本管理切换

    一 背景 Ubuntu18 04电脑 xff0c 安装有python2 7和python3 6 9两个python版本 xff0c 目前像安装另一款软件 xff0c 依赖要求是python gt 61 3 7 xff0c 但又不想删除pyt
  • 解决“E: Package ‘libqtgui4‘ has no installation candidate”无法安装qt4

    使用场景 xff1a Ubuntu20 4 xff0c VMware16pro 笔者在安装Ubuntu下的网络调试助手NetAssist xff0c 遇到了 E Package libqtgui4 has no installation c
  • 时序数据插值,对GPS采样数据进行线性插值

    此篇为上一篇的接续 xff0c 对时序数据进行插值 上篇文章 解析kml文件 xff0c 提取经纬度信息存入csv 将kml里面的信息提取了出来 xff0c 但是有些数据间隔太大 xff0c 甚至几十秒才一个采样点 xff0c 需求对这样的