Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • May 27 20:14
    ericpre commented #2949
  • May 27 18:50
    thomasaarholt opened #2949
  • May 27 18:50
    thomasaarholt labeled #2949
  • May 27 10:41
    hakonanes commented #2947
  • May 26 18:39
    ericpre labeled #2948
  • May 26 18:38
    ericpre edited #2948
  • May 26 18:37
    ericpre commented #2944
  • May 26 18:21
    CSSFrancis commented #2944
  • May 26 18:18
    codecov[bot] commented #2948
  • May 26 18:05
    codecov[bot] commented #2948
  • May 26 17:59
    ericpre synchronize #2948
  • May 26 17:51
    codecov[bot] commented #2876
  • May 26 17:50
    ericpre labeled #2935
  • May 26 17:49
    ericpre labeled #2948
  • May 26 17:49
    ericpre milestoned #2948
  • May 26 17:49
    ericpre opened #2948
  • May 26 17:35
    codecov[bot] commented #2876
  • May 26 17:35
    CSSFrancis synchronize #2876
  • May 26 17:02
    ericpre labeled #2946
  • May 26 17:02
    ericpre milestoned #2946
Eric R. Hoglund
@erh3cq
Are there any EXELFS functions or plugins for HyperSpy?
Francisco de la Peña
@francisco-dlp
Is it an EDX model? The issue may be that more elements require more memory—are you saturating your memory by any chance?
1 reply
Markus Wollgarten
@w-markus
Dear all, a rather simple question: when loading dm3 files of diffraction data the metadata only contains the 'General' branch. Is there a signal type one should request upon loading, that more metadata fields are available even if not filled yet? Thanks a lot! Markus
5 replies
Mingquan Xu
@Mingquan_Xu_twitter
image.png
1 reply
A simple question: how to improve this fitting.
I used a "g1 = hs.model.components1D.Gaussian()" to do this fit and want to get the center of this peak.
Jonas Lähnemann
@jlaehne
kociak
@kociak
Dear all. I have an annoying issue with installing hyperspy for use in an environment having the last version of nionswift. The conflict comes from the fact that hs requires numba, and numba requires numpy <=1.20 (hs installs 1.20.3). But nionswift requires numpy 1.21.4 (I guess for the Typing functionalities). My question: can we switch off the use of numba in hyperspy? thanks guys
7 replies
kociak
@kociak
@thomasaarholt: lean and fit. i'll take a look at that and tell you if that works (hopefully I won't get stuck by another hidden compatibility issue :)
Javalde91
@Javalde91

Well, this does the job:

s.plot()
roi = hs.roi.RectangularROI(0.0, 0.0, 0.00001, 0.00001)
roi_signal = roi.interactive(s)

Hello Thomas and everyone, I'm trying to apply a CirleROI but I would like it to have it interactive way, is it possible to do it? Thanks

4 replies
Amina Saleh
@Amina_saleh_twitter
Hi, I used to get my spectrum images in color. Now, when I downloaded another version on another laptop, I only get grayscale rather than colorscale. How can I retrieve the color scale back?
1 reply
Joshua F Einsle
@jeinsle
I am trying to layout some results figures for collaborators and trying to be slightly more efficent than my normal save a plot and layout in powerpoint I decided to try set this up in hyperspy. What I would like to get is figure which looks like this example in the 'Visualisation' section of the Hyperspy website.
alt
however when I run my version of that cell I end up with two seperate figures, instead of a single figure with two subfigures like what is seen above. While I know how to do this with matplotlib, I was wanting to leverage the built in hyperspy tools so the metadata/ axis manger information is automatically applied, as opposed to having to do the heavy lifting again. Any insights would be appricaiated.
3 replies
Mohsen
@M0hsend
Hi All, I am trying to open .hspy files written with RELEASE_next_minor branch with the released 1.6.5 version and I get the following error: TypeError: __init__() got an unexpected keyword argument '_type'. Any ideas how to fix / work-around?
2 replies
Mohsen
@M0hsend

Hi All, I am trying to open .hspy files written with RELEASE_next_minor branch with the released 1.6.5 version and I get the following error: TypeError: __init__() got an unexpected keyword argument '_type'. Any ideas how to fix / work-around?

Never mind. Just reading with h5py and populating axes metadata works good enough. Thanks!

