Source code for E200.E200_api_getUID
import os as _os
on_rtd = _os.environ.get('READTHEDOCS', None) == 'True'
if not on_rtd:
import numpy as _np
from . import classes
[docs]def E200_api_getUID(dataset, val, f=None):
"""
Return all UIDs where *val* is equal to the value of the ``dat`` member of *dataset* (which must be either an :class:`E200.Drill` or an :class:`h5py:Group` class).
Returns an ``array`` of UIDs.
"""
if type(dataset) == classes.Drill:
dataset = dataset._hdf5
if f is None:
f = dataset.file
uids = dataset['UID']
vals = dataset['dat']
uids = uids[:, 0]
try:
vals = convertH5ref(vals, f)
except:
vals = _np.array(vals).flatten()
return uids[vals == val]
def convertH5ref(dataset, f):
"""
Dereferences *dataset* of type :mod:`h5py._hl.files.File` using file *f*
"""
vals = _np.array([])
for ref in dataset[:, 0]:
vals = _np.append(vals, f[ref])
return vals