2014-10-14 7 views
1

GPX 파일에서 Numpy 배열로 추출한 GPS 트랙을 나타내려고합니다. 이를 위해 각 요소는 하나의 datetime과 3 개의 float를 포함하는 "trackpoint"유형입니다.GPX 트랙 포인트를 읽는 numpy.datype 지정

내가이 일을 시도하고 (실제로, 일부 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 

을, 어떻게하면 효율적으로 목록에서 훨씬 더 큰 배열을 만들어야합니까?

답변

1

As explained here 대신 datetime64 대신에 datetime64[m] (분) 이상을 사용해야하면 코드가 작동합니다. datetime64[s] 또는 datetime64[ms]과 같이 초 또는 밀리 초로 감소하는 datetime을 사용할 수도 있습니다.

trkptType = np.dtype([('time', 'datetime64[m]'), 
         ('lat', 'float32'), 
         ('lon', 'float32'), 
         ('elev', 'float32')])