我有一段代碼需要從LabJack和接近傳感器獲取數據。它在無限循環記錄電壓值上運行,直到用戶停止。爲什麼datetime.datetime跳過重複和跳過時間值?
不過,我已經注意到一些奇怪的地方我的x軸的時間值的列表似乎有更多的數字比我的陰謀的分辨率顯示。也就是說,我的x軸時間值似乎只是每10毫秒繪製一個點,但我的程序每3.8秒收集5000個數據點,這應該等於小於每1毫秒的數據點。
然後我看了看我的數據,我看到的問題。以下是我的x軸值列表中的前幾個數字。
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00999999999999801, 0.00999999999999801, 0.00999999999999801, 0.00999999999999801, 0.00999999999999801, 0.00999999999999801, 0.00999999999999801, 0.00999999999999801, 0.00999999999999801, 0.00999999999999801, 0.00999999999999801, 0.020000000000003126, 0.020000000000003126, 0.020000000000003126, 0.020000000000003126, 0.020000000000003126, 0.020000000000003126, 0.020000000000003126, 0.020000000000003126, 0.020000000000003126, 0.020000000000003126, 0.020000000000003126, 0.020000000000003126, 0.020000000000003126, 0.030000000000001137, 0.030000000000001137, 0.030000000000001137, 0.030000000000001137, 0.030000000000001137, 0.030000000000001137, 0.030000000000001137, 0.030000000000001137, 0.030000000000001137, 0.030000000000001137, 0.030000000000001137, 0.030000000000001137, 0.030000000000001137, 0.03999999999999915, 0.03999999999999915, 0.03999999999999915, 0.03999999999999915, 0.03999999999999915, 0.03999999999999915, 0.03999999999999915, 0.03999999999999915, 0.03999999999999915, 0.03999999999999915, 0.03999999999999915, 0.03999999999999915, 0.03999999999999915, 0.04999999999999716, 0.04999999999999716,... etc.
出於某種原因,代碼10次或更多次通過10毫秒增加的值,並做同樣的事情之前重複每一時間值。以下是記錄電壓和時間的代碼循環。相關行是我定義self.t0
,tcurr
和t
的行。
def startData(self):
print "Starting data collection"
self.t0 = float(datetime.now().strftime('%S.%f')[:-3])
while True:
with self.data_lock:
while not self.data_loop:
ain0bits, = self.d.getFeedback(u3.AIN(0))
tcurr = datetime.now()
volts = self.d.binaryToCalibratedAnalogVoltage(ain0bits, isLowVoltage = False, channelNumber = 0)
t = float(tcurr.strftime('%S.%f')[:-3]) - self.t0 #note, approximate - will be just after voltage was read.
self.tdict.append(t)
self.vdict.append(volts)
self.i += 1
任何幫助表示讚賞!
您的系統是否實際上有比'datetime.now()'釐秒的分辨率嗎? – user2357112
你是說你有'tdict'與'vdict'相比有不同數量的條目嗎? – Prophecies
@ user2357112我該如何檢查?是不是所有的電腦都至少有毫秒級的分辨率?是否有另一個Python包可以讓我獲得那種時間解析?我不需要精確的絕對時間,我需要精確的相對時間,就像秒錶而不是時鐘。 – RBuntu