python - 分析 GPX 数据时出现错误“'NoneType' 对象没有属性 'offset'”
问题描述
我在学习 Python(https://towardsdatascience.com/how-tracking-apps-analysis-your-gps-data-a-hands-on-tutorial-in-python-756d4db6715d)的同时关注本教程。
我正处于要绘制“时间”和“海拔”的步骤。但是当我这样做时:
plt.plot(df['time'], df['ele'])
plt.show()
我收到错误“'NoneType' 对象没有属性 'offset'”。如果我绘制“经度”和“纬度”,一切正常。我自己找不到解决这个问题的方法。到目前为止,这是“我的”代码:
import gpxpy
import matplotlib.pyplot as plt
import datetime
from geopy import distance
from math import sqrt, floor
import numpy as np
import pandas as pd
import chart_studio.plotly as py
import plotly.graph_objects as go
import haversine
#Import Plugins
gpx_file = open('01_Karlsruhe_Schluchsee.gpx', 'r')
gpx = gpxpy.parse(gpx_file)
data = gpx.tracks[0].segments[0].points
## Start Position
start = data[0]
## End Position
finish = data[-1]
df = pd.DataFrame(columns=['lon', 'lat', 'ele', 'time'])
for point in data:
df = df.append({'lon': point.longitude, 'lat' : point.latitude,
'ele' : point.elevation, 'time' : point.time}, ignore_index=True)
print(df)
plt.plot(df['time'], df['ele'])
plt.show()
解决方案
从“时间”列中删除时区可能会奏效。您可以使用tz_localize
. 请注意,您必须调用方法dt
来访问列日期时间属性:
df['time'] = df['time'].dt.tz_localize(None)
推荐阅读
- windows - 使用 Powershell 将文件名和文件内容的值分配给模板
- laravel - 对 docker 容器使用 nginx 反向代理
- java - 如何在 JAVA 中显示所有具有 4 个元素的子集?
- python - 从下拉菜单中选择硒
- reactjs - react-bootstrap-sweetalert 根本没有样式
- sql - 使用 dsjob 命令运行服务器作业时,datastage 作业失败,代码=-14 DSJE_TIMEOUT
- laravel - Laravel 查询“仅当”条件
- c++ - 当注入程序的内存空间时,如何读取从 0 到 0xFFFFFFFFF 的每个字节?我正在创建模式扫描仪
- python-3.x - 如何从字典中过滤一个值,这个字典在python中包含多个值?
- php - 如何在不重新定义变量的情况下将字符串影响到变量