TU Wien Research Data
Not a member yet
512 research outputs found
Sort by
Supercomputing in Österreich und Wien
<p><span>In der Präsentation wird ein umfassender Überblick über europäisches Supercomputing gegeben, mit besonderem Fokus auf die nationalen Kompetenzzentren für HPC, Big Data und Künstliche Intelligenz. Anhand konkreter Use Cases wird gezeigt, wie Berechnungen auf europäischen Supercomputern erfolgreich durchgeführt wurden. Im zweiten Teil der Präsentation folgt ein Einblick in die österreichische HPC-Infrastruktur, den Vienna Scientific Cluster (VSC), sowie ein Ausblick auf die neueste österreichische HPC-Initiative, MUSICA.</span></p>
AI-enhanced Funding Strategies (Horizon Europe)
<p><span>During a Master thesis, we tested six different AI-based tools on their efficiency to accompany researcher and research managers in their continous search for funding. Customized GPTs (ChatGPT4) created research summaries and keyword from research data (publications, conference proceedings, project abstracts, website. We used the created personalized keywords to find tailored funding for the researcher. The results were varified by the researcher and proofed to match their research interests with 95% (ResearchConnect, ChatGPT4). </span></p>
eLabFTW: A free and open source electronic laboratory notebook
<p>Poster zu eLabFTW im Zuge der Expo 2025. </p>
Gambling on Reconfigurable Intelligent Surfaces
<h2>Gambling on Reconfigurable Intelligent Surfaces - Python Implementation</h2>
<p>This code implements the techniques described in:</p>
<p>"Gambling on Reconfigurable Intelligent Surfaces", Stefan Schwarz, IEEE Communications Letters, 2024, Volume: 28, Issue: 4, DOI: 10.1109/LCOMM.2024.3360477 </p>
<p>Please cite this paper when using this code.</p>
<h3>Context and methodology</h3>
<ul>
<li>This code was created as part of the project 10.55776/PAT4490824 funded by Austrian Science Fund (FWF).</li>
<li>The code serves to reproduce the results presented in 10.1109/LCOMM.2024.3360477.</li>
<li>The code is implemented in Python.</li>
</ul>
<h3>Technical details</h3>
<ul>
<li>The main file of the code is RIS_bidding_geometric.py. This code should be used to run simulations. </li>
<li>Dependencies and requirements are described in pyproject.toml.</li>
<li>Additional information is provided in README.</li>
</ul>
<h3>Further details</h3>
<ul>
<li>The auction environment is defined in RIS_env_geometric_v2.py</li>
<li>Utility/value estimation is in RIS_Competition_Geometric.py</li>
<li>Wireles specific functions (channels, SINRs, etc) are in wireless_fuf.py</li>
<li>A trained RL agent for 3 base stations, 2 operators, 10 users, 20 RISs and 1000 reconfigurable elements per RIS is provided in ppo_ris_3BS_10UE_20RIS_1000M.zip. Run the main file RIS_bidding_geometric.py to test this agent.</li>
<li>You may train new agents for other settings by activating "retrain" in RIS_bidding_geometric.py</li>
</ul>
<p>This project is licensed under the MIT License. See the LICENSE file for details.</p>
Research data for "Trioxanes as photodegradable motifs for additive manufacturing"
<h3>Context and methodology</h3>
<p>This dataset was collected during a research project on photopolymers for 3D printing within the framework of a PhD thesis at the Institute of Applied Technology, TU Wien. It entails the synthesis of monomers and thereof derived polymer network containing trioxanes as degradable motif via (photo)acid, and full characterization thereof. Production of the network via 3D printing and its degradation are phototriggered, semi-orthogonal processes. The data is further discussed in the publication cited below.</p>
<p> </p>
<h3>Technical details</h3>
<p>The dataset entails the raw data of various analyses collected in an <strong>Excel file "Data trioxane paper"</strong>:</p>
<p>Each tab in the file has the following structure:<br>Line 1: Analysis method<br>Line 2: Parameters tracked by the analysis method<br>Line 3: Units of these parameters<br>Line 4: Compound analyzed</p>
<p>Tab 1: "Figure 1": Absorption data of photoinitiators TPO-L and PAG<br>Tab 2: "Figure 2": Nuclear magnetic resonance (NMR) data of trioxane degradation compared to model compounds<br>Tab 3: "Figure 3": Photo-dynamic scanning calorimetry (Photo-DSC) and photorheology data (irradiation with LED light source) of N-PAG and L-PAG<br>Tab 4: "Figure 4": Dynamic scanning calorimetry (DSC) of N-PAG, L-PAG, A-PAG, reference aldehyde and trioxane and NMR data of molten A-PAG sample compared toreference aldehyde.<br>Tab 5: "Figure 5": Tensile testing and dynamic mechanical analysis (DMTA) data of N-PAG and L-PAG<br>Tab 6: "Figure S1": NMR data of trioxane<br>Tab 7: "Figure S2": NMR data of reference aldehyde<br>Tab 8: "Figure S3": Photorheology data (irradiation with LED light source) of N-PAG and L-PAG<br>Tab 9: "Figure S4": ATR-IR data of trioxane and 10-undecanal<br>Tab 10: "Figure S5": DMTA and ATR-IR data of L-PAG formulation (uncured), L-PAG material (cured in Lumamat), A-PAG material directly after UV irradiation (after Uvitron) or after UV irradiation and subsequent DMTA measurement (after DMTA, polymeric/liquid part)<br>Tab 11: "Figure S6": ATR-IR data of aged (110 days) L-PAG material compared to fresh and aged A-PAG and reference aldehyde</p>
<p>The <strong>compound abbreviations/descriptions in the Excel file </strong>are described in the following:</p>
<p><em><strong>Small molecules:</strong><br>TPO-L: </em>Ethyl phenyl(2,4,6-trimethylbenzoyl)phosphinate (radical photoinitiator)<br><em>PAG: </em>photoacid generator <span lang="EN-GB">UVI6976 (mixture of triarylsulfonium hexafluoroantimonate salts in propylene carbonate)</span><br><em>trioxane</em>: trioxane-containing triene utilized as crosslinker (<span lang="EN-GB">1,3,5-trioxane-2,4,6-tris(9-decenyl)</span>)<br><em>trixoane+PAG</em>: trioxane-containing triene utilized as crosslinker mixed with PAG, not irradiated<br><em>trioxane+PAG+UV:</em> trioxane-containing triene utilized as crosslinker mixed with PAG, irradiated with ultraviolet (UV) light (Uvitron International INTELLIRAY 600 UV-oven; 320-500 nm Hg broadband UV lamp; 600 W; UV-A: 125 mW cm-2; vis: 125 mW cm-2, 300 s on both sides at 100% intensity)<br><em>10-undecanal: </em>reference compound for the small molecule degradation study<br><em>reference aldehyde</em>: model compound for trioxane degradation product for the material degradation study<br><em>CHTT</em>: trithiol comonomer (<span lang="EN-GB">1,2,4-cyclohexanetriethanethiol)</span></p>
<p><strong><em>Materials:</em></strong><br>All materials consist of a thiol-ene network consisting of equimolar amounts of trioxane and CHTT photopolymerized by TPO-L (1 wt%) and BHT (0.2 wt%). Inclusion of the PAG <span lang="EN-GB">UVI6976 (1 wt%) in the network and its irradiation condition is indicated in the following material abbreviations:</span><br><em>N-PAG = No PAG</em>: PAG was not added to the formulation/material<br><em>L-PAG = inactive PAG</em>: Formulation/material contains PAG but was not UV irradiated with the UV-oven<br><em>A-PAG</em>: Material contains PAG, which was activated by UV irradiation in the UV-oven as described above</p>
<p>NMR data included in the Excel file has additionally been added as raw data files (Bruker) in the <strong>folder "NMR data"</strong>, which can be opened with community-standard programmes (e.g. MestRe Nova, TopSpin).</p>
Transformer Network trained on Simulated X-ray photoelectron spectroscopy data for organic and inorganic compounds
<h2>Dataset Description</h2>
<p>This data repository provides the underlying data and neural network training scripts associated with the manuscript titled <em>"A Transformer Network for High-Throughput Material Characterisation with X-ray Photoelectron Spectroscopy"</em> by Simperl and Werner. </p>
<p>All data files are released under the Creative Commons Attribution 4.0 International (CC-BY) license, while all code files are distributed under the MIT license.</p>
<p>The repository contains simulated X-ray photoelectron spectroscopy (XPS) spectra stored as hdf5 files in the zipped (h5_files.zip) folder, which was generated using the software developed by the authors. The <em>NIST Standard Reference Database 100 – Simulation of Electron Spectra for Surface Analysis (SESSA)</em> is freely available at <a href="https://www.nist.gov/srd/nist-standard-reference-database-100" target="_new" rel="noopener">https://www.nist.gov/srd/nist-standard-reference-database-100</a>. </p>
<p>The neural network architecture is implemented using the PyTorch Lightning framework and is fully available within the attached materials as <em>Transformer_SimulatedSpectra.py </em>contained in the <em>python_scripts.zip. </em></p>
<p>The trained model and the list of materials for the train, test and validation sets are contained in the <em>models.zip</em> folder.</p>
<p>The repository contains all the data necessary to replot the figures from the manuscript. These data are available in the form of .csv files or .h5 files for the spectra. In addition, the repository also contains a Python script (<em>Plot_Data_Manuscript.ipynb</em>) which is contained in the <em>python_scripts.zip</em> file.</p>
<h3>Context and methodology</h3>
<p>The dataset and accompanying Python code files included in this repository were used to train a transformer-based neural network capable of directly inferring chemical concentrations from simulated survey X-ray photoelectron spectroscopy (XPS) spectra of bulk compounds.</p>
<p>The spectral dataset provided here represents the raw output from the SESSA software (version 2.2.2), prior to the normalization procedure described in the associated manuscript. This step of normalisation is of paramount importance for the effective training of the neural network.</p>
<p>The repository contains the Python scripts utilised to execute the spectral simulations and the neural network training on the Vienna Scientific Cluster (VSC5). In order to obtain guidance on the proper configuration of the Command Line Interface (CLI) tools required for SESSA, users are advised to consult the official SESSA manual, which is available at the following address: <a href="https://nvlpubs.nist.gov/nistpubs/NSRDS/NIST.NSRDS.100-2024.pdf" target="_new" rel="noopener">https://nvlpubs.nist.gov/nistpubs/NSRDS/NIST.NSRDS.100-2024.pdf</a>.</p>
<p>To run the neural network training we provided the <em>requirements_nn_training.txt </em>file that contains all the necessary python packages and version numbers. All other python scripts can be run locally with the python libraries listed in <em>requirements_data_analysis.txt.</em> </p>
<h3>Data details</h3>
<p><strong>HDF5 (in zip folder): </strong>As described in the manuscript, we simulate X-ray photoelectron spectra for each of the 7,587 inorganic [1] and organic [2] materials in our dataset. To reflect realistic experimental conditions, each simulated spectrum was augmented by systematically varying parameters such as peak width, peak shift, and peak type—all configurable within the SESSA software—as well as by applying statistical Poisson noise to simulate varying signal-to-noise ratios. These modifications account for experimentally observed and material-specific spectral broadening, peak shifts, and detector-induced noise. Each material is represented by an individual HDF5 (.h5) file, named according to its chemical formula and mass density (in g/cm³). For example, the file for SiO2 with a density of 2.196 gcm-3 is named SiO2_2.196.h5. For more complex chemical formulas, such as Co(ClO4)2 with a density of 3.33 gcm-3, the file is named Co_ClO4_2_3.33.h5. Within each HDF5 file, the metadata for each spectrum is stored alongside a fixed energy axis and the corresponding intensity values. The spectral data are organized hierarchically by augmentation parameters in the following directory structure, e.g. for Ac_10.0.h5 we have SNR_0/WIDTH_0.3/SHIFT_-3.0/PEAK_gauss/Ac_10.0/. These files can be easily inspected with H5Web in Visual Studio Code or using h5py in Python or any other h5 interpretable program.</p>
<p><strong>Session Files:</strong> The .ses files are SESSA specific input files that can be directly loaded into SESSA to specify certain input parameters for the initilization (ini), the geometry (geo) and the simulation parameters (sim_para) and are required by the python script <em>Simulation_Script_VSC_json.py </em>to run the simulation on the cluster.</p>
<p><strong>Json Files: </strong>The two json files (MaterialsListVSC_gauss.json, MaterialsListVSC_lorentz.json) are used as the input files to the Python script <em>Simulation_Script_VSC_json.py.</em> These files contain all the material specific information for the SESSA simulation.</p>
<p><strong>csv files:</strong> The csv files are used to generate the plots from the manuscript described in the section "<strong>Plotting Scripts"</strong>.</p>
<p><strong>npz files: </strong>The two .npz files (<em>element_counts.npz, single_elements.npz</em>) are python arrays that are needed by the <em>Transformer_SimulatedSpectra.py </em>script and contain the number of each single element in the dataset and an array of each single element present, respectively.</p>
<h2>SESSA Simulation Script</h2>
<p>There is one python file that sets the communication with SESSA:</p>
<ul>
<li><em>Simulation_Script_VSC_json.py:</em> This script is the heart of the simulation as it controls the communication through the CLI with SESSA using the specified input paramters in the .json and .ses files together with external functions specified in <em>VSC_function.py</em></li>
</ul>
<h3>Technical Details</h3>
<p><strong><em>Simulation_Script_VSC_json.py:</em></strong><em> </em>This script uses the functions of the <em>VSC_function.py </em>script (therefore needs to be placed in the same directory as this script) and can be called with the following command:</p>
<p> <code>python3 Simulation_Script_VSC_json.py MaterialsListVSC_gauss.json 0</code></p>
<p>It simulates the spectrum for the material at index 0 in the .json file and with the corresponding parameters specified in the .json file.</p>
<p>It is important that before running this script the following paths need to be specified:</p>
<ul>
<li>sessa_path:<em> </em>The path to their SESSA installation in <em>sessa_path </em>and the path to their session files in</li>
<li>folder_path: The path to their .ses files. In this directory an output folder will be generated where all the output files, including the simulated spectra, are written to. </li>
</ul>
<p>To run SESSA on a computing cluster it is important to have a working Xvfb (virtual frame buffer) or a similar tool available to which any graphical output from SESSA can be written to. </p>
<h2>Neural Network Training Script</h2>
<p>Before running the training script it is important to normalize the data such that the squared integral of the spectrum is 1 (as described in the manuscript) and shown in the code: <em>normalize_spectra.py</em> </p>
<p>For the neural network training we use the <em>Transformer_SimulatedSpectra.py </em>where the external functions used are specified in <em>external_functions.py. </em>This script contains the full description of the neural network architecture, the hyperparameter tuning and the Wandb logging. </p>
<p>In the <em>models.zip </em>folder the fully trained network <em>final_trained_model.ckpt</em> presented in the manuscript is available as well as the list of training, validation and testing materials <em>(test_materials_list.pt, train_materials_list.pt, val_materials_list.pt)</em> where the corresponding spectra are extracted from the hdf5 files. The file types .ckpt and .pt can be read in by using the pytorch specific load functions in Python, e.g.</p>
<pre><code>torch.load(train_materials_list)</code></pre>
<h3>Technical Details</h3>
<p><strong><em>normalize_spectra.py:</em> </strong>To run this script properly it is important to set up a python environment with the necessary libraries specified in the <em>requirements_data_analysis.txt </em>file. Then it can be called with</p>
<p><code>python3 normalize_spectra.py</code></p>
<p>where it is important to specify the path to the .h5 files containing the unnormalized spectra.</p>
<p><strong><em>Transformer_SimulatedSpectra.py:</em></strong><em> </em>To run this script properly on the cluster it is important to set up a python environment with the necessary libraries specified in the <em>requirements_nn_training.txt </em>file. This script also relies on <em>external_functions.py</em>, <em>single_elements.npz </em>and <em>element_counts.npz</em> (that should be placed in the same directory as the python script) file. This is important for creating the datasets for training, validation and testing and ensures that all the single elements appear in the testing set. You can call this script (on the cluster) within a slurm script to start the GPU training. </p>
<p><code>python3 Transformer_SimulatedSpectra.py</code></p>
<p>It is important that before running this script the following paths need to be specified:</p>
<ul>
<li>data_path: General path where all the data is stored</li>
<li>neural_network_data: The location where you keep your normalized hdf5 files</li>
<li>wandb_api_key: The api key to use wandb</li>
<li>ray_tesults: The location where you want to save your tuning results</li>
<li>checkpoints: The location where you want to save your ray checkpoints</li>
<li>saved_model_path: The location where you want to save your final models</li>
</ul>
<p>The following parameters can be set to true or false:</p>
<ul>
<li>ray_tune_activate: This activates the hyperparameter tuning</li>
<li>full_training_activate: This activates the full training where the hyperparameters need to be set manually </li>
<li>continue_training: If we want to train the same model for more epochs. In that case, it is important to set the data to the same train, validation and testing materials as the initially training when importing the dataloaders at the beginning. </li>
</ul>
<h2>Plotting Scripts</h2>
<p>With the script <em>Plot_Data_Manuscript.ipynb </em>we can plot all the figures in the manuscript using the .csv files and the normalized .h5 files. In order to use this code it is necessary to define the path variables at the beginning of the script accordingly to where the data (the .csv and .h5 files) are saved locally. The necessary Python libraries can be installed from <em>requirements_data_analysis.txt. </em> </p>
<h3>Figure Data</h3>
<p><strong>Figure 2: </strong>The data for figure 2 showing the chemical distribution in the dataset can directly be plotted with the file <em>elements_counts_periodic_table.csv</em></p>
<p><strong>Figure 3: </strong>The data for figure 3 showing the survey spectrum of SiO2 and the augmented data features for noise, shift and width can be extracted from SiO2_2.196.h5. </p>
<p><strong>Figure 5: </strong>The data for the validation and training loss curve can be retrieved from the <em>metrics.csv</em> file that contains the data for the training and validation loss. </p>
<p><strong>Figure 6: </strong>The polar plot indicating the distriubtion of the mean absolute error for the chemical concentration for each correctly predicted material can be generated from the <em>tp_elements_only_metrics.csv.</em></p>
<p><strong>Figure 7:</strong> The confusion matrix can be produced from the <em>confusion_matrix.csv</em> containing for each element the values for true negative (tn), false negative (fn), false positive (fp) and true positive (tp).</p>
<p><strong>Figure 8a and 8c: </strong>The two example spectra can be produced from the hdf5 files for CoCr2O4_5.14.h5 and Pb2SiO4_7.6.h5 both for snr:10, width: 0.6eV, shift: -3.0eV and peak type: Lorentz.</p>
<p><strong>Figure 8b and 8d: </strong>The predicted and true concentrations for each element can be extracted from the <em>concentration_prediction_CoCr2O4.csv </em>and <em>concentration_prediction_Pb2SiO4.csv</em>, respectively. <em> </em> </p>
Modeling Safety and Security Compliance in a Pilot Factory: A Cobot and Milling Machine Use Case Using AutomationML and OWL
<p>This dataset demonstrates the representation of <strong>AutomationML</strong> (an XML-based standard for exchanging engineering data in industrial automation) and <strong>OWL</strong> (Web Ontology Language for semantic modeling) to represent safety and security aspects in a smart factory setup.</p>
<h2><strong>Applications of AutomationML</strong></h2>
<ol>
<li><strong>System Integration and Monitoring:</strong> AutomationML helps connect OT systems with real-time monitoring tools like OPC UA, enabling continuous supervision of devices such as PLCs and sensors.</li>
<li><strong>Asset Risk Modeling:</strong> By integrating standards like <a href="https://en.wikipedia.org/wiki/IEC_62443">IEC 62443</a>, AML supports the modeling of security-focused assets and risk assessments.</li>
<li><strong>Network Security and Topology:</strong> AML can model network structures, define security zones and secure interconnections — useful for ICS environments.</li>
<li> <strong>RoleClass Libraries and Semantics:</strong> External classification systems like eCl@ss and IEC 62443 can be used with AML to improve semantic context and classification of assets.</li>
<li><strong>Detailed Asset Modeling:</strong> AML is used to represent OT components such as sensors, actuators, controllers, and network devices, including their communication protocols and connections.</li>
</ol>
<h2>Applications of OWL</h2>
<ol>
<li><strong>Ontology Visualization:</strong> Tools like Protégé allow visualization of relationships between system components like PLCs, sensors, and firewalls.</li>
<li><strong>Security Risk Assessment: </strong>OWL models can be queried using SPARQL or DL queries to detect vulnerabilities in industrial systems.</li>
<li><strong>Compliance Reporting:</strong> OWL ontologies integrated with reasoning engines allow automated generation of reports for standards such as IEC 62443.</li>
</ol>
<h2><strong>Use Case: TU Wien Pilot Factory <br></strong></h2>
<p>We demonstrate the proposed representation of AutomationML and OWL modelling with a use case illustrated in Figure below, which shows the deployment of an automated smart pilot factory setup. This setup includes an ABB collaborative robotic arm and critical components, including the SINUMERIK PCU and NCU controllers, which manage the EMCO MAXXTURN 45 CNC milling machine. The network is secured through MGUARD routers, enterprise security gateways, and managed switches for handling data traffic. A remote maintenance server is enabled via secure connections, and remote communication is facilitated by an OPC UA server connected to multiple hosts. The robotic arm has appropriate tools and end-effectors in the CNC machine's workspace. The completed workpiece from the CNC machine is picked up by the robotic arm and placed in a nearby tray for further processing. This integrated approach enables real-time monitoring, predictive maintenance, and efficient handling of maintenance tasks, thereby optimizing production processes in the CNC machining environment. Additionally, it helps identify potential security vulnerabilities.</p>
<h2>Classes Modeled in the System</h2>
<ul>
<li><strong>System Under Consideration:</strong> Defines what is being analyzed.</li>
<li><strong>Group:</strong> Logical or organizational groupings.</li>
<li><strong>Component:</strong> Hardware and software parts of the system.</li>
<li><strong>Requirement:</strong> Safety and security rules and goals.</li>
<li><strong>Stakeholders:</strong> People or groups with an interest in the system.</li>
<li><strong>Parameter:</strong> Technical settings or values for system components.</li>
<li><strong>Unit:</strong> Measurement units for parameters.</li>
<li><strong>Connection:</strong> Relationships or data links between system parts.</li>
</ul>
<h2>Safety and security compliance</h2>
<p>The standards used in this representation are for safety we use the <a href="https://en.wikipedia.org/wiki/IEC_61508">IEC 61508</a>- a international standard for functional safety concerning electrical, electronic, and programmable electronic safety-related systems. It outlines methods for designing, deploying, and maintaining such systems, particularly those with automatic protection functions. For security we use IEC 62443-3-3 which defines system security requirements and security capability levels to build an IACS that meets the target security level and evaluate your practice for each requirement.</p>
<h2>Related Publications</h2>
<ol>
<li>M. Bhole, W. Kastner and T. Sauter, "From Manual to Semi-Automated Safety and Security Requirements Engineering: Ensuring Compliance in Industry 4.0," <em>IECON 2024 - 50th Annual Conference of the IEEE Industrial Electronics Society</em>, Chicago, IL, USA, 2024, pp. 1-8, doi: <a href="https://doi.org/10.1109/IECON55916.2024.10905636">10.1109/IECON55916.2024.10905636</a>.</li>
<li>M. Bhole, T. Sauter, S. Semper and W. Kastner, "Why to Fail Fast and Often: A Strategy for OT Safety and Security Evaluation," in <em>IEEE Access</em>, vol. 13, pp. 51793-51812, 2025, doi: <a href="https://doi.org/10.1109/ACCESS.2025.3553011">10.1109/ACCESS.2025.3553011</a>.</li>
</ol>
Strawberry nectar colour stability and aroma: influence of cultivar, harvest time and ripening stage
<h2>Project HiStabJuice</h2>
<p>The HiStabJuice project evaluates various factors influencing colour stability in fruit juices, focussing on raw materials and preservation techniques, as well as associated effects, deleterious to the health benefits of the final products.</p>
<h2>Contextual information</h2>
<ul>
<li>Strawberry purees were analysed using:
<ul>
<li>GC-FID to measure furaneol and mesifuran.</li>
<li>GC-MS to measure 12 aroma compounds (including esters, C6 compounds, and lactones).</li>
</ul>
</li>
<li>Purees came from 12 cultivars, from two countries, at different ripening stages and harvest times.</li>
<li>Purees were processed into nectar, and colour stability and aroma were monitored over 12 weeks.</li>
<li>Both colour and aroma were strongly influenced by the strawberry cultivar.</li>
<li>Nectars made from overripe strawberries had:
<ul>
<li>Higher colour stability.</li>
<li>Higher concentrations of aroma compounds.</li>
</ul>
</li>
<li>Some cultivars were more influenced by harvest time than by ripening stage.</li>
<li>Strawberries from Poland showed smaller differences between ripening stages compared to those from Austria.</li>
<li>Significant correlations were found:
<ul>
<li>Furaneol, hexanal, γ-decalactone, and γ-dodecalactone concentrations correlated with good colour after 12 weeks.</li>
<li>Only γ-decalactone concentration correlated with higher colour stability, although this might be due to cultivar effects.</li>
</ul>
</li>
</ul>
<h2>Files</h2>
<p>All data are presented as Excel file.</p>
<h2>Funding</h2>
<p>This project has received funding by the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie grant agreement No. <a href="https://doi.org/10.3030/956257">956257</a>. This research was also funded in part by the Austrian Science Fund (FWF) [<a href="https://doi.org/10.55776/I6939">I6939</a>].</p>
<p> </p>
REASSEMBLE: A Multimodal Dataset for Contact-rich Robotic Assembly and Disassembly
<h1>REASSEMBLE: A Multimodal Dataset for Contact-rich Robotic Assembly and Disassembly</h1>
<h2> Introduction</h2>
<p dir="auto">Robotic manipulation remains a core challenge in robotics, particularly for contact-rich tasks such as industrial assembly and disassembly. Existing datasets have significantly advanced learning in manipulation but are primarily focused on simpler tasks like object rearrangement, falling short of capturing the complexity and physical dynamics involved in assembly and disassembly. To bridge this gap, we present REASSEMBLE (Robotic assEmbly disASSEMBLy datasEt), a new dataset designed specifically for contact-rich manipulation tasks. Built around the NIST Assembly Task Board 1 benchmark, REASSEMBLE includes four actions (pick, insert, remove, and place) involving 17 objects. The dataset contains 4,551 demonstrations, of which 4,035 were successful, spanning a total of 781 minutes. Our dataset features multi-modal sensor data including event cameras, force-torque sensors, microphones, and multi-view RGB cameras. This diverse dataset supports research in areas such as learning contact-rich manipulation, task condition identification, action segmentation, and more. We believe REASSEMBLE will be a valuable resource for advancing robotic manipulation in complex, real-world scenarios.</p>
<div dir="auto">
<h3>✨ Key Features</h3>
<ul>
<li>Multimodality: REASSEMBLE contains data from robot proprioception, RGB cameras, Force&Torque sensors, microphones, and event cameras</li>
<li>Multitask labels: REASSEMBLE contains labeling which enables research in Temporal Action Segmentation, Motion Policy Learning, Anomaly detection, and Task Inversion.</li>
<li>Long horizon: Demonstrations in the REASSEMBLE dataset cover long horizon tasks and actions which usually span multiple steps.</li>
<li>Hierarchical labels: REASSEMBLE contains actions segmentation labels at two hierarchical levels.</li>
</ul>
<h2> Dataset Collection</h2>
<p>Each demonstration starts by randomizing the board and object poses, after which an operator teleoperates the robot to assemble and disassemble the board while narrating their actions and marking task segment boundaries with key presses. The narrated descriptions are transcribed using Whisper [1], and the board and camera poses are measured at the beginning using a motion capture system, though continuous tracking is avoided due to interference with the event camera. Sensory data is recorded with rosbag and later post-processed into HDF5 files without downsampling or synchronization, preserving raw data and timestamps for future flexibility. To reduce memory usage, video and audio are stored as encoded MP4 and MP3 files, respectively. Transcription errors are corrected automatically or manually, and a custom visualization tool is used to validate the synchronization and correctness of all data and annotations. Missing or incorrect entries are identified and corrected, ensuring the dataset’s completeness. Low-level Skill annotations were added manually after data collection, and all labels were carefully reviewed to ensure accuracy.</p>
<h2> Dataset Structure</h2>
<p>The dataset consists of several HDF5 (.h5) and JSON (.json) files, organized into two directories. The <code>poses</code> directory contains the JSON files, which store the poses of the cameras and the board in the world coordinate frame. The <code>data</code> directory contains the HDF5 files, which store the sensory readings and annotations collected as part of the REASSEMBLE dataset. Each JSON file can be matched with its corresponding HDF5 file based on their filenames, which include the timestamp when the data was recorded. For example, <code>2025-01-09-13-59-54_poses.json</code> corresponds to <code>2025-01-09-13-59-54.h5</code>.</p>
<p>The structure of the JSON files is as follows:</p>
<pre><code>{"Hama1": [
[x ,y, z],
[qx, qy, qz, qw]
],
"Hama2": [
[x ,y, z],
[qx, qy, qz, qw]
],
"DAVIS346": [
[x ,y, z],
[qx, qy, qz, qw]
],
"NIST_Board1": [
[x ,y, z],
[qx, qy, qz, qw]
]
}</code></pre>
</div>
<p><code>[x, y, z]</code> represent the position of the object, and <code>[qx, qy, qz, qw]</code> represent its orientation as a quaternion.</p>
<p>The HDF5 (.h5) format organizes data into two main types of structures: <strong>datasets</strong>, which hold the actual data, and <strong>groups</strong>, which act like folders that can contain datasets or other groups. In the diagram below, groups are shown as folder icons, and datasets as file icons. The main group of the file directly contains the video, audio, and event data. To save memory, video and audio are stored as encoded byte strings, while event data is stored as arrays. The robot’s proprioceptive information is kept in the <strong>robot_state</strong> group as arrays. Because different sensors record data at different rates, the arrays vary in length (signified by the N_xxx variable in the data shapes). To align the sensory data, each sensor’s timestamps are stored separately in the <strong>timestamps</strong> group. Information about action segments is stored in the <strong>segments_info</strong> group. Each segment is saved as a subgroup, named according to its order in the demonstration, and includes a start timestamp, end timestamp, a success indicator, and a natural language description of the action. Within each segment, low-level skills are organized under a <strong>low_level</strong> subgroup, following the same structure as the high-level annotations.<br><br> <date_time>.h5<br>├── hama1 - mp4 encoded video<br>├── hama2_audio - mp3 encoded audio<br>├── hama2 - mp4 encoded video<br>├── hama2_audio - mp3 encoded audio<br>├── hand - mp4 encoded video<br>├── hand_audio - mp3 encoded audio<br>├── capture_node - mp4 encoded video (Event camera)<br>├── events - N_events x 3 (x, y, polarity)<br>├── robot_state<br>│ ├── compensated_base_force - N_bf x 3 (x, y, z)<br>│ ├── compenseted_base_torque - N_bt x 3 (x, y, z)<br>│ ├── gripper_positions - N_grip x 2 (left, right)<br>│ ├── joint_efforts - N_je x 7 (one for each joint)<br>│ ├── joint_positions - N_jp x 7 (one for each joint)<br>│ ├── joint_velocities - N_jv x 7 (one for each joint)<br>│ ├── measured_force - N_mf x 3 (x, y, z)<br>│ ├── measured_torque - N_mt x 7 (x, y, z)<br>│ ├── pose - N_poses x 7 (x, y, z, qw, qx, qy, qz)<br>│ └── velocity - N_vels x 7 (x, y, z, ω, γ, θ)<br>├── timestamps<br>│ ├── hama1 - N_hama1 x 1<br>│ ├── hama2 - N_hama1 x 1<br>│ ├── hand - N_hand x 1<br>│ ├── capture_node - N_capture x 1<br>│ ├── events - N_events x 1<br>│ ├── compensated_base_force - N_bf x 1<br>│ ├── compenseted_base_torque - N_bt x 1<br>│ ├── gripper_positions - N_grip x 1<br>│ ├── joint_efforts - N_je x 1<br>│ ├── joint_positions - N_jp x 1<br>│ ├── joint_velocities - N_jv x 1<br>│ ├── measured_force - N_mf x 1<br>│ ├── measured_torque - N_mt x 1<br>│ ├── pose - N_poses x 1<br>│ └── velocity - N_vels x 1<br>└── segments_info<br> ├── 0<br> │ ├── start - scalar<br> │ ├── end - scalar<br> │ ├── success - Boolean<br> │ ├── text - scalar<br> │ └── Low_level<br> │ ├── 0<br> │ │ ├── start - scalar<br> │ │ ├── end - scalar<br> │ │ ├── success - Boolean<br> │ │ └── text - scalar<br> │ └── 1<br> │ ⋮<br> └── 1<br> ⋮</p>
<p>The <strong>splits</strong> folder contains two text files which list the h5 files used for the traning and validation splits.</p>
<h2> Important Resources</h2>
<p>The project website contains more details about the REASSEMBLE dataset. The Code for loading and visualizing the data is avaibile on our github repository.</p>
<p> Project website: <a href="https://tuwien-asl.github.io/REASSEMBLE_page/" target="_new">https://tuwien-asl.github.io/REASSEMBLE_page/</a><br> Code: <a href="https://github.com/TUWIEN-ASL/REASSEMBLE" target="_new">https://github.com/TUWIEN-ASL/REASSEMBLE</a></p>
<div>
<h2>⚠️ File comments</h2>
</div>
<div>Below is a table which contains a list records which have any issues. Issues typically correspond to missing data from one of the sensors.</div>
<div>
<table style="border-collapse: collapse; width: 907px; height: 219.6px; border-width: 2px;"><colgroup><col style="width: 433px;"><col style="width: 472px;"></colgroup>
<tbody>
<tr style="height: 19.6px;">
<td style="width: 116pt; border-width: 2px; height: 19.6px;">Recording</td>
<td style="width: 146pt; border-width: 2px; height: 19.6px;">Issue</td>
</tr>
<tr style="height: 20px;">
<td style="width: 116pt; height: 20px; border-width: 2px;">2025-01-10-15-28-50.h5</td>
<td style="width: 146pt; border-width: 2px; height: 20px;">hand cam missing at beginning</td>
</tr>
<tr style="height: 20px;">
<td style="height: 20px; border-width: 2px;">2025-01-10-16-17-40.h5</td>
<td style="border-width: 2px; height: 20px;">missing hand cam</td>
</tr>
<tr style="height: 20px;">
<td style="height: 20px; border-width: 2px;">2025-01-10-17-10-38.h5</td>
<td style="border-width: 2px; height: 20px;">hand cam missing at beginning</td>
</tr>
<tr style="height: 20px;">
<td style="height: 20px; border-width: 2px;">2025-01-10-17-54-09.h5</td>
<td style="border-width: 2px; height: 20px;">no empty action at beginning</td>
</tr>
<tr style="height: 20px;">
<td style="height: 20px; border-width: 2px;">2025-01-11-14-22-09.h5</td>
<td style="border-width: 2px; height: 20px;">no empty action at beginning</td>
</tr>
<tr style="height: 20px;">
<td style="height: 20px; border-width: 2px;">2025-01-11-14-45-48.h5</td>
<td style="border-width: 2px; height: 20px;">F/T not valid for last action</td>
</tr>
<tr style="height: 20px;">
<td style="height: 20px; border-width: 2px;">2025-01-11-15-27-19.h5</td>
<td style="border-width: 2px; height: 20px;">F/T not valid for last action</td>
</tr>
<tr style="height: 20px;">
<td style="height: 20px; border-width: 2px;">2025-01-11-15-35-08.h5</td>
<td style="border-width: 2px; height: 20px;">F/T not valid for last action</td>
</tr>
<tr style="height: 20px;">
<td style="height: 20px; border-width: 2px;">2025-01-13-11-16-17.h5</td>
<td style="border-width: 2px; height: 20px;">gripper broke for last action</td>
</tr>
<tr style="height: 20px;">
<td style="height: 20px; border-width: 2px;">2025-01-13-11-18-57.h5</td>
<td style="border-width: 2px; height: 20px;">pose not available for last action</td>
</tr>
</tbody>
</table>
</div>
<p> </p>
Quantifying turbulent mixing in plunging river inflows: Revelations from field measurements in Lake Geneva - supporting data and scripts
<p>This folder includes raw and treated data resulting from measurements performed in the near-field zone of the Rhône River mouth in Lake Geneva, as well as MATLAB scripts that can be used for their analysis. The raw data folder includes ADCP measurement data of the velocity field and signal backscatter along a grid of transverse and longitudinal transects of the plunging hyperpycnal Rhône River inflow into Lake Geneva for 6 measurement campaigns (23 November 2017, 9 March 2019, 23 June 2019, 24 June 2019, 26 June 2019 and 11 July 2019). The treated data folder includes processed lake, river and inflow data (temperature, discharge, salinity, sediment concentration, density, Froude number, relative density difference and densimetric Froude number) that was based on data originally generated by the Commission Internationale pour la Protection des Eaux du Léman (CIPEL; Rimet et al., 2020) at the monitoring station SHL2 and the Swiss Federal Office for the Environment (FOEN) at the monitoring station at Porte du Scex (https://www.hydrodaten.admin.ch/de/2009.html).</p>
<p>These datasets were reported in the paper "Quantifying turbulent mixing in plunging river inflows: Revelations from field measurements in Lake Geneva" and can be downloaded here for validation and further analysis. The scripts used to open, treat and visualize the data as they are in the paper are included, as well as the figures included in the paper and the processed data visualized in the figures. The structure and contents of the folders are described in the README file. In order to run the scripts (.m) and open some of the treated data (.mat) successfully, the MATLAB software package is necessary. The MATLAB scripts are based on and include scripts from the adcptools software package (Bart Vermeulen, 2015; Vermeulen et al., 2014; https://sourceforge.net/projects/adcptools/). The MATLAB version used for the data treatment is MATLAB R2022a.</p>
<p>All data are protected under the Creative Commons Attribution 4.0 International license. All scripts are protected under the GNU General Public License v3.0 (or later).</p>