From fa80340330979efbd0f3d7e6d8d7430a267386fb Mon Sep 17 00:00:00 2001 From: tommyhlw Date: Wed, 7 Nov 2018 15:33:22 +0100 Subject: [PATCH 1/2] Update opus_reader.py modified get_medadata for more dynamic finding of metadata with find_key --- brukeropusreader/opus_reader.py | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/brukeropusreader/opus_reader.py b/brukeropusreader/opus_reader.py index fa1f41f..6534584 100644 --- a/brukeropusreader/opus_reader.py +++ b/brukeropusreader/opus_reader.py @@ -110,27 +110,19 @@ def generate_wavelengths(lxv_spc, fxv_spc, npt_spc): wavenumbers.append(arr) return wavenumbers +def find_key(buff,key): + hit = buff.find(key) + 8 + value = unpack_from('2000s', buff, hit)[0] + value = value[:value.find(b'\x00')] + return value def get_metadata(buff): - # Getting source of instruments - all_ins = tuple(find_all(b'INS', buff)) - inst = unpack_from('<3s', buff, all_ins[-1] + 8)[0] - # Getting source of infrared - all_src = tuple(find_all(b'SRC', buff)) - src = unpack_from('<3s', buff, all_src[-1] + 5)[0] - - dat = buff.find(b'DAT') + 8 - scandate = unpack_from('10s', buff, dat)[0] - - snm = buff.find(b'SNM') + 8 - snm_lab_material = unpack_from('22s', buff, snm)[0] - - meta = {'ins': inst, - 'src': src, - 'date': scandate, - 'snm': snm_lab_material} - return meta - + all_keys=['INS','SRC','DAT','SNM'] #Further keys can be added here e.g. 'TIM', 'SFM'... + for k in all_keys: + keystr= k + value=find_key(buff,keystr.encode('utf-8')) + meta[k] = value + return meta def filter_spc_params(end_spc, spc_param_list, npt_all): def indexes_of_valid_series(arr): From 01a9d76b31de321c7da55c0d40769ceb1fff95b4 Mon Sep 17 00:00:00 2001 From: t2 Date: Wed, 7 Nov 2018 16:51:21 +0100 Subject: [PATCH 2/2] Linting, meta_data initialization, adding TIM and SFM --- brukeropusreader/opus_reader.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/brukeropusreader/opus_reader.py b/brukeropusreader/opus_reader.py index 6534584..a6e7683 100644 --- a/brukeropusreader/opus_reader.py +++ b/brukeropusreader/opus_reader.py @@ -110,19 +110,23 @@ def generate_wavelengths(lxv_spc, fxv_spc, npt_spc): wavenumbers.append(arr) return wavenumbers -def find_key(buff,key): + +def find_key(buff, key): hit = buff.find(key) + 8 value = unpack_from('2000s', buff, hit)[0] value = value[:value.find(b'\x00')] return value + def get_metadata(buff): - all_keys=['INS','SRC','DAT','SNM'] #Further keys can be added here e.g. 'TIM', 'SFM'... + meta = {} + all_keys = ['INS', 'SRC', 'DAT', 'SNM', 'TIM', 'SFM'] for k in all_keys: - keystr= k - value=find_key(buff,keystr.encode('utf-8')) + keystr = k + value = find_key(buff, keystr.encode('utf-8')) meta[k] = value - return meta + return meta + def filter_spc_params(end_spc, spc_param_list, npt_all): def indexes_of_valid_series(arr):