Skip to content
Snippets Groups Projects

Add header readout for offline files. Closes #13

Merged Zineb Aly requested to merge add-header into master
2 files
+ 14
2
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 16
0
import uproot
import warnings
# 110 MB based on the size of the largest basket found so far in km3net
BASKET_CACHE_SIZE = 110 * 1024**2
@@ -319,6 +320,7 @@ class OfflineReader:
self._mc_hits = None
self._mc_tracks = None
self._keys = None
self._header = None
def __getitem__(self, item):
return OfflineReader(file_path=self._file_path, data=self._data[item])
@@ -326,6 +328,20 @@ class OfflineReader:
def __len__(self):
return len(self._data)
@property
def header(self):
if self._header is None:
fobj = uproot.open(self._file_path)
if b'Head;1' in fobj.keys():
self._header = {}
for n, x in fobj['Head']._map_3c_string_2c_string_3e_.items():
print("{:15s} {}".format(n.decode("utf-8"), x.decode("utf-8")))
self._header[n.decode("utf-8")] = x.decode("utf-8")
if b'Header;1' in fobj.keys():
warnings.warn("Your file header has an unsupported format")
return self._header
@property
def keys(self):
"""wrapper for all keys in an offline file.
Loading