Javalde91
@Javalde91
Hello everyone! I'm trying to get the total electron counts from my SI. I usually do it on DM, but I can't get it on hyperspy, I use s.sum(), but the number that I get is "(|2036)>" from the dimension of my SI ("<EELSSpectrum, title: C_CL_0, dimensions: (80, 80|2036)>" What I'm trying to do is to get the total e- counts to normalize my SI and compare them.
Thomas Aarholt
@thomasaarholt
s.T.sum() :)
Thomas Aarholt
@thomasaarholt
(.T swaps around the navigation and signal dimensions)
OliDG
@OliDG

@thomasaarholt Hi,
I try to get quantified EDS from a sample with many elements (Al,C,Co,Cu,Cr,Mo,O,Pt,W,Zn) with a strong peak overlap between Cr-L (0.571 eV) and O-K (0.523 eV).
One layer is expected to be CrC but appears as CrO... the quantification output 30% of O in it, which is very unexpected for several reasons. Checking the EDS spectrum manually I can see the peak shift by maybe 1 channel when seeing Cr-L instead of O-K but the model fitting doesn't.
I am using the EDS model fitting and after several hours in the documentation I come here to ask: Is there a solution to this? is there a function somewhere that can for instance estimate Cr-L from the Cr-K intensity and subtract it from the O-K signal before saving the O-K intensity? I hope this question is clear enough!

Regards,
Olivier

18 replies
adriente
@adriente

I am trying to run the following code :

import hyperspy.api as hs
input_filename = "file1.emd"
spim = hs.load(input_filename)[-1] 
# the output of the load function is a list in which the last element is an EDSTEM object.
spim.change_dtype("float")
spim.crop(1,70,400)
spim.crop(2,0.3,19.0)

spim.decomposition(True)

It ouputs : ValueError: All the data are masked, change the mask.

It seems to me that the crop functions are at the source of this issue since when I comment them everything is fine.
I am asking here to check if I am missing something. But I will post an issue on github if not.

3 replies
TheTadpole97
@TheTadpole97

Hi, I'm not sure if it's just me missing something. But when I import images from Velox EMD (this particular file has 9538 HAADF frames), only the scaling from the first frame is retained in the axes_manager values. I've copied my code snippet below.

%matplotlib qt
import hyperspy.api as hs
import numpy as np
import matplotlib.pyplot as plt
import scipy
import hyperspy.misc as hsm
#prevent figure opening
plt.ioff()

#load file
s = hs.load("211217/HeatedTEM/HeatedTEM.emd")
print("imported")

print(s.axes_manager)

#format and save image with time stamp
for single_image in s:

    ####### Failed attempt at scaling

    single_image.axes_manager[1].scale
    single_image.axes_manager[0].scale

    single_image.axes_manager[1].offset
    single_image.axes_manager[0].offset

    single_image.axes_manager[1].units
    single_image.axes_manager[0].units

    a = single_image.plot(colorbar=False, scalebar=True, axes_ticks=False)
    plt.axis('off')
    plt.savefig('test/image %s.png' % str(s.axes_manager.indices), bbox_inches = 'tight', pad_inches = 0.1)
    plt.close()
    #single_image.save("test/image %s.png" % str(image_stack.axes_manager.indices))

But every single_image.axis_manager contains the same value as s.axis_manager (in this case 0.37nm) so the scaling is the same for every image

5 replies
aowenli
@aowenli
Hi, I wonder if I want to use two windows (before and after edge) to fit an EELS spectrum, what should I do?
rpsankaran
@rpsankaran

Hello
in Pycharm I had the below code that worked before with giving interactive hyperspy plots with s.plot()

import matplotlib
matplotlib.rcParams["backend"] = "Agg"
import hyperspy.api as hs

I am getting the following error and no plots shown. Please help if possible, and let me know if you need more information.
Thank you!

