我一直在解析R中的一些GPS轨迹,并且以为我会在Python中尝试同样的事情,即使我的Python技能很弱。
一切顺利,直到
df = pd.DataFrame(columns=['lon', 'lat', 'alt', 'time'])
for point in data:
df = df.append({'lon': point.longitude, 'lat' : point.latitude, 'alt' : point.elevation, 'time' : point.time}, ignore_index=True)
这给我一个以结尾结尾的错误
TypeError:不可哈希类型:'SimpleTZ'
一个GPS点看起来像这样:
GPXTrackPoint(40.08285088, -75.19106663, elevation=144.4, time=datetime.datetime(2019, 10, 22, 18, 36, 41, tzinfo=SimpleTZ("Z")))
我正在Windows上通过Anaconda在Jupyter中使用Python 3.7.0。
我更愿意用区域解析时间戳,但如果这样会使事情变得容易得多,我愿意放弃该区域。
我感觉这比gpxpy问题更多是熊猫问题。甚至是一般的时区问题?
无论如何,这种与https://ocefpaf.github.io/python4oceanographers/blog/2014/08/18/gpx/稍有不同的方法确实有效
data = []
gpx = gpxpy.parse(open(gpxfile))
track = gpx.tracks[0]
segment = track.segments[0]
for point_idx, point in enumerate(segment.points):
data.append([point.longitude, point.latitude,
point.elevation, point.time, segment.get_speed(point_idx)])
columns = ['Longitude', 'Latitude', 'Altitude', 'Time', 'Speed']
df = DataFrame(data, columns=columns)