Broh5's documentation ===================== Broh5 is a GUI (Graphical User Interface) software for viewing HDF/H5/NXS files. Unlike previous viewers built with various languages and platforms, Broh5's UI components are based on web browsers but the software written entirely in Python, thanks to the `NiceGUI `__ framework. .. image:: toc/figs/fig_01.png :width: 100 % :align: center **Source code:** https://github.com/algotom/broh5 **Author:** Nghia T. Vo - NSLS-II, Brookhaven National Laboratory, US. **Keywords:** HDF Viewer, Browser-based GUI. Features ======== - A browser-based GUI software for viewing HDF (Hierarchical Data Format) file written in pure Python with minimal codebase. - The software provides essential tools for viewing hdf files such as: displaying tree structures or paths to datasets/groups; and presenting datasets as values, images, plots, or tables. Users also can save datasets to images or csv formats. - Broh5 can view compressed hdf files by using compressors from `hdf5plugin `__. - The codebase is designed using the RUI (Rendering-Utilities-Interactions) concept, which is known as the MVC (Model-View-Controller) pattern in the GUI development community. This design allows for the development of complex software and makes it easier to extend its capabilities. Usage ===== - Users can open a hdf file by clicking the "Select file" button. Multiple hdf files can be opened sequentially. - Upon opening, the tree structure of the current hdf file is displayed, allowing users to navigate different branches (hdf groups) or leaves (hdf datasets). The path to datasets/groups is also displayed. If a dataset contains a string or a single float/integer value, it will be shown. - If dataset is a 3D array, it's presented as an image. Users can slice through various images and adjust the contrast. Slicing is available for different axes; however, for large datasets, slicing along axis 2 is disabled due to processing time. Starting from version 1.3.0, users can choose to display a zoomed area of the current image or the intensity profile across a mouse-clicked location. - Datasets that are 1D or 2D arrays will be shown as plots or tables, selectively. - Users have the option to save images or tables to disk. Video demonstration: .. image:: https://img.youtube.com/vi/lEJ6LKOaIFk/sddefault.jpg :target: https://www.youtube.com/watch?v=lEJ6LKOaIFk :alt: Demo Table of Contents ================= .. toctree:: :numbered: :maxdepth: 4 toc/installation toc/structure toc/api