本文整理汇总了Python中hyperspy.misc.utils.DictionaryTreeBrowser.get_item方法的典型用法代码示例。如果您正苦于以下问题:Python DictionaryTreeBrowser.get_item方法的具体用法?Python DictionaryTreeBrowser.get_item怎么用?Python DictionaryTreeBrowser.get_item使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类hyperspy.misc.utils.DictionaryTreeBrowser
的用法示例。
在下文中一共展示了DictionaryTreeBrowser.get_item方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: ImageObject
# 需要导入模块: from hyperspy.misc.utils import DictionaryTreeBrowser [as 别名]
# 或者: from hyperspy.misc.utils.DictionaryTreeBrowser import get_item [as 别名]
class ImageObject(object):
def __init__(self, imdict, file, order="C", record_by=None):
self.imdict = DictionaryTreeBrowser(imdict)
self.file = file
self._order = order if order else "C"
self._record_by = record_by
@property
def shape(self):
dimensions = self.imdict.ImageData.Dimensions
shape = tuple([dimension[1] for dimension in dimensions])
return shape[::-1] # DM uses image indexing X, Y, Z...
# For some image stacks created using plugins in Digital Micrograph
# the metadata under Calibrations.Dimension would not reflect the
# actual dimensions in the dataset, leading to these images not
# loading properly. To allow HyperSpy to load these files, any missing
# dimensions in the metadata is appended with "dummy" values.
# This is done for the offsets, scales and units properties, using
# the len_diff variable
@property
def offsets(self):
dimensions = self.imdict.ImageData.Calibrations.Dimension
len_diff = len(self.shape) - len(dimensions)
origins = np.array([dimension[1].Origin for dimension in dimensions])
origins = np.append(origins, (0.0,) * len_diff)
return -1 * origins[::-1] * self.scales
@property
def scales(self):
dimensions = self.imdict.ImageData.Calibrations.Dimension
len_diff = len(self.shape) - len(dimensions)
scales = np.array([dimension[1].Scale for dimension in dimensions])
scales = np.append(scales, (1.0,) * len_diff)
return scales[::-1]
@property
def units(self):
dimensions = self.imdict.ImageData.Calibrations.Dimension
len_diff = len(self.shape) - len(dimensions)
return (tuple([dimension[1].Units
if dimension[1].Units else ""
for dimension in dimensions]) + ('',) * len_diff)[::-1]
@property
def names(self):
names = [t.Undefined] * len(self.shape)
indices = list(range(len(self.shape)))
if self.signal_type == "EELS":
if "eV" in self.units:
names[indices.pop(self.units.index("eV"))] = "Energy loss"
elif self.signal_type in ("EDS", "EDX"):
if "keV" in self.units:
names[indices.pop(self.units.index("keV"))] = "Energy"
for index, name in zip(indices[::-1], ("x", "y", "z")):
names[index] = name
return names
@property
def title(self):
title = self.imdict.get_item("Name", "")
# ``if title else ""`` below is there to account for when Name
# contains an empty list.
# See https://github.com/hyperspy/hyperspy/issues/1937
return title if title else ""
@property
def record_by(self):
if self._record_by is not None:
return self._record_by
if len(self.scales) == 1:
return "spectrum"
elif (('ImageTags.Meta_Data.Format' in self.imdict and
self.imdict.ImageTags.Meta_Data.Format in ("Spectrum image",
"Spectrum")) or (
"ImageTags.spim" in self.imdict)) and len(self.scales) == 2:
return "spectrum"
else:
return "image"
@property
def to_spectrum(self):
if (('ImageTags.Meta_Data.Format' in self.imdict and
self.imdict.ImageTags.Meta_Data.Format == "Spectrum image") or
("ImageTags.spim" in self.imdict)) and len(self.scales) > 2:
return True
else:
return False
@property
def order(self):
return self._order
@property
def intensity_calibration(self):
ic = self.imdict.ImageData.Calibrations.Brightness.as_dictionary()
if not ic['Units']:
ic['Units'] = ""
return ic
#.........这里部分代码省略.........