diff --git a/edosl0util/jpssrdr.py b/edosl0util/jpssrdr.py index 9654c7315cc5e323f7380288b8eb3d45a6d15cf0..beef1e2f2bd22c6106d990423725a4946cf52a92 100644 --- a/edosl0util/jpssrdr.py +++ b/edosl0util/jpssrdr.py @@ -191,15 +191,23 @@ def _rdrs_for_packet_dataset(group): rdrs = [] if group: for name, buf in _generate_packet_datasets(group): - if buf.shape[0] < c.sizeof(StaticHeader): - LOG.warn('Not enough bytes for %s static header', name) + try: + rdr = _decode_rdr_blob(buf) + except ValueError as e: + LOG.warn('{} ({})'.format(e.message, name)) continue - header = StaticHeader.from_buffer(buf) - apids = _read_apid_list(header, buf) - rdrs.append(CommonRdr(buf, header, list(apids))) + rdrs.append(rdr) return rdrs +def _decode_rdr_blob(buf): + if buf.shape[0] < c.sizeof(StaticHeader): + raise ValueError('Not enough bytes for static header') + header = StaticHeader.from_buffer(buf) + apids = _read_apid_list(header, buf) + return CommonRdr(buf, header, list(apids)) + + def rdr_datasets(filepath): fobj = H5File(filepath) rdr = dict(