Skip to main content

HyperSpy - read the calibration information in a dm3/dm4 file

Some example of dm3 file reading by using Python HyperSpy package, which can read the detail information of the dm file.

--
# import packages
import numpy as np
import hyperspy.api as hs


# load file
sp=hs.load('sp.dm3')

# Read the axis information     
# Print all the calibration detail
print(sp.axes_manager)

'''
<Axes manager, axes: (272|2042)>
            Name |   size |  index |  offset |   scale |  units 
================ | ======= | ====== | ======= | ======= | ====== 
                   x |    272 |      0 |       -0 |  0.0025 |     µm 
 --------------- |  ------ | ----- |  ------ | ------- | ------ 
  Energy loss |  2042 |         | 3.2e+02 |       1 |     eV 

'''

# axis 0
print('\n\n')
print('----- information in axis 0 -----')
print('size = '+ str(sp.axes_manager[0].size))
print('offset = '+ str(sp.axes_manager[0].offset))
print('scale = ' + str(sp.axes_manager[0].scale))
print('units : ' + sp.axes_manager[0].units+'\n')

'''
----- information in axis 0 -----
size = 272
offset = -0.0
scale = 0.0025309091433882713

units : µm

'''

# axis 1
print('----- Operation in axis 1 -----')
print(sp.axes_manager[1].name)
print('Energy shift = '+ str(sp.axes_manager[1].offset) +' '+ sp.axes_manager[1].units)
print('Scale = '+ str(sp.axes_manager[1].scale) +' '+ sp.axes_manager[1].units)

'''
----- Operation in axis 1 -----
Energy loss
Energy shift = 320.9004211425781 eV

Scale = 1.0 eV

'''

Comments

Popular posts from this blog

Top hat filter

The top_hat filter can be used to detect the relatively small edges/peaks superimposed on large background signals. The concept came from the EELS workshop during IMC19. Thanks to Prof. Nestor J. Zaluzec. -- // Using Top_hat digital filter to detect the  relatively small edges  //    superimposed on large background signals. // // ref: Ultramicroscopy 18 (1985) 185-190  //      Digital Filters  for Application to Data Analysis in EELS //      by Nestor J. ZALUZEC // Parameters: // win_s: signal window (default:3) // win_b: background window (default:3) //  a_s : amplitude of signal (fixed value) //  a_b : amplitude of background  (fixed value) // Renfong 2018/10/11 // Main function image Top_Hat_Filter(image img, number win_s, number win_b) { // read image string fname=img.GetName() number sx,sy img.getsize(sx,sy) // filter image img2 := imageclone(img)*0 //the area between...

MLLS in matlab

MLLS stands for  multiple linear least squares fitting, which is the common strategy for the solving EELS edge overlapping and which is also built-in the GMS software. The target spectrum Y and the reference spectrum X Y = A * X Assuming Y is 1*256 matrix and we have three reference spectrums, ie, X is 3*256 matrix. So A is 1*3 matrix. The target is to solve A. If Y and X are n*n matrices, we can use the simple formula Y * inv(X) = A * X * inv(X), ie., A = Y * inv(X). However, Y and X are not n*n  matrices, it is necessary to have some trick to solve it. We can multiply the transpose matrix to produce n*n matrix. Y * X' = A * X * X'  (ps X' means the transpose matrix of X) so A = Y * X' * inv(X * X') Here is the Matlab code: =========  % create target spectrum x=0:256; c=[90,120,155]; sig=[5,10,8]; int=[5,10,8]; xn=zeros(size(x)); ref=zeros(length(c),length(x)); factor=rand(size(c))'; for i=1:length(c)     xn=xn+int(i)*ex...