Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
fb51467
New types of datasets supported for Delmic HDF5 format
noemiebonnet Oct 25, 2024
1160543
Improve documentation message. Change header to standard RosettaSciIO…
noemiebonnet Nov 27, 2024
84bc2aa
add point measurements handling
noemiebonnet Dec 30, 2024
f528b1b
Add raw metadata
noemiebonnet Dec 31, 2024
5d937bd
add lumispy condition in metadata
noemiebonnet Dec 31, 2024
80bfe2c
Add testing functions for CL, SE, survey signals
noemiebonnet Jan 13, 2025
670bbc5
Create test functions for data stacks
noemiebonnet Jan 15, 2025
597fa3a
Add new metadata signal_types and corresponding test functions
noemiebonnet Jan 15, 2025
1c68f03
Add test functions and reference files for single-point measurements
noemiebonnet Jan 20, 2025
3142543
Add test function and file for streak camera spot measurement
noemiebonnet Jan 24, 2025
ebae3a1
Add documentation
noemiebonnet Jun 20, 2025
a5d32a6
delmic format: code refactoring and small feature improvements
pieleric Jun 26, 2025
72d2469
Add changelog entry for new Delmic format
pieleric Jul 3, 2025
5db37c7
delmic format: minor clean-ups
pieleric Jul 4, 2025
70bb83d
delmic: adjust signal parameter to default to "cl"
pieleric Jul 18, 2025
106687e
delmic: refactor tests to be a single test per type of data loading
pieleric Jul 22, 2025
5afc7b2
delmic: sort datasets by type
pieleric Jul 22, 2025
6a80016
delmic: don't count coverage on exception handler
pieleric Jul 22, 2025
9bac123
doc delmic: minor improvements
pieleric Jul 23, 2025
e6e1985
delmic: move survey to be very last dataset
pieleric Jul 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 29 additions & 2 deletions doc/supported_formats/delmic.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,18 @@
Delmic HDF5
-----------

RosettaScIO can only read hyperspectral cathodoluminescence .h5 datasets from Delmic. The file reading will be implemented step by step for the various Delmic data formats.
RosettaScIO can read cathodoluminescence ``.h5`` datasets from Delmic containing one or multiple acquisition streams.
The supported CL data formats currently include:

* intensity
* hyperspectral
* angle-resolved
* time-resolved decay trace
* time-resolved g\ :sup:`(2)` curve
* time-resolved spectrum
* energy-momentum (angle-resolved spectrum)

The photoluminescence is not yet implemented in the metadata structure.

.. Note::
To read the cathodoluminescence .h5 datasets in `HyperSpy <https://hyperspy.org>`_, use the
Expand All @@ -15,8 +26,24 @@ RosettaScIO can only read hyperspectral cathodoluminescence .h5 datasets from De
>>> import hyperspy.api as hs
>>> hs.load("filename.h5", reader="Delmic")

Typically, Delmic CL data acquisitions contain three dataset types, but by default, only the
cathodoluminescence datasets found in the acquisition files are opened with RosettaSciIO.
Usually, this is a single dataset, but if the acquisition has multiple streams, then a list
of datasets is returned.

.. Note::
To load the various types of datasets in the file, use the ``signal`` argument

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We were discussing what is actually the best default here - reading only CL to return a single signal item as in most other readers or the list with all items, but I guess the main point would be that it is well documented.

Also, I am not certain having the survey first is the best order of the signals in the list. I assume the order is motivated by the odemis files? Generally, I would find it more intuitive to have the actual CL signal first, then concurrent and last survey (making the survey always last item, even if there are multiple streams in one file).

Finally, I would say there is not really a point in reading in the concurrent se when it is dimensionless (for spectra, single transients or streak images).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In particular having the anchor region data from drift correction included in the default loading seems a bit overload - so maybe default to cl and have an option all to include the other datasets?

@pieleric pieleric Jul 18, 2025

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure. I've now changed it to return only the "cl" datasets by default. Also changed from None to "all" to get all the datasets.

Concerning the datasets with a single point, although it's probably not useful, I'd rather always return them when that type of dataset (or "all") is requested. This keeps the code simple and makes sure that if for some reason the user actually do care about this single pixel, they can still read it.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fair enough for the datasets with a single point. Only, I would still tend to reverse the order of the different signals in the list for "all" to have the 'cl' first (as it is the main one and now also the one that is read by default) and then add the additional signals with 'survey' last.

with "cl", "se", "survey", or "anchor", to load respectively the cathodoluminescence,
secondary electron concurrent, secondary electron survey, drift anchor region.
The special value "all" can be used to load all datasets in the file.

.. code-block:: python

>>> import hyperspy.api as hs
>>> hs.load("filename.h5", reader="Delmic", signal="cl")

API functions
"""""""""""""

.. automodule:: rsciio.delmic
:members:
:members:
Loading
Loading