WARNING:hyperspy_gui_traitsui:The agg matplotlib backend is not compatible with the traitsui GUI elements. For more information, read http://hyperspy.readthedocs.io/en/stable/user_guide/getting_started.html#possible-warnings-when-importing-hyperspy.
WARNING:hyperspy_gui_traitsui:The traitsui GUI elements are not available.
rpsankaran
@rpsankaran
Also, having trouble with plotting an .emd. The navigator window comes up just fine, but is completely black. Should be the HAADF image - unsure how navigator sums/integrates/chooses the file for the navigator where the loaded data list has multiple signals: e.g. Any help in understanding why the navigator pane/window is black? Thank you!
[<EDSTEMSpectrum, title: EDS, dimensions: (|4096)>,
 <EDSTEMSpectrum, title: EDS, dimensions: (|4096)>,
 <EDSTEMSpectrum, title: EDS, dimensions: (|4096)>,
 <EDSTEMSpectrum, title: EDS, dimensions: (|4096)>,
 <Signal2D, title: x, dimensions: (|512, 512)>,
 <Signal2D, title: HAADF, dimensions: (|512, 512)>,
 <Signal2D, title: x, dimensions: (|512, 512)>,
 <Signal2D, title: x, dimensions: (|512, 512)>,
 <Signal2D, title: x, dimensions: (|512, 512)>,
 <Signal2D, title: x, dimensions: (|512, 512)>,
 <Signal2D, title: x, dimensions: (|512, 512)>,
 <Signal2D, title: x, dimensions: (|512, 512)>,
 <Signal2D, title: x, dimensions: (|512, 512)>,
 <Signal2D, title: x, dimensions: (|512, 512)>,
 <Signal2D, title: x, dimensions: (|512, 512)>,
 <EDSTEMSpectrum, title: EDS, dimensions: (512, 512|4096)>]
1 reply
zhanxun8
@zhanxun8
Hello, I analyze my EELS data using hyperspy. It worked well before. However, today when I ran remove_background function, it gave me error. Does anyone can help me with this problem? Thanks!
zhanxun8
@zhanxun8
image.png
zhanxun8
@zhanxun8
image.png
MurilooMoreira
@MurilooMoreira
Hello everyone, how are you? I saw in the documentation the new option to read the ASW files in the version 1.7dev. I can extract my image spectra frame by frame this way, but I cannot obtain the DF images frame by frame. I am obtaining in the list generated by the hs.load(), only the first DF image used to acquired the spectral image. Is it possible to extract all the DF images acquired? Using the AnalysisStation software I can see them but with Hyperspy I am having problems yet. Thank you!
1 reply
Thomas Aarholt
@thomasaarholt
Screenshot 2022-01-26 at 14.18.06.png
@MurilooMoreira, I just made a function for you for the colormap you asked for. I thought it was a fun exercise. https://gist.github.com/thomasaarholt/169a1cf29048dd96c8a6c9b980adb9b6
See the gist for creating the cmap. This is how you would use it:
from scipy.misc import face
img = face(gray=True)
plt.figure()
plt.imshow(img, cmap=cmap)
plt.colorbar()
test.png
I was very surprised that there wasn't a built-in function to do this.
DENSmerijn
@DENSmerijn

Hey all, I am trying to get the decomposition of a sum of a section of the frames of a EDS signal.

When I load the entire signal with sum_frames=True, the decomposition works fine. But when I load it with sum_frames=False and then sum all the frames using .sum('Time'), the resulting signal looks differently (lower intensity) and the decomposition works but the result is different (worse). What is the difference between the sum_frames=True argument and summing the frames after loading using .sum('Time')?
Also, when I try to sum a section of the frames in time (e.g. the first 20) I get the error message: ValueError: All the data are masked, change the mask.
Is there a way to avoid this error and get the decomposition over a range of time?
Thank you!

1 reply
MurilooMoreira
@MurilooMoreira
@thomasaarholt thank you man, I will try, test and maybe modify this function for other colors also, thank you very much. Yeah, I always tought strange that it was not possible to do it with hyperspy, I always use the matplotlib cmaps, but I didn't know how to create new ones. Thank you
1 reply
fg-personal
@fg-personal
To whom it may regard, hyperspy/tests/io/test_jeol.py is not running smoothly on my device. Is this the correct place to ask for help?

When I replace the test files with actual files I have on my device (same extensions), and I run the test script I get the following messages:

WARNING:hyperspy.io:Unable to infer file type from extension 'ASW'. Will attempt to load the file with the Python imaging library.
ERROR:hyperspy.io:If this file format is supported, please report this error to the HyperSpy developers.

2 replies
OliDG
@OliDG

Hi, I am using EDS models and have trouble to restore the stored ones.
I create a model m, fit it and store it, and also copy it to a EDS_model variable

