diff --git a/docker/ellips/example/ellips.archive.json b/docker/ellips/example/ellips.archive.json
new file mode 100644
index 0000000000000000000000000000000000000000..2038a528e51c59c6430d116da4fcbff34e632191
--- /dev/null
+++ b/docker/ellips/example/ellips.archive.json
@@ -0,0 +1,92 @@
+{
+    "data": {
+        "m_def": "../upload/raw/ellips.scheme.archive.yml#/definitions/section_definitions/0",
+        "reader": "ellips",
+        "nxdl": "NXellipsometry.nxdl",
+        "input_files": [
+            "test-data.data",
+            "eln_data.yaml"
+        ],
+        "output": "SiO2onSi.ellips.nxs",
+        "filename": "test-data.dat",
+        "skip": 3,
+        "sep": "\\t",
+        "colnames": [
+            "type",
+            "wavelength",
+            "angle_of_incidence",
+            "Psi",
+            "Delta",
+            "err.Psi",
+            "err.Delta"
+        ],
+        "derived_parameter_type": "depolarization",
+        "definition": "NXellipsometry",
+        "definition/@version": "0.0.2",
+        "definition/@url": "https://github.com/FAIRmat-NFDI/nexus_definitions/blob/fairmat/contributed_definitions/NXellipsometry.nxdl.xml",
+        "experiment_identifier": "exp-ID",
+        "experiment_description": "RC2 scan on 2nm SiO2 on Si in air",
+        "experiment_type": "NIR-Vis-UV spectroscopic ellipsometry",
+        "plot_name": "Psi and Delta",
+        "start_time": "2022-01-27T03:35:00+00:00",
+        "User": {
+            "name": "Name Surname",
+            "affiliation": "Humboldt-Universität zu Berlin",
+            "address": "Zum Großen Windkanal 2, 12489 Berlin, Germany",
+            "email": "surname.name@physik.hu-berlin.de"
+        },
+        "Instrument": {
+            "model": "RC2",
+            "model/@version": "0.0.1",
+            "company": "J. A. Woollam Co.",
+            "software": "CompleteEASE",
+            "software/version": "6.37",
+            "software/@url": "https://www.jawoollam.com/ellipsometry-software/completeease",
+            "ellipsometer_type": "dual compensator",
+            "rotating_element_type": "compensator (source side)",
+            "calibration_status": "no calibration",
+            "angle_of_incidence/@unit": "degrees",
+            "Beam_path": {
+                "light_source": {
+                    "source_type": "arc lamp"
+                },
+                "Detector": {
+                    "detector_type": "CCD spectrometer",
+                    "count_time": 1
+                },
+                "focussing_probes": {
+                    "data_correction": false,
+                    "angular_spread": 0.2
+                },
+                "rotating_element": {
+                    "revolutions": 50
+                }
+            },
+            "Sample_stage": {
+                "stage_type": "manual stage",
+                "environment_conditions": {
+                    "medium": "air"
+                }
+            }
+        },
+        "Sample": {
+            "atom_types": "Si, O",
+            "chemical_formula": "SiO2",
+            "layer_structure": "2nm SiO2 on Si",
+            "sample_name": "2nm SiO2 on Si",
+            "sample_history": "Commercially purchased sample",
+            "sample_type": "multi layer",
+            "substrate": "Si",
+            "backside_roughness": false
+        },
+        "Data": {
+            "data_software": "WVASE",
+            "data_software/version": "3.882",
+            "data_software/@url": "https://www.jawoollam.com/ellipsometry-software/wvase",
+            "data_identifier": 1,
+            "data_type": "Psi/Delta",
+            "spectrum_type": "wavelength",
+            "spectrum_unit": "Angstroms"
+        }
+    }
+}
\ No newline at end of file
diff --git a/docker/ellips/example/ellips.data.archive.json b/docker/ellips/example/ellips.data.archive.json
deleted file mode 100644
index d1420065dbe7f5a945253cd74576948a0538e29a..0000000000000000000000000000000000000000
--- a/docker/ellips/example/ellips.data.archive.json
+++ /dev/null
@@ -1,84 +0,0 @@
-{
-    "data": {
-        "m_def": "../upload/raw/ellips.scheme.archive.yml#/definitions/section_definitions/0",
-        "reader": "ellips",
-        "nxdl": "NXellipsometry.nxdl",
-        "input_files": [
-            "test-data.dat",
-            "eln_data.yaml"
-        ],
-        "output": "SiO2onSi.ellips.nxs",
-        "filename": "test-data.dat",
-        "skip": 3,
-        "sep": "\\t",
-        "blocks": [
-            "type",
-            "angle_of_incidence"
-        ],
-        "colnames": [
-            "type",
-            "wavelength",
-            "angle_of_incidence",
-            "psi",
-            "delta",
-            "err.psi",
-            "err.delta"
-        ],
-        "x-var": "wavelength",
-        "y-var": [
-            "psi",
-            "delta"
-        ],
-        "err-var": [
-            "err.psi",
-            "err.delta"
-        ],
-        "parameters": [
-            "type",
-            "angle"
-        ],
-        "definition": "NXellipsometry",
-        "definition/\\@version": "0.0.2",
-        "definition/\\@url": "https://github.com/FAIRmat-Experimental/nexus_definitions/tree/fairmat-ellips/contributed_definitions/NXellipsometry.nxdl.xml",
-        "experiment_identifier": "exp-ID",
-        "experiment_description": "RC2 scan on 2nm SiO2 on Si in air",
-        "start_time": "2022-01-27T04:35:00+00:00",
-        "acquisition_program/program": "CompleteEASE",
-        "acquisition_program/version": "6.37",
-        "acquisition_program/\\@url": "https://www.jawoollam.com/ellipsometry-software/completeease",
-        "name": "Name Surname",
-        "affiliation": "Humboldt-Universität zu Berlin",
-        "address": "Zum Großen Windkanal 2, 12489 Berlin, Germany",
-        "email": "surname.name@physik.hu-berlin.de",
-        "model": "RC2",
-        "model/\\@version": "0.0.1",
-        "company": "J. A. Woollam Co.",
-        "firmware": "WVASE",
-        "firmware/\\@version": "3.882",
-        "firmware/\\@url": "https://www.jawoollam.com/ellipsometry-software/wvase",
-        "light_source": "arc lamp",
-        "focussing_probes": false,
-        "angular_spread": 0.2,
-        "ellipsometry_type": "dual compensator",
-        "calibration_status": "no calibration",
-        "stage_type": "manual stage",
-        "detector_type": "CCD spectrometer",
-        "count_time": 1,
-        "integration_time": 0,
-        "rotating_element": "compensator (source side)",
-        "atom_types": "Si, O",
-        "sample_name": "2nm SiO2 on Si",
-        "sample_history": "Commercially purchased sample",
-        "layer_structure": "2nm SiO2 on Si",
-        "data_identifier": 1,
-        "data_type": "psi/delta",
-        "medium": "air",
-        "column_names": [
-            "psi",
-            "delta"
-        ],
-        "angle_of_incidence_unit": "degrees",
-        "wavelength_unit": "angstrom"
-    },
-    "m_ref_archives": {}
-}
\ No newline at end of file
diff --git a/docker/ellips/example/ellips.scheme.archive.yml b/docker/ellips/example/ellips.scheme.archive.yml
index bf4896885ee9005ffb2a98a5b5142322dd5c9ef1..28bd299980a3b879868a11237c5f9092974a7072 100644
--- a/docker/ellips/example/ellips.scheme.archive.yml
+++ b/docker/ellips/example/ellips.scheme.archive.yml
@@ -20,8 +20,9 @@ definitions:
               component: StringEditQuantity
         skip:
           type: int
