Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions .cspell/custom-dictionary.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@ Bessy
binarywave
bnote
caplog
codemirror
configfile
dataconverter
Dobener
dsml
Dyna
Ecut
FEMTOSPEX
FIELDNAME
fluence
fluences
fontawesome
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pytest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
- name: Install nomad
if: "${{ matrix.python_version != '3.8'}}"
if: "${{ matrix.python_version != '3.8' && matrix.python_version != '3.9'}}"
run: |
uv pip install nomad-lab[infrastructure]@git+https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR.git
- name: Install package
Expand Down
80 changes: 40 additions & 40 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -1,41 +1,41 @@
cff-version: 1.2.0
title: 'pynxtools-igor: A pynxtools reader plugin for Wavemetrics Igor Pro data'
version: 0.1.0
message:
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Florian
family-names: Dobener
orcid: 'https://orcid.org/0000-0003-1987-6224'
- given-names: Laurenz
family-names: Rettig
orcid: 'https://orcid.org/0000-0002-0725-6696'
- given-names: Lukas
family-names: Pielsticker
orcid: 'https://orcid.org/0000-0001-9361-8333'
doi: TODO
repository-code: 'https://github.com/FAIRmat-NFDI/pynxtools-igor'
url: TODO
keywords:
- Wavemetrics
- Igor Pro
- NOMAD
- pynxtools
- NeXus
abstract:
pynxtools-igor is a free, and open-source data software for converting data stored
with Wavemetrics [Igor Pro](https://www.wavemetrics.com/) into the [NeXus](https://www.nexusformat.org/)
format. It is implemented as a plugin for [pynxtools](https://github.com/FAIRmat-NFDI/pynxtools) and
allows to read, translate, and standardize data from Igor Pro binary waves and packed experiment files.
Depending on the domain of data, pynxtools allows to ensure compliance with various NeXus application
definitions.
pynxtools-igor is developed both as a standalone reader and as a tool within NOMAD, an open-source data
management platform for materials science ((https://nomad-lab.eu/nomad-lab/).
The work is funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) - 460197019 (FAIRmat)
(https://gepris.dfg.de/gepris/projekt/460197019?language=en).
cff-version: 1.2.0
title: 'pynxtools-igor: A pynxtools reader plugin for Wavemetrics Igor Pro data'
version: 0.1.1
message:
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Florian
family-names: Dobener
orcid: 'https://orcid.org/0000-0003-1987-6224'
- given-names: Laurenz
family-names: Rettig
orcid: 'https://orcid.org/0000-0002-0725-6696'
- given-names: Lukas
family-names: Pielsticker
orcid: 'https://orcid.org/0000-0001-9361-8333'

doi: TODO
repository-code: 'https://github.com/FAIRmat-NFDI/pynxtools-igor'
url: TODO
keywords:
- Wavemetrics
- Igor Pro
- NOMAD
- pynxtools
- NeXus
abstract:
pynxtools-igor is a free, and open-source data software for converting data stored
with Wavemetrics [Igor Pro](https://www.wavemetrics.com/) into the [NeXus](https://www.nexusformat.org/)
format. It is implemented as a plugin for [pynxtools](https://github.com/FAIRmat-NFDI/pynxtools) and
allows to read, translate, and standardize data from Igor Pro binary waves and packed experiment files.
Depending on the domain of data, pynxtools allows to ensure compliance with various NeXus application
definitions.

pynxtools-igor is developed both as a standalone reader and as a tool within NOMAD, an open-source data
management platform for materials science ((https://nomad-lab.eu/nomad-lab/).

The work is funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) - 460197019 (FAIRmat)
(https://gepris.dfg.de/gepris/projekt/460197019?language=en).
license: Apache-2.0
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
" \"user0/name\": \"Laurenz Rettig\",\n",
" \"user0/affiliation\": \"Fritz Haber Institute of the Max Planck Society\",\n",
" \"instrument/beam/incident_energy\": 1187.5,\n",
" \"instrument/beam/probe/pulse_duration\": 70,\n",
" \"instrument/beam/probe/pulse_duration\": 70.0,\n",
" \"sample/chemical_formula\": \"GdIr2Si2\",\n",
" \"sample/name\": \"GdIr2Si2 single crystal\",\n",
"}\n",
Expand All @@ -57,14 +57,14 @@
" \"metadata\": {\n",
" **metadata,\n",
" **{\n",
" \"sample/temperature\": temperature,\n",
" \"sample/temperature\": float(temperature),\n",
" \"entry_title\": f\"Resolved resonant x-ray diffraction data of GdIr2Si2 at {temperature} K\",\n",
" },\n",
" },\n",
" }\n",
"\n",
"entry_dict\n",
"convert([configfile, infile], \"igor\", \"NXxrd\", outfile, objects=(entry_dict,))"
"convert([configfile, infile], \"igor\", \"NXroot\", outfile, objects=(entry_dict,))"
]
},
{
Expand All @@ -81,7 +81,7 @@
" \"user0/name\": \"Laurenz Rettig\",\n",
" \"user0/affiliation\": \"Fritz Haber Institute of the Max Planck Society\",\n",
" \"instrument/beam/incident_energy\": 1187.5,\n",
" \"instrument/beam/probe/pulse_duration\": 70,\n",
" \"instrument/beam/probe/pulse_duration\": 70.0,\n",
" \"sample/chemical_formula\": \"GdCo2Si2\",\n",
" \"sample/name\": \"GdCo2Si2 single crystal\",\n",
"}\n",
Expand All @@ -98,14 +98,14 @@
" \"metadata\": {\n",
" **metadata,\n",
" **{\n",
" \"sample/temperature\": temperature,\n",
" \"sample/temperature\": float(temperature),\n",
" \"entry_title\": f\"Resolved resonant x-ray diffraction data of GdIr2Si2 at {temperature} K\",\n",
" },\n",
" },\n",
" }\n",
"\n",
"entry_dict\n",
"convert([configfile, infile], \"igor\", \"NXxrd\", outfile, objects=(entry_dict,))"
"convert([configfile, infile], \"igor\", \"NXroot\", outfile, objects=(entry_dict,))"
]
},
{
Expand All @@ -129,7 +129,7 @@
" \"user0/name\": \"Laurenz Rettig\",\n",
" \"user0/affiliation\": \"Fritz Haber Institute of the Max Planck Society\",\n",
" \"instrument/beam/incident_energy\": 1187.5,\n",
" \"instrument/beam/probe/pulse_duration\": 70,\n",
" \"instrument/beam/probe/pulse_duration\": 70.0,\n",
"}\n",
"entry_dict = {}\n",
"scans = [\n",
Expand Down Expand Up @@ -160,7 +160,7 @@
" },\n",
" }\n",
"\n",
"convert([configfile, infile], \"igor\", \"NXxrd\", outfile, objects=(entry_dict,))"
"convert([configfile, infile], \"igor\", \"NXroot\", outfile, objects=(entry_dict,))"
]
},
{
Expand All @@ -184,7 +184,8 @@
" \"user0/name\": \"Laurenz Rettig\",\n",
" \"user0/affiliation\": \"Fritz Haber Institute of the Max Planck Society\",\n",
" \"instrument/beam/incident_energy\": 1187.5,\n",
" \"instrument/beam/probe/pulse_duration\": 70,\n",
" \"instrument/beam/probe/pulse_duration\": 70.0,\n",
" \"sample/temperature\": 20.0,\n",
"}\n",
"entry_dict = {}\n",
"scans = [\"GdRh/voigt_area\", \"GdIr/voigt_area\", \"GdCo/voigt1_area_left\"]\n",
Expand All @@ -207,7 +208,7 @@
" },\n",
" }\n",
"\n",
"convert([configfile, infile], \"igor\", \"NXxrd\", outfile, objects=(entry_dict,))"
"convert([configfile, infile], \"igor\", \"NXroot\", outfile, objects=(entry_dict,))"
]
},
{
Expand All @@ -231,10 +232,10 @@
" \"user0/name\": \"Laurenz Rettig\",\n",
" \"user0/affiliation\": \"Fritz Haber Institute of the Max Planck Society\",\n",
" \"instrument/beam/incident_energy\": 1187.5,\n",
" \"instrument/beam/probe/pulse_duration\": 100,\n",
" \"instrument/beam/probe/pulse_duration\": 100.0,\n",
" \"sample/chemical_formula\": \"GdIr2Si2\",\n",
" \"sample/name\": \"GdIr2Si2 single crystal\",\n",
" \"sample/temperature\": 20,\n",
" \"sample/temperature\": 20.0,\n",
"}\n",
"entry_dict = {}\n",
"scans = [\"correction_2022Jan/GdCo_amp_08\", \"GdRh_ds_030_amp\", \"GdIr_ds_0200_amp\"]\n",
Expand All @@ -260,7 +261,7 @@
" },\n",
" }\n",
"\n",
"convert([configfile, infile], \"igor\", \"NXxrd\", outfile, objects=(entry_dict,))"
"convert([configfile, infile], \"igor\", \"NXroot\", outfile, objects=(entry_dict,))"
]
},
{
Expand All @@ -277,10 +278,10 @@
" \"user0/name\": \"Laurenz Rettig\",\n",
" \"user0/affiliation\": \"Fritz Haber Institute of the Max Planck Society\",\n",
" \"instrument/beam/incident_energy\": 1187.5,\n",
" \"instrument/beam/probe/pulse_duration\": 100,\n",
" \"instrument/beam/probe/pulse_duration\": 100.0,\n",
" \"sample/chemical_formula\": \"GdCo2Si2\",\n",
" \"sample/name\": \"GdCo2Si2 single crystal\",\n",
" \"sample/temperature\": 20,\n",
" \"sample/temperature\": 20.0,\n",
"}\n",
"entry_dict = {}\n",
"scans = [\"02\", \"04\", \"06\", \"08\", \"12\", \"20\"]\n",
Expand All @@ -302,7 +303,7 @@
" },\n",
" }\n",
"\n",
"convert([configfile, infile], \"igor\", \"NXxrd\", outfile, objects=(entry_dict,))"
"convert([configfile, infile], \"igor\", \"NXroot\", outfile, objects=(entry_dict,))"
]
},
{
Expand All @@ -319,10 +320,10 @@
" \"user0/name\": \"Laurenz Rettig\",\n",
" \"user0/affiliation\": \"Fritz Haber Institute of the Max Planck Society\",\n",
" \"instrument/beam/incident_energy\": 1187.5,\n",
" \"instrument/beam/probe/pulse_duration\": 100,\n",
" \"instrument/beam/probe/pulse_duration\": 100.0,\n",
" \"sample/chemical_formula\": \"GdRh2Si2\",\n",
" \"sample/name\": \"GdRh2Si2 single crystal\",\n",
" \"sample/temperature\": 20,\n",
" \"sample/temperature\": 20.0,\n",
"}\n",
"entry_dict = {}\n",
"scans = [\"005\", \"010\", \"015\", \"020\", \"030\", \"050\"]\n",
Expand All @@ -344,7 +345,7 @@
" },\n",
" }\n",
"\n",
"convert([configfile, infile], \"igor\", \"NXxrd\", outfile, objects=(entry_dict,))"
"convert([configfile, infile], \"igor\", \"NXroot\", outfile, objects=(entry_dict,))"
]
},
{
Expand All @@ -361,10 +362,10 @@
" \"user0/name\": \"Laurenz Rettig\",\n",
" \"user0/affiliation\": \"Fritz Haber Institute of the Max Planck Society\",\n",
" \"instrument/beam/incident_energy\": 1187.5,\n",
" \"instrument/beam/probe/pulse_duration\": 100,\n",
" \"instrument/beam/probe/pulse_duration\": 100.0,\n",
" \"sample/chemical_formula\": \"GdIr2Si2\",\n",
" \"sample/name\": \"GdIr2Si2 single crystal\",\n",
" \"sample/temperature\": 20,\n",
" \"sample/temperature\": 20.0,\n",
"}\n",
"entry_dict = {}\n",
"scans = [\"0025\", \"0050\", \"0100\", \"0150\", \"0200\", \"0300\"]\n",
Expand All @@ -386,7 +387,7 @@
" },\n",
" }\n",
"\n",
"convert([configfile, infile], \"igor\", \"NXxrd\", outfile, objects=(entry_dict,))"
"convert([configfile, infile], \"igor\", \"NXroot\", outfile, objects=(entry_dict,))"
]
},
{
Expand Down
4 changes: 2 additions & 2 deletions src/pynxtools_igor/nomad/examples/config_file.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"/ENTRY/DATA[data]/@axes": "@data:dims",
"/ENTRY/DATA[data]/AXISNAME_indices[@*_indices]": "@data:*.index",
"/ENTRY/DATA[data]/@signal": "data",
"/ENTRY/DATA[data]/data": "@data:data",
"/ENTRY/DATA[data]/data/@units": "@data:data.units",
"/ENTRY/DATA[data]/DATA[data]": "@data:data",
"/ENTRY/DATA[data]/DATA[data]/@units": "@data:data.units",
"/ENTRY/DATA[data]/AXISNAME[*]": "@data:*.data",
"/ENTRY/DATA[data]/AXISNAME[*]/@units": "@data:*.units"
}
24 changes: 13 additions & 11 deletions src/pynxtools_igor/nomad/examples/config_file_delay_scans.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"name": "Bessy II",
"probe": "x-ray",
"type": "Synchrotron X-ray Source",
"mode": "Slicing"
"mode": "Single Bunch"
},
"BEAM[beam_probe]": {
"distance": 0.0,
Expand All @@ -32,36 +32,38 @@
"BEAM[beam_pump]": {
"distance": 0.0,
"distance/@units": "mm",
"incident_energy": "1.55",
"incident_energy": 1.55,
"incident_energy/@units": "eV",
"pulse_duration": "['@eln:/ENTRY/Instrument/Beam/Probe/pulse_duration', '50']",
"pulse_duration": "['@eln:/ENTRY/Instrument/Beam/Pump/pulse_duration', '50.']",
"pulse_duration/@units": "fs",
"incident_polarization": [1, 1, 0, 0],
"incident_polarization/@units": "V^2/mm^2",
"fluence": "@attrs:instrument/beam/pump/fluence",
"fluence/@units": "mJ/cm^2"
},
"DETECTOR[detector]": {
"amplifier_type": "APD",
"detector_type": "APD",
"amplifier_voltage": 150,
"amplifier_voltage/@units": "V"
"type": "APD",
"acquisition_mode": "event",
"COLLECTION[detector_parameters]": {
"amplifier_voltage": 150,
"amplifier_voltage/@units": "V"
}
}
},
"/ENTRY/SAMPLE[sample]": {
"description": "['@eln:/ENTRY/Sample/description', '@attrs:sample/chemical_formula']",
"name": "['@eln:/ENTRY/Sample/name', '@attrs:sample/name']",
"situation": "vacuum",
"SUBSTANCE[substance]/molecular_formula_hill": "['@eln:/ENTRY/Sample/chemical_formula', '@attrs:sample/chemical_formula']",
"chemical_formula": "['@eln:/ENTRY/Sample/chemical_formula', '@attrs:sample/chemical_formula']",
"temperature": "@attrs:sample/temperature",
"temperature/@units": "K"
},
"/ENTRY/DATA[data]/@axes": "@data:dims",
"/ENTRY/DATA[data]/@signal": "data",
"/ENTRY/DATA[data]/AXISNAME_indices[@*_indices]": "@data:*.index",
"/ENTRY/DATA[data]/data": "@data:data",
"/ENTRY/DATA[data]/data_errors": "@data:data.errors",
"/ENTRY/DATA[data]/data/@units": "@data:data.units",
"/ENTRY/DATA[data]/DATA[data]": "@data:data",
"/ENTRY/DATA[data]/FIELDNAME_errors[data_errors]": "@data:data.errors",
"/ENTRY/DATA[data]/DATA[data]/@units": "@data:data.units",
"/ENTRY/DATA[data]/AXISNAME[*]": "@data:*.data",
"/ENTRY/DATA[data]/AXISNAME[*]/@units": "@data:*.units"
}
17 changes: 9 additions & 8 deletions src/pynxtools_igor/nomad/examples/config_file_energies.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,26 +25,27 @@
"incident_polarization/@units": "V^2/mm^2"
},
"DETECTOR[detector]": {
"amplifier_type": "APD",
"detector_type": "APD",
"amplifier_voltage": 150,
"amplifier_voltage/@units": "V"
"type": "APD",
"acquisition_mode": "event",
"COLLECTION[detector_parameters]": {
"amplifier_voltage": 150,
"amplifier_voltage/@units": "V"
}
}
},
"/ENTRY/SAMPLE[sample]": {
"description": "['@eln:/ENTRY/Sample/description', '@attrs:sample/chemical_formula']",
"name": "['@eln:/ENTRY/Sample/name', '@attrs:sample/name']",
"situation": "vacuum",
"chemical_formula": "['@eln:/ENTRY/Sample/chemical_formula', '@attrs:sample/chemical_formula']",
"temperature": "20",
"temperature": "@attrs:sample/temperature",
"temperature/@units": "K"
},
"/ENTRY/DATA[data]/@axes": "@data:dims",
"/ENTRY/DATA[data]/@signal": "data",
"/ENTRY/DATA[data]/AXISNAME_indices[@*_indices]": "@data:*.index",
"/ENTRY/DATA[data]/data": "@data:data",
"/ENTRY/DATA[data]/data_errors": "@data:data.errors",
"/ENTRY/DATA[data]/data/@units": "@data:data.units",
"/ENTRY/DATA[data]/DATA[data]": "@data:data",
"/ENTRY/DATA[data]/DATA[data]/@units": "@data:data.units",
"/ENTRY/DATA[data]/AXISNAME[*]": "@data:*.data",
"/ENTRY/DATA[data]/AXISNAME[*]/@units": "@data:*.units"
}
Loading