#create a model using all selected elements:
m = si.create_model()
m.fit()
m.fit_background()
#Reduce the element selection to the one of interest and quantify
kfactors = Assign_elements2Quant()
xray_lines_selected=si.metadata.Sample.xray_lines
m_int_fit = m.get_lines_intensity(xray_lines_selected)
m.store()
EDS_model = m

After this, the "si" is saved to a .hspy file.
If i look at the EDS_model, it is fine, I can plot it and so on.

EDS_model
Out[80]: <EDSTEMModel, title: EDX>

But then I try to load the .hspy file again, I see the model is there, with the components, but cannot restore it or plot it... why?

l = hs.load(signal_type="EDS_TEM", escape_square_brackets=(True))
l.models
Out[82]: 
└── a
    ├── components
    │   ├── Al_Ka
    │   ├── Al_Kb
    │   ├── C_Ka
    │   ├── Co_Ka
    │   ├── Co_Kb
    │   ├── Co_La
    │   ├── Co_Lb3
    │   ├── Co_Ll
    │   ├── Co_Ln
    │   ├── Cr_Ka
    │   ├── Cr_Kb
    │   ├── Cr_La
    │   ├── Cr_Lb3
    │   ├── Cr_Ll
    │   ├── Cr_Ln
    │   ├── Mo_Ka
    │   ├── Mo_Kb
    │   ├── Mo_La
    │   ├── Mo_Lb1
    │   ├── Mo_Lb2
    │   ├── Mo_Lb3
    │   ├── Mo_Lg1
    │   ├── Mo_Lg3
    │   ├── Mo_Ll
    │   ├── Mo_Ln
    │   ├── O_Ka
    │   ├── W_La
    │   ├── W_Lb1
    │   ├── W_Lb2
    │   ├── W_Lb3
    │   ├── W_Lb4
    │   ├── W_Lg1
    │   ├── W_Lg3
    │   ├── W_Ll
    │   ├── W_Ln
    │   ├── W_M2N4
    │   ├── W_M3O4
    │   ├── W_M3O5
    │   ├── W_Ma
    │   ├── W_Mb
    │   ├── W_Mg
    │   ├── W_Mz
    │   ├── Zn_Ka
    │   ├── Zn_Kb
    │   ├── Zn_La
    │   ├── Zn_Lb1
    │   ├── Zn_Lb3
    │   ├── Zn_Ll
    │   ├── Zn_Ln
    │   └── background_order_6
    ├── date = 2022-02-08 12:09:22
    └── dimensions = (96, 89|2048)