-          description: "Enter how many rows should be skipped, i.e. the number
-                        of lines in the header of the data file."
+          description: |
+            Enter how many rows should be skipped, i.e. the number
+            of lines in the header of the data file.
           m_annotations:
             eln:
               minValue: 0
@@ -32,71 +33,37 @@ definitions:
           m_annotations:
             eln:
               component: StringEditQuantity
-        blocks:
-          type: str
-          description: "Names of the blocks in the data file.
-                        If the data file is separated into blocks, e.g. if
-                        the first n rows after the header contain data obtained
-                        at a certain angle of incidence, the rows from n+1 to 2n
-                        containt data obtained at another angle of incidence
-                        etc. one block name could be 'angle_of_incidence'. If
-                        the data file contains more than one type of data, e.g.
-                        ellipsometric angles and depolarization, a block name
-                        could be 'type'."
-          shape: ["*"]
-          m_annotations:
-            eln:
-              component: StringEditQuantity
         colnames:
           type: str
-          description: Names of the columns in the data file.
+          description: "Names of the columns in the data file."
           shape: ["*"]
           m_annotations:
             eln:
               component: StringEditQuantity
-        x-var:
+        derived_parameter_type:
           type: str
-          description: Name of the x-variable, e.g. wavelength or energy.
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        y-var:
-          type: str
-          description: Name(s) of the measured quantity, e.g. psi and Delta.
-          shape: ["*"]
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        err-var:
-          type: str
-          description: Names of the errors corresponding to y-var.
-          shape: ["*"]
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        parameters:
-          type: str
-          description: Parameter names; similar or the same as the blocks.
-          shape: ["*"]
+          description: |
+            Type of parameters that were derived from the
+            measured data, e.g. depolarization.
           m_annotations:
             eln:
               component: StringEditQuantity
         definition:
           type: str
