diff --git a/docker/webtop/north-guacamole-client b/docker/webtop/north-guacamole-client index 5db00ee2e62ccf1bde11ed7c82fe8eedd609537f..b965bc735ab48ce7c21676e616b32d3fa8fd69fc 160000 --- a/docker/webtop/north-guacamole-client +++ b/docker/webtop/north-guacamole-client @@ -1 +1 @@ -Subproject commit 5db00ee2e62ccf1bde11ed7c82fe8eedd609537f +Subproject commit b965bc735ab48ce7c21676e616b32d3fa8fd69fc diff --git a/docker/xps/Dockerfile b/docker/xps/Dockerfile index 436f59e069f7e7af64e261340ef3c2b6f86941b0..e327906144d96b204f8e1dffb0868c6062d89194 100644 --- a/docker/xps/Dockerfile +++ b/docker/xps/Dockerfile @@ -9,5 +9,5 @@ RUN pip install -r requirements.txt \ && jupyter lab build \ && jupyter nbextension enable --py widgetsnbextension \ && jupyter serverextension enable jupyterlab_h5web \ - && pip install git+https://github.com/nomad-coe/nomad-parser-nexus.git@XPS_datamodel_with_cls_AP1 -RUN rm requirements.txt \ No newline at end of file + && pip install git+https://github.com/nomad-coe/nomad-parser-nexus.git@XPS_datamodel_V_new +RUN rm requirements.txt diff --git a/docker/xps/docker-compose.yml b/docker/xps/docker-compose.yml index 53fea18ad649ac2a311d89616bba3d79e3e10961..8700a73552fde25dde8fd25e9e5f767350508291 100644 --- a/docker/xps/docker-compose.yml +++ b/docker/xps/docker-compose.yml @@ -1,10 +1,11 @@ version: "3.9" +#image: gitlab-registry.mpcdf.mpg.de/nomad-lab/nomad-remote-tools-hub/xps-jupyter services: xps: - image: gitlab-registry.mpcdf.mpg.de/nomad-lab/nomad-remote-tools-hub/xps-jupyter + image: gitlab-registry.mpcdf.mpg.de/nomad-lab/nomad-remote-tools-hub/xps-jupyter:0.1 ports: - 8888:8888 volumes: - ./example:/home/jovyan/work - working_dir: /home/jovyan/work \ No newline at end of file + working_dir: /home/jovyan/work diff --git a/docker/xps/example/config_file.json b/docker/xps/example/config_file.json index 2756b2b559136a7d67359f12bb7f4a77a96b1895..155cfda038a9469a9f6a6f6785cc2bebb53acf08 100644 --- a/docker/xps/example/config_file.json +++ b/docker/xps/example/config_file.json @@ -1,17 +1,42 @@ + { - "/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/description": "hemispherical", - "/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/COLLECTIONCOLUMN[collectioncolumn]/scheme": "Angular dispersive", - "/ENTRY[entry]/INSTRUMENT[instrument]/BEAM[beam]/distance": "0.0", - "/ENTRY[entry]/INSTRUMENT[instrument]/BEAM[beam]/distance/@units": "mm", - "/ENTRY[entry]/INSTRUMENT[instrument]/SOURCE[source]/type": "Synchrotron X-ray Source", - "/ENTRY[entry]/INSTRUMENT[instrument]/SOURCE[source]/probe": "x-ray", - "/ENTRY[entry]/SAMPLE[sample]/preparation_description": "Sample comes from third party", - "/ENTRY[entry]/SAMPLE[sample]/temperature": "298", - "/ENTRY[entry]/SAMPLE[sample]/temperature/@units": "K", - "/ENTRY[entry]/SAMPLE[sample]/situation": "vacuum", - "/ENTRY[entry]/SAMPLE[sample]/gas_pressure": "101325", - "/ENTRY[entry]/SAMPLE[sample]/gas_pressure/@units": "Pa", - "/ENTRY[entry]/start_time": "2022-04-08T11:47:02.0200Z", - "/ENTRY[entry]/USER[user]/name": "Ahmed Mansour", - "/ENTRY[entry]/USER[user]/email": "amansour@physik.hu-berlin.de" +"/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/description": "@eln", +"/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/name": "@xps_tocken:analyzer_info/name", +"/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/ENERGYDISPERSION[energydispersion]/entrance_slit": "@xps_tocken:region/analyzer_slit", +"/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/ENERGYDISPERSION[energydispersion]/scheme": "@eln", +"/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/ENERGYDISPERSION[energydispersion]/pass_energy": "@xps_tocken:region/pass_energy", +"/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/ENERGYDISPERSION[energydispersion]/pass_energy/@units": "eV", +"/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/ENERGYDISPERSION[energydispersion]/energy_scan_mode": "@xps_tocken:region/scan_mode/name", +"/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/DETECTOR[detector]/DATA[data]/raw": "@detector_data:cycles/Cycle_", +"/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/DETECTOR[detector]/DATA[data]/raw/@units": "counts", +"/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/DETECTOR[detector]/amplifier_type": "channeltron", +"/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/DETECTOR[detector]/detector_type": "multi-anode", +"/ENTRY[entry]/INSTRUMENT[instrument]/ELECTRONANALYSER[electronanalyser]/COLLECTIONCOLUMN[collectioncolumn]/scheme": "@eln", +"/ENTRY[entry]/INSTRUMENT[instrument]/BEAM[beam]/distance": "@eln", +"/ENTRY[entry]/INSTRUMENT[instrument]/BEAM[beam]/distance/@units": "@eln", +"/ENTRY[entry]/INSTRUMENT[instrument]/BEAM[beam]/incident_energy": "@xps_tocken:region/excitation_energy", +"/ENTRY[entry]/INSTRUMENT[instrument]/BEAM[beam]/incident_energy/@units": "eV", +"/ENTRY[entry]/INSTRUMENT[instrument]/energy_resolution": "@xps_tocken:region/scan_delta", +"/ENTRY[entry]/INSTRUMENT[instrument]/energy_resolution/@units": "eV", +"/ENTRY[entry]/INSTRUMENT[instrument]/SOURCE[source]/type": "@eln", +"/ENTRY[entry]/INSTRUMENT[instrument]/SOURCE[source]/name": "@xps_tocken:source_info/name", +"/ENTRY[entry]/INSTRUMENT[instrument]/SOURCE[source]/probe": "@eln", +"/ENTRY[entry]/SAMPLE[sample]/name": "@xps_tocken:parameters/Group", +"/ENTRY[entry]/SAMPLE[sample]/preparation_description": "@eln", +"/ENTRY[entry]/SAMPLE[sample]/temperature": "@eln", +"/ENTRY[entry]/SAMPLE[sample]/temperature/@units": "@eln", +"/ENTRY[entry]/SAMPLE[sample]/situation": "@eln", +"/ENTRY[entry]/SAMPLE[sample]/gas_pressure": "@eln", +"/ENTRY[entry]/SAMPLE[sample]/gas_pressure/@units": "@eln", +"/ENTRY[entry]/DATA[data]/@signal": "", +"/ENTRY[entry]/DATA[data]/data": "@data:cycles/Cycle_", +"/ENTRY[entry]/DATA[data]/data/@units": "counts", +"/ENTRY[entry]/DATA[data]/EB": "counts", +"/ENTRY[entry]/DATA[data]/EB/@units": "eV", +"/ENTRY[entry]/title": "@eln", +"/ENTRY[entry]/start_time": "@eln", +"/ENTRY[entry]/definition": "@eln", +"/ENTRY[entry]/definition/@version": "@eln", +"/ENTRY[entry]/USER[user]/name": "@eln", +"/ENTRY[entry]/USER[user]/email": "@eln" } \ No newline at end of file diff --git a/docker/xps/example/eln_data.yaml b/docker/xps/example/eln_data.yaml new file mode 100644 index 0000000000000000000000000000000000000000..923bf971a0de409c2ea8f94dfad13833906190d0 --- /dev/null +++ b/docker/xps/example/eln_data.yaml @@ -0,0 +1,51 @@ +Instrument: + Analyser: + Collectioncolumn: + scheme: "Angular dispersive" + mode: "Unknown" + description: "hemispherical" + name: null + Energydispersion: + entrance_slit: "Unknown" + scheme: "hemispherical" + pass_energy: + unit: null + Detector: + amplifier_type: "channeltron" + detector_type: "Multi-anode" + Beam: + distance: + unit: "mm" + value: 0.0 + energy_resolution: + unit: null + value: null + Source: + type: "Synchrotron X-ray Source" + probe: "x-ray" +Sample: + name: null + preparation_description: "From third party" + temperature: + unit: "K" + value: 298.0 + situation: "vacuum" + gas_pressure: + unit: "Pa" + value: 101325.0 +start_time: null +definition: + version: null + value: null +title: "XPS Experiment" +start_time: "2022-04-08T11:47:02.0200Z" +definition: + value: "NXmpes" + version: 1.0 +User: + name: "Ahmed Mansour" + email: "amansour@physik.hu-berlin.de" +Data: + BE: + unit: null + diff --git a/docker/xps/requirements.txt b/docker/xps/requirements.txt old mode 100755 new mode 100644 index 984f13ecb642f2c4c0fb08a0d40fe22a00fa4ba7..d8015c069a911892c61b670e572c9d23bfe01d02 --- a/docker/xps/requirements.txt +++ b/docker/xps/requirements.txt @@ -1,25 +1,23 @@ # -# This file is autogenerated by pip-compile with Python 3.10 -# by the following command: +# This file is autogenerated by pip-compile with python 3.7 +# To update, run: # -# pip-compile +# pip-compile --output-file=requirements.txt pyproject.toml # anyio==3.6.2 # via jupyter-server argon2-cffi==21.3.0 - # via - # jupyter-server - # nbclassic + # via jupyter-server argon2-cffi-bindings==21.2.0 # via argon2-cffi -asteval==0.9.28 - # via lmfit -asttokens==2.2.1 - # via stack-data -attrs==22.1.0 +asciitree==0.3.3 + # via zarr +ase==3.22.1 + # via nexusutils (pyproject.toml) +astroid==2.12.13 + # via nexusutils (pyproject.toml) +attrs==22.2.0 # via jsonschema -babel==2.11.0 - # via jupyterlab-server backcall==0.2.0 # via ipython beautifulsoup4==4.11.1 @@ -29,292 +27,374 @@ bleach==5.0.1 certifi==2022.12.7 # via requests cffi==1.15.1 - # via - # argon2-cffi-bindings - # pynacl + # via argon2-cffi-bindings charset-normalizer==2.1.1 # via requests -comm==0.1.2 - # via ipykernel +click==8.1.3 + # via nexusutils (pyproject.toml) +cloudpickle==2.2.0 + # via dask +cycler==0.11.0 + # via matplotlib +dask[array]==2022.2.0 + # via hyperspy debugpy==1.6.4 # via ipykernel decorator==5.1.1 - # via ipython + # via + # ipyparallel + # ipython defusedxml==0.7.1 # via nbconvert -deprecated==1.2.13 - # via pygithub +dill==0.3.6 + # via hyperspy entrypoints==0.4 - # via jupyter-client -executing==1.2.0 - # via stack-data + # via + # ipyparallel + # jupyter-client + # numcodecs +fasteners==0.18 + # via zarr fastjsonschema==2.16.2 # via nbformat -future==0.18.2 - # via uncertainties -h5glance==0.8 - # via -r requirements.in -h5grove==1.1.0 +flatdict==4.0.1 + # via nexusutils (pyproject.toml) +fonttools==4.38.0 + # via matplotlib +fsspec==2022.11.0 # via - # -r requirements.in - # jupyterlab-h5web + # dask + # hyperspy +future==0.18.2 + # via h5py-wrapper +h5grove==1.2.0 + # via jupyterlab-h5web h5py==3.7.0 # via - # h5glance # h5grove - # hdf5plugin - # punx -hdf5plugin==4.0.1 - # via jupyterlab-h5web -htmlgen==2.0.0 - # via h5glance + # h5py-wrapper + # hyperspy + # jupyterlab-h5web + # nexusutils (pyproject.toml) +h5py-wrapper==1.1.0 + # via hdfdict +hdfdict @ git+https://github.com/shabihsherjeel/hdfdict@f48a586 + # via nexusutils (pyproject.toml) +hyperspy==1.7.3 + # via nexusutils (pyproject.toml) idna==3.4 # via # anyio # requests -ipykernel==6.19.2 +imageio==2.23.0 + # via + # hyperspy + # scikit-image +importlib-metadata==5.2.0 # via - # ipywidgets - # nbclassic -ipython==8.7.0 + # click + # hyperspy + # jsonschema + # nbconvert + # nbformat + # numba + # pint + # prettytable + # xarray +importlib-resources==5.10.2 + # via jsonschema +ipykernel==6.16.2 + # via ipyparallel +ipyparallel==8.4.1 + # via hyperspy +ipython==7.34.0 # via + # hyperspy # ipykernel - # ipywidgets - # jupyterlab -ipython-genutils==0.2.0 - # via nbclassic -ipywidgets==8.0.3 - # via -r requirements.in + # ipyparallel jedi==0.18.2 # via ipython jinja2==3.1.2 # via + # hyperspy # jupyter-server - # jupyterlab - # jupyterlab-server - # nbclassic # nbconvert -json5==0.9.10 - # via jupyterlab-server jsonschema==4.17.3 - # via - # jupyterlab-server - # nbformat + # via nbformat jupyter-client==7.4.8 # via # ipykernel + # ipyparallel # jupyter-server - # nbclassic # nbclient -jupyter-core==5.1.0 +jupyter-core==4.12.0 # via # jupyter-client # jupyter-server - # jupyterlab - # nbclassic # nbclient # nbconvert # nbformat -jupyter-server==1.23.3 - # via - # jupyterlab - # jupyterlab-h5web - # jupyterlab-server - # nbclassic - # notebook-shim -jupyterlab[full]==3.2.9 - # via -r requirements.in -jupyterlab-h5web[full]==6.0.0 - # via -r requirements.in +jupyter-server==1.23.4 + # via jupyterlab-h5web +jupyterlab-h5web==6.5.0 + # via nexusutils (pyproject.toml) jupyterlab-pygments==0.2.2 # via nbconvert -jupyterlab-server==2.16.5 - # via jupyterlab -jupyterlab-widgets==3.0.4 - # via ipywidgets -lmfit==1.1.0 - # via -r requirements.in -lxml==4.9.1 - # via - # punx - # pyresttable +kiwisolver==1.4.4 + # via matplotlib +lazy-object-proxy==1.8.0 + # via astroid +llvmlite==0.39.1 + # via numba +locket==1.0.0 + # via partd markupsafe==2.1.1 # via # jinja2 # nbconvert +matplotlib==3.5.3 + # via + # ase + # hyperspy matplotlib-inline==0.1.6 # via # ipykernel # ipython mistune==2.0.4 # via nbconvert -nbclassic==0.4.8 - # via jupyterlab +mpmath==1.2.1 + # via sympy +natsort==8.2.0 + # via hyperspy nbclient==0.7.2 # via nbconvert -nbconvert==7.2.6 - # via - # jupyter-server - # nbclassic -nbformat==5.7.0 +nbconvert==7.2.7 + # via jupyter-server +nbformat==5.7.1 # via # jupyter-server - # nbclassic # nbclient # nbconvert nest-asyncio==1.5.6 # via # ipykernel # jupyter-client - # nbclassic -nodejs==0.1.1 - # via -r requirements.in -notebook-shim==0.2.2 - # via nbclassic -numpy==1.23.5 +networkx==2.6.3 + # via scikit-image +numba==0.56.4 # via + # hyperspy + # sparse +numcodecs==0.10.2 + # via zarr +numexpr==2.8.4 + # via hyperspy +numpy==1.21.6 + # via + # ase + # dask # h5grove # h5py - # lmfit - # punx - # pyresttable + # hyperspy + # imageio + # matplotlib + # nexusutils (pyproject.toml) + # numba + # numcodecs + # numexpr + # pandas + # pywavelets + # scikit-image # scipy + # sparse # tifffile -optional-django==0.1.0 - # via nodejs + # xarray + # zarr orjson==3.8.3 # via h5grove packaging==22.0 # via + # dask + # hyperspy # ipykernel # jupyter-server - # jupyterlab - # jupyterlab-server + # matplotlib # nbconvert + # pint + # scikit-image +pandas==1.3.5 + # via + # nexusutils (pyproject.toml) + # xarray pandocfilters==1.5.0 # via nbconvert parso==0.8.3 # via jedi +partd==1.3.0 + # via dask pexpect==4.8.0 # via ipython pickleshare==0.7.5 # via ipython -platformdirs==2.6.0 - # via jupyter-core -plotly==5.11.0 - # via -r requirements.in -prometheus-client==0.15.0 +pillow==9.3.0 # via - # jupyter-server - # nbclassic + # imageio + # matplotlib + # scikit-image +pint==0.18 + # via hyperspy +pkgutil-resolve-name==1.3.10 + # via jsonschema +prettytable==3.5.0 + # via hyperspy +prometheus-client==0.15.0 + # via jupyter-server prompt-toolkit==3.0.36 # via ipython psutil==5.9.4 - # via ipykernel + # via + # ipykernel + # ipyparallel ptyprocess==0.7.0 # via # pexpect # terminado -punx==0.2.5 - # via -r requirements.in -pure-eval==0.2.2 - # via stack-data pycparser==2.21 # via cffi -pygithub==1.57 - # via punx pygments==2.13.0 # via # ipython # nbconvert -pyjwt==2.6.0 - # via pygithub -pynacl==1.5.0 - # via pygithub -pyresttable==2020.0.6 - # via punx -pyrsistent==0.19.2 +pyparsing==3.0.9 + # via matplotlib +pyrsistent==0.19.3 # via jsonschema +pytest-runner==6.0.0 + # via h5py-wrapper python-dateutil==2.8.2 - # via jupyter-client -pytz==2022.6 - # via babel + # via + # hyperspy + # ipyparallel + # jupyter-client + # matplotlib + # pandas +pytz==2022.7 + # via + # nexusutils (pyproject.toml) + # pandas +pywavelets==1.3.0 + # via scikit-image +pyyaml==6.0 + # via + # dask + # hdfdict + # hyperspy + # nexusutils (pyproject.toml) pyzmq==24.0.1 # via # ipykernel + # ipyparallel # jupyter-client # jupyter-server - # nbclassic requests==2.28.1 + # via hyperspy +scikit-image==0.19.3 + # via hyperspy +scipy==1.7.3 # via - # jupyterlab-server - # punx - # pygithub -scipy==1.9.3 - # via lmfit + # ase + # hyperspy + # scikit-image + # sparse send2trash==1.8.0 - # via - # jupyter-server - # nbclassic + # via jupyter-server six==1.16.0 # via - # asttokens # bleach # python-dateutil sniffio==1.3.0 # via anyio soupsieve==2.3.2.post1 # via beautifulsoup4 -stack-data==0.6.2 - # via ipython -tenacity==8.1.0 - # via plotly +sparse==0.13.0 + # via hyperspy +sympy==1.10.1 + # via hyperspy terminado==0.17.1 + # via jupyter-server +tifffile==2021.11.2 # via - # jupyter-server - # nbclassic -tifffile==2022.10.10 - # via h5grove + # h5grove + # hyperspy + # scikit-image tinycss2==1.2.1 # via nbconvert +toolz==0.12.0 + # via + # dask + # hyperspy + # partd tornado==6.2 # via # ipykernel + # ipyparallel # jupyter-client # jupyter-server - # jupyterlab - # nbclassic # terminado -traitlets==5.7.1 +tqdm==4.64.1 + # via + # hyperspy + # ipyparallel +traitlets==5.8.0 # via - # comm # ipykernel + # ipyparallel # ipython - # ipywidgets # jupyter-client # jupyter-core # jupyter-server # matplotlib-inline - # nbclassic # nbclient # nbconvert # nbformat -uncertainties==3.1.7 - # via lmfit +traits==6.4.1 + # via hyperspy +typed-ast==1.5.4 + # via + # astroid + # nexusutils (pyproject.toml) +typing-extensions==4.4.0 + # via + # anyio + # argon2-cffi + # astroid + # importlib-metadata + # jsonschema + # kiwisolver + # numcodecs + # xarray urllib3==1.26.13 # via requests wcwidth==0.2.5 - # via prompt-toolkit + # via + # prettytable + # prompt-toolkit webencodings==0.5.1 # via # bleach # tinycss2 websocket-client==1.4.2 # via jupyter-server -widgetsnbextension==4.0.4 - # via ipywidgets wrapt==1.14.1 - # via deprecated + # via astroid +xarray==0.20.2 + # via nexusutils (pyproject.toml) +zarr==2.12.0 + # via hyperspy +zipp==3.11.0 + # via + # importlib-metadata + # importlib-resources # The following packages are considered to be unsafe in a requirements file: -# pip +# setuptools diff --git a/tools.json b/tools.json index afc7f50dcd9ba143f93af46360b227fc95dd7582..2266ada97d9dca842283ce1ae6ea755b451cbd96 100644 --- a/tools.json +++ b/tools.json @@ -95,11 +95,11 @@ }, "xps": { "short_description": "An example for analyzing XPS data.", - "description": "Includes tools for analyzing XPS spectra and converting SPECS xml files into NeXus.", - "image": "gitlab-registry.mpcdf.mpg.de/nomad-lab/nomad-remote-tools-hub/xps-jupyter", + "description": "Includes tools for analyzing X-ray Photoelectron Spectroscopy (XPS) spectra and converting SPECS xml files into NeXus.", + "image": "gitlab-registry.mpcdf.mpg.de/nomad-lab/nomad-remote-tools-hub/xps-jupyter:0.1", "path_prefix": "lab/tree", - "mount_path": "/home/jovyan", - "icon": "jupyter_logo.svg", + "icon": "jupyter_logo.svg", + "mount_path": "/home/jovyan", "file_extensions": [ "ipynb", "nxs", @@ -110,6 +110,10 @@ { "name": "Florian Dobener", "email": "florian.dobener@physik.hu-berlin.de" + }, + { + "name": "Rubel Mozumder", + "email": "rubel.mozumder@physik.hu-berlin.de" } ] }, @@ -176,4 +180,4 @@ } ] } -} \ No newline at end of file +}