def _get_new_rows(self, rf_file_basename):
"""_get_new_rows is a private method that returns all needed rows for self.metadata in the correct recarray
format for rf_file_basename, or None if that file has disappeared
Inputs:
rf_file_basename - rf file to examine
Throws IOError if global indices overlap with previous metadata
"""
# read data from /rf_data_index
fullname = os.path.join(self.top_level_dir, self.channel_name, self.subdirectory, rf_file_basename)
try:
f = h5py.File(fullname, 'r')
except IOError:
# presumably file deleted
return(None)
rf_data_index = f['/rf_data_index']
samples_per_file = f['rf_data'].attrs['samples_per_file'][0]
if self.samples_per_file is None:
self.samples_per_file = int(samples_per_file)
elif self.samples_per_file != int(samples_per_file):
raise IOError, 'Illegal change in samples_per_file from %i to %i in file %s' % (self.samples_per_file, int(samples_per_file),
fullname)
# create recarray
new_rows = numpy.zeros((len(rf_data_index),),dtype=self.data_t)
new_rows['unix_sample_index'] = rf_data_index[:,0]
new_rows['file_index'] = rf_data_index[:,1]
new_rows['rf_basename'] = rf_file_basename
f.close()
return(new_rows)
digital_rf_deprecated_hdf5.py 文件源码
python
阅读 35
收藏 0
点赞 0
评论 0
评论列表
文章目录