-          description: "Name of the application definition (NXellipsometry).
-                        All other meta data below are described in the
-                        [NXellipsometry application definition]
-                        (https://manual.nexusformat.org/classes/contributed_definitions/NXellipsometry.html)."
+          description: |
+            Name of the application definition (NXellipsometry).
+            All other meta data below are described in the
+            [NXellipsometry application definition]
+            (https://manual.nexusformat.org/classes/contributed_definitions/NXellipsometry.html).
           m_annotations:
             eln:
               component: StringEditQuantity
-        # ToDo: Remove @notation which does not work
-        definition/\@version:
+        definition/@version:
           type: str
           m_annotations:
             eln:
               component: StringEditQuantity
-        definition/\@url:
+        definition/@url:
           type: str
           m_annotations:
             eln:
@@ -111,181 +78,263 @@ definitions:
           m_annotations:
             eln:
               component: StringEditQuantity
-        start_time:
-          type: Datetime
-          m_annotations:
-            eln:
-              component: DateTimeEditQuantity
-        acquisition_program/program:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        acquisition_program/version:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        acquisition_program/\@url:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        name:
+        experiment_type:
           type: str
           m_annotations:
             eln:
               component: StringEditQuantity
-        affiliation:
+        plot_name:
           type: str
+          description: "Name of the default plot"
           m_annotations:
             eln:
-              component: StringEditQuantity
-        address:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        email:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        model:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        model/\@version:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        company:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        firmware:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        firmware/\@version:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        firmware/\@url:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        light_source:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        focussing_probes:
-          type: bool
-          m_annotations:
-            eln:
-              component: BoolEditQuantity
-        angular_spread:
-          type: np.float64
-          unit: radian
-          m_annotations:
-            eln:
-              component: NumberEditQuantity
-        ellipsometry_type:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        calibration_status:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        stage_type:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        detector_type:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        count_time:
-          type: np.float64
-          unit: second
-          m_annotations:
-            eln:
-              component: NumberEditQuantity
-              minValue: 0
-              defaultDisplayUnit: "s"
-        integration_time:
-          type: np.float64
-          unit: second
-          m_annotations:
-            eln:
-              component: NumberEditQuantity
               minValue: 0
-              defaultDisplayUnit: "s"
-        rotating_element:
-          type: str
-          m_annotations:
-            eln:
               component: StringEditQuantity
-        atom_types:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        sample_name:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        sample_history:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        layer_structure:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        data_identifier:
-          type: int
-          m_annotations:
-            eln:
-              component: NumberEditQuantity
-        data_type:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        medium:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        column_names:
-          type: str
-          shape: ["*"]
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        angle_of_incidence_unit:
-          type: str
-          m_annotations:
-            eln:
-              component: StringEditQuantity
-        wavelength_unit:
-          type: str
+        start_time:
+          type: Datetime
           m_annotations:
             eln:
-              component: StringEditQuantity
+              component: DateTimeEditQuantity
+      sub_sections:
+        User:
+          section:
+            m_annotations:
+              eln:
+                overview: true
+            quantities:
+              name:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              affiliation:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              address:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              email:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+        Instrument:
+          section:
+            m_annotations:
+              eln:
+                overview: true
+            quantities:
+              model:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              model/@version:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              company:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              software:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              software/version:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              software/@url: 
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              ellipsometer_type:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              rotating_element_type:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              calibration_status:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              angle_of_incidence/@unit:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+            sub_sections:
+              Beam_path:
+                section:
+                  sub_sections:
+                    light_source:
+                      section:
+                        quantities:
+                          source_type:
+                            type: str
+                            m_annotations:
+                              eln:
+                                component: StringEditQuantity
+                    Detector:
+                      section:
+                        quantities:
+                          detector_type:
+                            type: str
+                            m_annotations:
+                              eln:
+                                component: StringEditQuantity
+                          count_time:
+                            type: np.float64
+                            unit: second
+                            m_annotations:
+                              eln:
+                                component: NumberEditQuantity
+                                minValue: 0
+                                defaultDisplayUnit: "s"
+                    focussing_probes:
+                      section:
+                        quantities:
+                          data_correction:
+                            type: bool
+                            m_annotations:
+                              eln:
+                                component: BoolEditQuantity
+                          angular_spread:
+                            type: np.float64
+                            unit: radian
+                            m_annotations:
+                              eln:
+                                component: NumberEditQuantity
+                                defaultDisplayUnit: "rad"
+                    rotating_element:
+                      section:
+                        quantities:
+                          revolutions:
+                            type: np.float64
+                            m_annotations:
+                              eln:
+                                component: NumberEditQuantity
+              Sample_stage:
+                section:
+                  quantities:
+                    stage_type:
+                      type: str
+                      m_annotations:
+                        eln:
+                          component: StringEditQuantity
+                  sub_sections:
+                    environment_conditions:
+                      section:
+                        quantities:
+                          medium:
+                            type: str
+                            m_annotations:
+                              eln:
+                                component: StringEditQuantity
+        Sample:
+          section:
+            m_annotations:
+              eln:
+                overview: true
+            quantities:
+              atom_types:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              backside_roughness:
+                type: bool
+                m_annotations:
+                  eln:
+                    component: BoolEditQuantity
+              chemical_formula:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              
+              layer_structure:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              sample_name:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              sample_history:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              sample_type:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              substrate:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+        Data:
+          section:
+            m_annotations:
+              eln:
+                overview: true
+            quantities:
+              data_software:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              data_software/version:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              data_software/@url:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              data_identifier:
+                type: int
+                m_annotations:
+                  eln:
+                    component: NumberEditQuantity
+              data_type:
+                type: str
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              spectrum_type:
+                type: str
+                description: |
+                  Type of the spectral values (x-axis of the data),
+                  e.g. wavelength, energy etc.
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
+              spectrum_unit:
+                type: str
+                description: "Unit of the spectral values (x-axis of the data)"
+                m_annotations:
+                  eln:
+                    component: StringEditQuantity
diff --git a/docker/ellips/example/eln_data.yaml b/docker/ellips/example/eln_data.yaml
index d253621580e5f32efe4a5f904e10b7954590141b..70b708ef36af68e1508c09510f8836b4a4e8edf6 100644
--- a/docker/ellips/example/eln_data.yaml
+++ b/docker/ellips/example/eln_data.yaml
@@ -1,71 +1,72 @@
-acquisition_program/\@url: https://www.jawoollam.com/ellipsometry-software/completeease
-acquisition_program/program: CompleteEASE
-acquisition_program/version: '6.37'
-address: Zum Großen Windkanal 2, 12489 Berlin, Germany
-affiliation: Humboldt-Universität zu Berlin
-angle_of_incidence_unit: degrees
-angular_spread:
-  unit: rad
-  value: 0.2
-atom_types: Si, O
-blocks:
-- type
-- angle_of_incidence
-calibration_status: no calibration
+Data:
+  data_identifier: 1
+  data_software: WVASE
+  data_software/@url: https://www.jawoollam.com/ellipsometry-software/wvase
+  data_software/version: '3.882'
+  data_type: Psi/Delta
+  spectrum_type: wavelength
+  spectrum_unit: Angstroms
+Instrument:
+  Beam_path:
+    Detector:
+      count_time:
+        unit: s
+        value: 1.0
+      detector_type: CCD spectrometer
+    focussing_probes:
+      angular_spread:
+        unit: rad
+        value: 0.2
+      data_correction: false
+    light_source:
+      source_type: arc lamp
+    rotating_element:
+      revolutions: 50.0
+  Sample_stage:
+    environment_conditions:
+      medium: air
+    stage_type: manual stage
+  angle_of_incidence/@unit: degrees
+  calibration_status: no calibration
+  company: J. A. Woollam Co.
+  ellipsometer_type: dual compensator
+  model: RC2
+  model/@version: 0.0.1
+  rotating_element_type: compensator (source side)
+  software: CompleteEASE
+  software/@url: https://www.jawoollam.com/ellipsometry-software/completeease
+  software/version: '6.37'
+Sample:
+  atom_types: Si, O
+  backside_roughness: false
+  chemical_formula: SiO2
+  layer_structure: 2nm SiO2 on Si
+  sample_history: Commercially purchased sample
+  sample_name: 2nm SiO2 on Si
+  sample_type: multi layer
+  substrate: Si
+User:
+  address: Zum Großen Windkanal 2, 12489 Berlin, Germany
+  affiliation: Humboldt-Universität zu Berlin
+  email: surname.name@physik.hu-berlin.de
+  name: Name Surname
 colnames:
 - type
 - wavelength
 - angle_of_incidence
-- psi
-- delta
-- err.psi
-- err.delta
-column_names:
-- psi
-- delta
-company: J. A. Woollam Co.
-count_time:
-  unit: s
-  value: 1
-data_identifier: 1
-data_type: psi/delta
+- Psi
+- Delta
+- err.Psi
+- err.Delta
 definition: NXellipsometry
-definition/\@url: https://github.com/FAIRmat-Experimental/nexus_definitions/tree/fairmat-ellips/contributed_definitions/NXellipsometry.nxdl.xml
-definition/\@version: 0.0.2
-detector_type: CCD spectrometer
-ellipsometry_type: dual compensator
-email: surname.name@physik.hu-berlin.de
-err-var:
-- err.psi
-- err.delta
+definition/@url: https://github.com/FAIRmat-NFDI/nexus_definitions/blob/fairmat/contributed_definitions/NXellipsometry.nxdl.xml
+definition/@version: 0.0.2
+derived_parameter_type: depolarization
 experiment_description: RC2 scan on 2nm SiO2 on Si in air
 experiment_identifier: exp-ID
+experiment_type: NIR-Vis-UV spectroscopic ellipsometry
 filename: test-data.dat
-firmware: WVASE
-firmware/\@url: https://www.jawoollam.com/ellipsometry-software/wvase
-firmware/\@version: '3.882'
-focussing_probes: false
-integration_time:
-  unit: s
-  value: 0
-layer_structure: 2nm SiO2 on Si
-light_source: arc lamp
-medium: air
-model: RC2
-model/\@version: 0.0.1
-name: Name Surname
-parameters:
-- type
-- angle
-rotating_element: compensator (source side)
-sample_history: Commercially purchased sample
-sample_name: 2nm SiO2 on Si
+plot_name: Psi and Delta
 sep: \t
 skip: 3
-stage_type: manual stage
-start_time: '2022-01-27T04:35:00+00:00'
-wavelength_unit: angstrom
-x-var: wavelength
-y-var:
-- psi
-- delta
+start_time: '2022-01-27T03:35:00+00:00'
\ No newline at end of file
diff --git a/docker/ellips/requirements.in b/docker/ellips/requirements.in
index be96c194cb80db897a3499bc6c908f7fff3bb05b..8aa11bc6e667ec54bbdf3d218b7acae56155db85 100644
--- a/docker/ellips/requirements.in
+++ b/docker/ellips/requirements.in
@@ -1,4 +1,4 @@
-pynxtools>=0.0.2
+pynxtools>=0.0.3
 ipywidgets<8.0.0,>=7.0.1
 nodejs
 h5glance>=0.8
@@ -8,4 +8,4 @@ jupyterlab_h5web[full]>=6.0.0
 punx>=0.2.5
 plotly
 ipython
-pyElli[fitting]
+pyElli[fitting]>=0.17.0
diff --git a/docker/ellips/requirements.txt b/docker/ellips/requirements.txt
index b4358e2538a26e9131a727d7dde1d22598c09aa3..335dab81e3a671db2876590f282d63aca6eb2bb4 100644
--- a/docker/ellips/requirements.txt
+++ b/docker/ellips/requirements.txt
@@ -4,7 +4,7 @@
 #
 #    pip-compile --output-file=requirements.txt --resolver=backtracking
 #
-anyio==3.6.2
+anyio==3.7.0
     # via jupyter-server
 argon2-cffi==21.3.0
     # via
@@ -34,7 +34,7 @@ beautifulsoup4==4.12.2
     # via nbconvert
 bleach==6.0.0
     # via nbconvert
-cattrs==22.2.0
+cattrs==23.1.2
     # via requests-cache
 certifi==2023.5.7
     # via requests
@@ -50,11 +50,11 @@ cloudpickle==2.2.1
     # via dask
 comm==0.1.3
     # via ipykernel
-contourpy==1.0.7
+contourpy==1.1.0
     # via matplotlib
 cycler==0.11.0
     # via matplotlib
-dask[array]==2023.4.1
+dask[array]==2023.6.0
     # via
     #   hyperspy
     #   kikuchipy
@@ -73,7 +73,7 @@ diffpy-structure==3.1.0
     #   diffsims
     #   kikuchipy
     #   orix
-diffsims==0.5.1
+diffsims==0.5.2
     # via
     #   kikuchipy
     #   pyxem
@@ -82,20 +82,22 @@ dill==0.3.6
 entrypoints==0.4
     # via ipyparallel
 exceptiongroup==1.1.1
-    # via cattrs
+    # via
+    #   anyio
+    #   cattrs
 executing==1.2.0
     # via stack-data
 fabio==2023.4.1
     # via
     #   pyfai
     #   silx
-fastjsonschema==2.16.3
+fastjsonschema==2.17.1
     # via nbformat
 flatdict==4.0.1
     # via pynxtools
-fonttools==4.39.3
+fonttools==4.40.0
     # via matplotlib
-fsspec==2023.5.0
+fsspec==2023.6.0
     # via
     #   dask
     #   hyperspy
@@ -120,13 +122,14 @@ h5py==3.8.0
     #   ifes-apt-tc-data-modeling
     #   jupyterlab-h5web
     #   kikuchipy
+    #   nionswift
     #   orix
     #   punx
     #   pyelli
     #   pyfai
     #   pynxtools
     #   silx
-hdf5plugin==4.1.1
+hdf5plugin==4.1.2
     # via jupyterlab-h5web
 htmlgen==2.0.0
     # via h5glance
@@ -145,6 +148,9 @@ imageio==2.27.0
     # via
     #   hyperspy
     #   kikuchipy
+    #   nionswift
+    #   nionswift-io
+    #   nionui
     #   scikit-image
 importlib-metadata==6.6.0
     # via
@@ -152,7 +158,7 @@ importlib-metadata==6.6.0
     #   hyperspy
 importlib-resources==5.12.0
     # via pyelli
-ipykernel==6.23.0
+ipykernel==6.23.2
     # via
     #   ipyparallel
     #   ipywidgets
@@ -160,7 +166,7 @@ ipykernel==6.23.0
     #   notebook
 ipyparallel==8.6.1
     # via hyperspy
-ipython==8.13.2
+ipython==8.14.0
     # via
     #   -r requirements.in
     #   hyperspy
@@ -192,7 +198,7 @@ jinja2==3.1.2
     #   notebook
 joblib==1.2.0
     # via scikit-learn
-json5==0.9.11
+json5==0.9.14
     # via jupyterlab-server
 jsonschema==4.17.3
     # via
@@ -206,7 +212,7 @@ jupyter-client==8.2.0
     #   nbclassic
     #   nbclient
     #   notebook
-jupyter-core==5.3.0
+jupyter-core==5.3.1
     # via
     #   ipykernel
     #   jupyter-client
@@ -229,18 +235,18 @@ jupyterlab==3.5.3
     #   -r requirements.in
     #   ifes-apt-tc-data-modeling
     #   pynxtools
-jupyterlab-h5web[full]==7.1.1
+jupyterlab-h5web[full]==8.0.0
     # via
     #   -r requirements.in
     #   ifes-apt-tc-data-modeling
     #   pynxtools
 jupyterlab-pygments==0.2.2
     # via nbconvert
-jupyterlab-server==2.22.1
+jupyterlab-server==2.23.0
     # via jupyterlab
 jupyterlab-widgets==1.1.4
     # via ipywidgets
-kikuchipy==0.8.4
+kikuchipy==0.8.6
     # via pynxtools
 kiwisolver==1.4.4
     # via matplotlib
@@ -250,7 +256,7 @@ lark==1.1.5
     #   pynxtools
 lazy-loader==0.2
     # via scikit-image
-llvmlite==0.40.0
+llvmlite==0.40.1rc1
     # via numba
 lmfit==1.2.1
     # via
@@ -262,7 +268,7 @@ lxml==4.9.2
     # via
     #   punx
     #   pyresttable
-markupsafe==2.1.2
+markupsafe==2.1.3
     # via
     #   jinja2
     #   nbconvert
@@ -294,14 +300,14 @@ nbclassic==1.0.0
     # via
     #   jupyterlab
     #   notebook
-nbclient==0.7.4
+nbclient==0.8.0
     # via nbconvert
-nbconvert==7.4.0
+nbconvert==7.5.0
     # via
     #   jupyter-server
     #   nbclassic
     #   notebook
-nbformat==5.8.0
+nbformat==5.9.0
     # via
     #   jupyter-server
     #   nbclassic
@@ -317,6 +323,22 @@ networkx==3.1
     # via
     #   radioactivedecay
     #   scikit-image
+niondata==0.15.3
+    # via
+    #   nionswift
+    #   nionswift-io
+nionswift==0.16.8
+    # via pynxtools
+nionswift-io==0.15.1
+    # via nionswift
+nionui==0.6.10
+    # via nionswift
+nionutils==0.4.6
+    # via
+    #   niondata
+    #   nionswift
+    #   nionswift-io
+    #   nionui
 nodejs==0.1.1
     # via -r requirements.in
 notebook==6.5.4
@@ -352,6 +374,10 @@ numpy==1.24.3
     #   kikuchipy
     #   lmfit
     #   matplotlib
+    #   niondata
+    #   nionswift
+    #   nionswift-io
+    #   nionui
     #   numba
     #   numexpr
     #   numpy-quaternion
@@ -381,7 +407,7 @@ orix==0.11.1
     #   diffsims
     #   kikuchipy
     #   pyxem
-orjson==3.8.12
+orjson==3.9.1
     # via h5grove
 packaging==23.1
     # via
@@ -397,7 +423,7 @@ packaging==23.1
     #   pooch
     #   scikit-image
     #   xarray
-pandas==2.0.1
+pandas==2.0.2
     # via
     #   ifes-apt-tc-data-modeling
     #   pyelli
@@ -417,17 +443,18 @@ pillow==9.5.0
     # via
     #   imageio
     #   matplotlib
+    #   nionswift
     #   scikit-image
-pint==0.21
+pint==0.22
     # via
     #   hyperspy
     #   pyelli
-platformdirs==3.5.0
+platformdirs==3.5.3
     # via
     #   jupyter-core
     #   pooch
     #   requests-cache
-plotly==5.14.1
+plotly==5.15.0
     # via
     #   -r requirements.in
     #   pyelli
@@ -435,9 +462,9 @@ pooch==1.7.0
     # via
     #   kikuchipy
     #   orix
-prettytable==3.7.0
+prettytable==3.8.0
     # via hyperspy
-prometheus-client==0.16.0
+prometheus-client==0.17.0
     # via
     #   jupyter-server
     #   nbclassic
@@ -462,15 +489,15 @@ pycifrw==4.4.5
     # via diffpy-structure
 pycparser==2.21
     # via cffi
-pyelli[fitting]==0.16.0
+pyelli[fitting]==0.17.0
     # via -r requirements.in
-pyfai==2023.3.0
+pyfai==2023.5.0
     # via pyxem
 pygments==2.15.1
     # via
     #   ipython
     #   nbconvert
-pynxtools==0.0.2
+pynxtools==0.0.3
     # via -r requirements.in
 pyparsing==3.0.9
     # via matplotlib
@@ -487,11 +514,14 @@ python-dateutil==2.8.2
     #   pandas
 pytz==2023.3
     # via
+    #   nionswift
     #   pandas
     #   pynxtools
+pytz-deprecation-shim==0.1.0.post0
+    # via tzlocal
 pywavelets==1.4.1
     # via scikit-image
-pyxem==0.15.0
+pyxem==0.15.1
     # via pynxtools
 pyyaml==6.0
     # via
@@ -500,7 +530,7 @@ pyyaml==6.0
     #   kikuchipy
     #   pyelli
     #   pynxtools
-pyzmq==25.0.2
+pyzmq==25.1.0
     # via
     #   ipykernel
     #   ipyparallel
@@ -510,9 +540,9 @@ pyzmq==25.0.2
     #   notebook
 radioactivedecay==0.4.17
     # via ifes-apt-tc-data-modeling
-rapidfuzz==3.0.0
+rapidfuzz==3.1.1
     # via pyelli
-requests==2.30.0
+requests==2.31.0
     # via
     #   hyperspy
     #   jupyterlab-server
@@ -522,7 +552,7 @@ requests==2.30.0
     #   requests-cache
 requests-cache==1.0.1
     # via pynxtools
-scikit-image==0.20.0
+scikit-image==0.21.0
     # via
     #   hyperspy
     #   kikuchipy
@@ -538,6 +568,8 @@ scipy==1.10.1
     #   hyperspy
     #   kikuchipy
     #   lmfit
+    #   niondata
+    #   nionswift
     #   orix
     #   pyelli
     #   pyfai
@@ -571,7 +603,7 @@ sparse==0.14.0
     # via hyperspy
 stack-data==0.6.2
     # via ipython
-sympy==1.11.1
+sympy==1.12
     # via
     #   hyperspy
     #   radioactivedecay
@@ -598,7 +630,7 @@ toolz==0.12.0
     #   dask
     #   hyperspy
     #   partd
-tornado==6.3.1
+tornado==6.3.2
     # via
     #   ipykernel
     #   ipyparallel
@@ -637,13 +669,23 @@ transforms3d==0.4.1
     # via
     #   diffsims
     #   pyxem
+typing-extensions==4.6.3
+    # via
+    #   cattrs
+    #   pint
 tzdata==2023.3
-    # via pandas
+    # via
+    #   pandas
+    #   pytz-deprecation-shim
+tzlocal==4.3
+    # via
+    #   nionswift
+    #   pynxtools
 uncertainties==3.1.7
     # via lmfit
 url-normalize==1.4.3
     # via requests-cache
-urllib3==2.0.2
+urllib3==2.0.3
     # via
     #   requests
     #   requests-cache
@@ -655,11 +697,11 @@ webencodings==0.5.1
     # via
     #   bleach
     #   tinycss2
-websocket-client==1.5.1
+websocket-client==1.5.3
     # via jupyter-server
 widgetsnbextension==3.6.4
     # via ipywidgets
-xarray==2023.4.2
+xarray==2023.5.0
     # via pynxtools
 zipfile37==0.1.3
     # via pynxtools