File: _api.py

package info (click to toggle)
python-rosettasciio 0.7.1-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 144,648 kB
  • sloc: python: 36,638; xml: 2,582; makefile: 22; ansic: 4
file content (80 lines) | stat: -rw-r--r-- 2,040 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import h5py
import numpy as np

from rsciio._docstrings import FILENAME_DOC, LAZY_DOC, RETURNS_DOC


def file_reader(filename, lazy=False):
    """
    Read a Delmic hdf5 hyperspectral image.


    Parameters
    ----------
    %s
    %s

    %s
    """
    hdf = h5py.File(filename, "r")

    Acquisition2 = hdf.get("Acquisition2")
    Acquisition2_ImageData = Acquisition2.get("ImageData")
    Acquisition2_ImageData_Image = Acquisition2_ImageData.get("Image")

    Acquisition2_ImageData_DimensionScaleC = Acquisition2_ImageData.get(
        "DimensionScaleC"
    )
    Acquisition2_ImageData_DimensionScaleX = Acquisition2_ImageData.get(
        "DimensionScaleX"
    )
    Acquisition2_ImageData_DimensionScaleY = Acquisition2_ImageData.get(
        "DimensionScaleY"
    )

    DATA = Acquisition2_ImageData_Image[:, 0, 0, :, :]
    data = DATA.transpose()
    del DATA

    axes = [
        {
            "name": "X",
            "size": data.shape[0],
            "offset": 0,
            "scale": float(np.array(Acquisition2_ImageData_DimensionScaleX)),
            "units": "µm",
            "navigate": True,
        },
        {
            "name": "Y",
            "size": data.shape[1],
            "offset": 0,
            "scale": float(np.array(Acquisition2_ImageData_DimensionScaleY)),
            "units": "µm",
            "navigate": True,
        },
        {
            "name": "Wavelength",
            "axis": np.array(Acquisition2_ImageData_DimensionScaleC),
            "units": "nm",
            "navigate": False,
        },
    ]

    metadata = {"signal": {"signal_type": "", "quantity": "Intensity (counts)"}}

    original_metadata = dict(DimensionScaleX="182", DimensionScaleY="132")

    spim = {
        "data": data,
        "axes": axes,
        "metadata": metadata,
        "original_metadata": original_metadata,
    }

    return [
        spim,
    ]


file_reader.__doc__ %= (FILENAME_DOC, LAZY_DOC, RETURNS_DOC)