Mymodel = l.models.a.restore()
Traceback (most recent call last):

  File "C:\Users\oldo\AppData\Local\Temp/ipykernel_14272/3459143043.py", line 1, in <module>
    Mymodel = l.models.a.restore()

  File "C:\Users\oldo\.conda\envs\hspy_env\lib\site-packages\hyperspy\signal.py", line 82, in <lambda>
    self.restore = lambda: mm.restore(self._name)

  File "C:\Users\oldo\.conda\envs\hspy_env\lib\site-packages\hyperspy\signal.py", line 241, in restore
    return self._signal.create_model(dictionary=copy.deepcopy(d))

  File "C:\Users\oldo\.conda\envs\hspy_env\lib\site-packages\hyperspy\_signals\eds_tem.py", line 745, in create_model
    model = EDSTEMModel(self,

  File "C:\Users\oldo\.conda\envs\hspy_env\lib\site-packages\hyperspy\models\edstemmodel.py", line 45, in __init__
    EDSModel.__init__(self, spectrum, auto_background, auto_add_lines,

  File "C:\Users\oldo\.conda\envs\hspy_env\lib\site-packages\hyperspy\models\edsmodel.py", line 131, in __init__
    Model1D.__init__(self, spectrum, *args, **kwargs)

  File "C:\Users\oldo\.conda\envs\hspy_env\lib\site-packages\hyperspy\models\model1d.py", line 279, in __init__
    self._load_dictionary(dictionary)

  File "C:\Users\oldo\.conda\envs\hspy_env\lib\site-packages\hyperspy\model.py", line 306, in _load_dictionary
    id_dict.update(self[-1]._load_dictionary(comp))

  File "C:\Users\oldo\.conda\envs\hspy_env\lib\site-packages\hyperspy\component.py", line 1223, in _load_dictionary
    raise ValueError(

ValueError: _id_name of parameters in component and dictionary do not match
Thomas Weatherley
@thomasfjord
Hey all - I'm trying to make an analysis using hyperspy as reproducible as possible, and as part of that I want a virtual environment that can be reproduced from an environment.yml file. However, for my analysis I need to use nonlinear functionality, which isn't included in hyperspy v1.6.5 - but cloning RELEASE_next_minor is something which can't be tracked using an environment.yml file. Does anyone have a suggestion for how to get nonlinear functionality in a reproducible way? @LMSC-NTappy proposed forking RELEASE_next_minor to my own GitHub, pip installing the fork, and then leaving that fork unchanged - this is what I'll do for now. But I'm always grateful for other suggestions - thanks!
5 replies
OliDG
@OliDG
Hello,
the line2D interactive ROI raises an error when I try to integrate over a width "linewidth is not supported for axis with different scale", however the axes_manager says that the scale is the same for both axes... is it a rounding problem? can I correct it?
the EDS map is from Velox (.emd)
line1=line_roi.interactive(data,color='yellow')

ValueError: linewidth is not supported for axis with different scale.

data.axes_manager
Out[53]: 
<Axes manager, axes: (|118, 81)>
            Name |   size |  index |  offset |   scale |  units 
================ | ====== | ====== | ======= | ======= | ====== 
---------------- | ------ | ------ | ------- | ------- | ------ 
               x |    118 |        |   0.043 |    0.14 |     nm 
               y |     81 |        |    -2.8 |    0.14 |     nm
6 replies
ulapa
@ulapa

Hello, I hope you are very well. I am studying how to do an analysis of my EELS spectrum using richarson lucy deconvolution I have a 2D spectrum in a cvs file. Does anyone know how to define the psf function from the spectrum?

I thank you in advance.

8 replies
Giulio Guzzinati
@gguzzina
Hello, I'm writing a patch to add support for the data files of the CEOS energy filter software (e.g. eftem images or EELS data cubes), and I'm trying translate calibrations as well as I can. However I can't quite understand if and how intensity calibrations are handled in hyperspy.
tylott
@tylott

Hi everyone,

I am using Velox to acquire EM images and I am looking to use HyperSpy to help with the analysis. I do not have access to Velox on my personal computer, so I am using HyperSpy to load the EMD files. I am recording videos on Velox, however, to my knowledge it does not appear that I can save each individual frame of the video as a TIF in the Velox software itself (for single images I can easily export the data as a TIF on Velox). Using HyperSpy I am trying to convert the EMD files to TIF. However, I noticed that my scalebar is missing in the TIF when I open it later. Is there a way to save the scalebar information from the metadata using HyperSpy? I could come up with other solutions but I am looking for something more elegant since I know that HyperSpy can access the metadata. I see that there is a module for drawing scalebars in HyperSpy but I have not found a way to implement this correctly.

Here is some very basic code that I have written in Python to save the EMD images to TIF:

import hyperspy.api as hs
import tkinter as tk
from tkinter import filedialog

root = tk.Tk()
root.withdraw()

file_path = filedialog.askopenfilename()
s = hs.load(file_path)
s.plot() # I can see the scalebar from the metadata

save_input = input("Would you like to save? (Y/N)? ")
if save_input == "Y" or save_input == "Yes" or save_input == "yes" or save_input == "y":
save_path = filedialog.asksaveasfilename()
s.save(save_path) # I can no longer see the scalebar here, how can I flatten the overlay?
else:
print("END OF PROGRAM.")

Thanks for any help that you can provide!

1 reply
Jordi Ferrer Orri
@jordiferrero
Hi,
I was wondering if hyperspy interactive functions work with Google Colab. I saw a comment from a few years ago on how %matplotlib notebook does not work for the hyperspy plotting functions.
I have currently tried both notebook and widget backends, none of which seem to give a plot.
Any advice/workarounds?
Thanks
CristianNecula
@CristianNecula
HI everyone,
I did some analysis using blind_source_separation function and I observed two things:
  1. sklearn_fastica provides very instalbe results. Each run gives completely different solution. Is it normal?
CristianNecula
@CristianNecula
  1. I tried to use FastIca algorithm from MDP. So I installed MDP but when type the command "import hyperspy as hs" it give me the following error:module 'scipy' has no attribute 'typeDict'.
3 replies
Please could you help me with these? Thank you very much.
I use Anaconda on windows 10.
Tan-Shengdong
@Tan-Shengdong
sum=10.png
Fe_10components.png