我想将从GPX文件中提取的GPS轨迹表示为Numpy阵列。为此,每个元素都是" trackpoint"类型,包含一个日期时间和三个浮点数。
我正在尝试这样做(实际上,在使用某些XML库解析GPX文件之后):
import numpy
trkptType = numpy.dtype([('time', 'datetime64'),
('lat', 'float32'),
('lon', 'float32'),
('elev', 'float32')])
a = numpy.array([('2014-08-08T03:03Z', '30', '51', '40'),
('2014-08-08T03:03Z', '30', '51', '40')], dtype=trkptType)
但是我收到了这个错误:
ValueError: Cannot create a NumPy datetime other than NaT with generic units
我做错了什么,如何以有效的方式从某个列表中创建更大的数组呢?
答案 0 :(得分:1)
As explained here,您必须使用至少datetime64[m]
(分钟),而不是datetime64
,那么您的代码将起作用。您还可以使用低至秒或毫秒的日期时间,例如datetime64[s]
或datetime64[ms]
。
trkptType = np.dtype([('time', 'datetime64[m]'),
('lat', 'float32'),
('lon', 'float32'),
('elev', 'float32')])