Update opus_reader.py

modified get_medadata for more dynamic finding of metadata with find_key
This commit is contained in:
tommyhlw 2018-11-07 15:33:22 +01:00 committed by GitHub
parent 311d29cf4a
commit fa80340330
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 19 deletions

View File

@ -110,28 +110,20 @@ def generate_wavelengths(lxv_spc, fxv_spc, npt_spc):
wavenumbers.append(arr) wavenumbers.append(arr)
return wavenumbers 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): def get_metadata(buff):
# Getting source of instruments all_keys=['INS','SRC','DAT','SNM'] #Further keys can be added here e.g. 'TIM', 'SFM'...
all_ins = tuple(find_all(b'INS', buff)) for k in all_keys:
inst = unpack_from('<3s', buff, all_ins[-1] + 8)[0] keystr= k
# Getting source of infrared <NIR/MIR> value=find_key(buff,keystr.encode('utf-8'))
all_src = tuple(find_all(b'SRC', buff)) meta[k] = value
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 return meta
def filter_spc_params(end_spc, spc_param_list, npt_all): def filter_spc_params(end_spc, spc_param_list, npt_all):
def indexes_of_valid_series(arr): def indexes_of_valid_series(arr):
return list(arr).index(min(filter(lambda x: x > 0, arr))) return list(arr).index(min(filter(lambda x: x > 0, arr)))