fix issue with integers on windows where default is 32bit
This commit is contained in:
@@ -2,5 +2,5 @@
|
||||
Package to handle data redction at AMOR instrument to be used by eos.py script.
|
||||
"""
|
||||
|
||||
__version__ = '2.1'
|
||||
__version__ = '2.1.0'
|
||||
__date__ = '2024-08-25'
|
||||
|
||||
@@ -252,13 +252,13 @@ class AmorData:
|
||||
if nb_helpers:
|
||||
self.wallTime_e = nb_helpers.extract_walltime(self.tof_e, self.dataPacket_p, self.dataPacketTime_p)
|
||||
else:
|
||||
self.wallTime_e = np.empty(np.shape(self.tof_e)[0], dtype=int)
|
||||
self.wallTime_e = np.empty(np.shape(self.tof_e)[0], dtype=np.int64)
|
||||
for i in range(len(self.dataPacket_p)-1):
|
||||
self.wallTime_e[self.dataPacket_p[i]:self.dataPacket_p[i+1]] = self.dataPacketTime_p[i]
|
||||
self.wallTime_e[self.dataPacket_p[-1]:] = self.dataPacketTime_p[-1]
|
||||
#if not self.startTime and not norm:
|
||||
# self.startTime = self.wallTime_e[0]
|
||||
self.wallTime_e -= self.seriesStartTime
|
||||
self.wallTime_e -= np.int64(self.seriesStartTime)
|
||||
logging.debug(f' wall time from {self.wallTime_e[0]/1e9} to {self.wallTime_e[-1]/1e9}')
|
||||
|
||||
def monitor_threshold(self):
|
||||
@@ -348,12 +348,12 @@ class AmorData:
|
||||
|
||||
def read_event_stream(self):
|
||||
self.tof_e = np.array(self.hdf['/entry1/Amor/detector/data/event_time_offset'][:])/1.e9
|
||||
self.pixelID_e = np.array(self.hdf['/entry1/Amor/detector/data/event_id'][:], dtype=int)
|
||||
self.pixelID_e = np.array(self.hdf['/entry1/Amor/detector/data/event_id'][:], dtype=np.int64)
|
||||
self.dataPacket_p = np.array(self.hdf['/entry1/Amor/detector/data/event_index'][:], dtype=np.uint64)
|
||||
#self.dataPacketTime_p = np.array(self.hdf['/entry1/Amor/detector/data/event_time_zero'][:], dtype=np.uint64)/1e9
|
||||
self.dataPacketTime_p = np.array(self.hdf['/entry1/Amor/detector/data/event_time_zero'][:], dtype=float)
|
||||
try:
|
||||
self.currentTime = np.array(self.hdf['entry1/Amor/detector/proton_current/time'][:], dtype=int)
|
||||
self.currentTime = np.array(self.hdf['entry1/Amor/detector/proton_current/time'][:], dtype=np.int64)
|
||||
self.current = np.array(self.hdf['entry1/Amor/detector/proton_current/value'][:,0], dtype=float)
|
||||
if len(self.current)>0:
|
||||
self.monitorType = 'protonCharge'
|
||||
|
||||
@@ -17,7 +17,7 @@ def extract_walltime(tof_e, dataPacket_p, dataPacketTime_p):
|
||||
# assigning every event the wall time of the event packet (absolute time of pulse ?start?)
|
||||
totalNumber = np.shape(tof_e)[0]
|
||||
#wallTime_e = np.empty(totalNumber, dtype=np.float64)
|
||||
wallTime_e = np.empty(totalNumber, dtype=int)
|
||||
wallTime_e = np.empty(totalNumber, dtype=np.int64)
|
||||
for i in nb.prange(len(dataPacket_p)-1):
|
||||
for j in range(dataPacket_p[i], dataPacket_p[i+1]):
|
||||
wallTime_e[j] = dataPacketTime_p[i]
|
||||
|
||||
@@ -465,7 +465,7 @@ class AmorReduction:
|
||||
'''
|
||||
if len(lambda_e)==0:
|
||||
# no more events in range, return empty bins
|
||||
return [np.zeros(dimension, dtype=int).tolist()]*(len(lamda_edges)-1)
|
||||
return [np.zeros(dimension, dtype=np.int64).tolist()]*(len(lamda_edges)-1)
|
||||
if len(lamda_edges)==2:
|
||||
# deepest recursion reached, all items should be within the two ToF edges
|
||||
return [np.bincount(position_e, minlength=dimension).tolist()]
|
||||
|
||||
Reference in New Issue
Block a user