##// END OF EJS Templates
Add online mode for PedestalInformation and azimuth correction
jespinoza -
r1450:a3d6874ef541
parent child
Show More
@@ -4049,6 +4049,8 class PedestalInformation(Operation):
4049 def __init__(self):
4049 def __init__(self):
4050 Operation.__init__(self)
4050 Operation.__init__(self)
4051 self.filename = False
4051 self.filename = False
4052 self.delay = 20
4053 self.nTries = 3
4052
4054
4053 def find_file(self, timestamp):
4055 def find_file(self, timestamp):
4054
4056
@@ -4059,7 +4061,6 class PedestalInformation(Operation):
4059 return False, False
4061 return False, False
4060 fileList = glob.glob(os.path.join(path, '*.h5'))
4062 fileList = glob.glob(os.path.join(path, '*.h5'))
4061 fileList.sort()
4063 fileList.sort()
4062 print(fileList)
4063 return fileList
4064 return fileList
4064
4065
4065 def find_next_file(self):
4066 def find_next_file(self):
@@ -4079,17 +4080,27 class PedestalInformation(Operation):
4079 dt = datetime.datetime.utcfromtimestamp(self.utctime)
4080 dt = datetime.datetime.utcfromtimestamp(self.utctime)
4080 path = os.path.join(self.path, dt.strftime('%Y-%m-%dT%H-00-00'))
4081 path = os.path.join(self.path, dt.strftime('%Y-%m-%dT%H-00-00'))
4081 self.filename = os.path.join(path, 'pos@{}.000.h5'.format(int(self.utcfile)))
4082 self.filename = os.path.join(path, 'pos@{}.000.h5'.format(int(self.utcfile)))
4082 print('ACQ time: ', self.utctime, 'POS time: ', self.utcfile)
4083
4083 print('Next file: ', self.filename)
4084 for n in range(self.nTries):
4084 if not os.path.exists(self.filename):
4085 ok = False
4085 log.warning('Waiting for position files...', self.name)
4086 try:
4086
4087 if not os.path.exists(self.filename):
4087 if not os.path.exists(self.filename):
4088 log.warning('Waiting {}s for position files...'.format(self.delay), self.name)
4088
4089 time.sleep(self.delay)
4090 continue
4091 self.fp.close()
4092 self.fp = h5py.File(self.filename, 'r')
4093 log.log('Opening file: {}'.format(self.filename), self.name)
4094 ok = True
4095 break
4096 except:
4097 log.error('No new position files found in {}'.format(path))
4089 raise IOError('No new position files found in {}'.format(path))
4098 raise IOError('No new position files found in {}'.format(path))
4090 self.fp.close()
4099
4091 self.fp = h5py.File(self.filename, 'r')
4100 if not ok:
4092 log.log('Opening file: {}'.format(self.filename), self.name)
4101 log.error('No new position files found in {}'.format(path))
4102 raise IOError('No new position files found in {}'.format(path))
4103
4093
4104
4094 def get_values(self):
4105 def get_values(self):
4095
4106
@@ -4099,7 +4110,7 class PedestalInformation(Operation):
4099 index = int((self.utctime-self.utcfile)/self.interval)
4110 index = int((self.utctime-self.utcfile)/self.interval)
4100 return self.fp['Data']['azi_pos'][index], self.fp['Data']['ele_pos'][index]
4111 return self.fp['Data']['azi_pos'][index], self.fp['Data']['ele_pos'][index]
4101
4112
4102 def setup(self, dataOut, path, conf, samples, interval, wr_exp):
4113 def setup(self, dataOut, path, conf, samples, interval, az_offset):
4103
4114
4104 self.path = path
4115 self.path = path
4105 self.conf = conf
4116 self.conf = conf
@@ -4116,13 +4127,13 class PedestalInformation(Operation):
4116 log.log('Opening file: {}'.format(self.filename), self.name)
4127 log.log('Opening file: {}'.format(self.filename), self.name)
4117 self.fp = h5py.File(self.filename, 'r')
4128 self.fp = h5py.File(self.filename, 'r')
4118
4129
4119 def run(self, dataOut, path, conf=None, samples=1500, interval=0.04, wr_exp=None, offset=0):
4130 def run(self, dataOut, path, conf=None, samples=1500, interval=0.04, az_offset=0, time_offset=0):
4120
4131
4121 if not self.isConfig:
4132 if not self.isConfig:
4122 self.setup(dataOut, path, conf, samples, interval, wr_exp)
4133 self.setup(dataOut, path, conf, samples, interval, az_offset)
4123 self.isConfig = True
4134 self.isConfig = True
4124
4135
4125 self.utctime = dataOut.utctime + offset
4136 self.utctime = dataOut.utctime + time_offset
4126
4137
4127 self.find_next_file()
4138 self.find_next_file()
4128
4139
@@ -4133,9 +4144,11 class PedestalInformation(Operation):
4133 dataOut.flagNoData = True
4144 dataOut.flagNoData = True
4134 return dataOut
4145 return dataOut
4135
4146
4136 dataOut.azimuth = az
4147 dataOut.azimuth = az - az_offset
4148 if dataOut.azimuth < 0:
4149 dataOut.azimuth += 360
4137 dataOut.elevation = el
4150 dataOut.elevation = el
4138 # print('AZ: ', az, ' EL: ', el)
4151
4139 return dataOut
4152 return dataOut
4140
4153
4141 class Block360(Operation):
4154 class Block360(Operation):
General Comments 0
You need to be logged in to leave comments. Login now