Open sofomryu opened 3 months ago
Thanks for reporting this @sofomryu. This limitation was mostly because we did not have an example file from a TEM at the time the reader was developed. Could you share the file that you're having issues with by attaching it to a comment here?
Thanks for reporting this @sofomryu. This limitation was mostly because we did not have an example file from a TEM at the time the reader was developed. Could you share the file that you're having issues with by attaching it to a comment here?
Of course! Here it is. Thank you for your swift reply.
Hmm, does this error happen with every file produced by your system? There's no header in that .spc file that contains the metadata required to read the data (this is why the error you posted in the original comment occurs).
If it does, can you please provide more information about the software that produced the file (name, version number, etc.). It's possible EDAX has updated the file format. I no longer have access to an EDAX system to test on.
Oh, actually it looks like I can see the version of the file is 0.34. I'm not sure of the vintage of that version, but it's at least older than when the EDAX reader was originally written in the ~2015 timeframe. We only had documentation for formats 0.61 and 0.70, so I think without some difficult reverse engineering work, we probably won't be able to read this file. You could also try reaching out to the EDAX applications team to see if they could provide you any documentation they have for that file version, which would definitely help implementing a reader.
Wow, it is much complicated problem than I expected. I don't remember the exact software generating the spc file, but it is possible to read the file with spectrum viewer software in the following link. https://www.edax.com/support/spectrum-viewer I was able to obtain the related information of the file. I'll open the file tomorrow and let you know just in case. Meanwhile, I just contacted the EDAX team to ask the documentation with the old version. I'll let you know if I got some news. Thanks!
Hi, I'm writing this to ask the feature to read a .spc file for EDAX(EDS) spectrum with TEM. Hyperspy support to read .spc file but it couldn't read my spc file. Maybe it is because hyperspy only support EDS-SEM, not EDS_TEM.
https://rosettasciio.readthedocs.io/en/v0.3/user_guide/supported_formats/edax.html
From this link, I was able to find it doesn't support EDS-TEM, saying "Currently, HyperSpy will load data as an EDSSEMSpectrum signal. If support for TEM EDS data is needed, please open an issue in the issues tracker to alert the developers of the need."
If I still try to read my spc file with the following code,
import hyperspy.api as hs s=hs.load('myspcfile.spc')
the following error occurs.
ERROR | Hyperspy | If this file format is supported, please report this error to the RosettaSciIO developers at https://github.com/hyperspy/rosettasciio/issues (hyperspy.io:599) Traceback (most recent call last): File "/Users/username/test_hyperspy.py", line 4, in
hs.load(doc)
File "/Users/username/myenv/lib/python3.12/site-packages/hyperspy/io.py", line 537, in load
load_single_file(filename, lazy=lazy, kwds) for filename in filenames
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/username/myenv/lib/python3.12/site-packages/hyperspy/io.py", line 596, in load_single_file
return load_with_reader(filename=filename, reader=reader, kwds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/username/myenv/lib/python3.12/site-packages/hyperspy/io.py", line 618, in load_with_reader
file_data_list = importlib.import_module(reader["api"]).file_reader(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/username/myenv/lib/python3.12/site-packages/rsciio/edax/_api.py", line 1013, in file_reader
return spc_reader(filename, lazy, endianess, load_all_spc=load_all_spc, *kwds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/username/myenv/lib/python3.12/site-packages/rsciio/edax/_api.py", line 719, in spc_reader
data = np.memmap(
^^^^^^^^^^
File "/Users/username/myenv/lib/python3.12/site-packages/numpy/_core/memmap.py", line 262, in new
bytes = int(offset + size_dbytes)
^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: only length-1 arrays can be converted to Python scalars
shell returned 1