Python GUI software for folder browsing and viewing text, image, Cine, and HDF files
In synchrotron facilities, where Linux OS and open-source software are the primary tools, users often need to switch between multiple GUI applications for different tasks such as Nautilus for folder browsing, NeXpy or HDFView for viewing HDF files, Gedit for text files, and ImageJ for image viewing.
This separation of tools is inconvenient, especially since many users are not familiar with the Linux OS. DatView provides a unified GUI for all these tasks, improving efficiency and user experience. DatView runs across multiple operating systems.
DatView has been developed following a few key guidelines:
- Minimize dependencies and the codebase.
- Maximize functionality and maintainability.
With these principles in mind, DatView was built using only a few dependencies:
- H5py, Hdf5Plugin, Pillow, and Matplotlib.
- The GUI components are built with Tkinter, a built-in Python library.
For distributing the software through Pip and Conda, the software is structured based on the RUI (Rendering-Utilities-Interactions) concept, which is a user-friendly adaptation of the MVC design pattern.
For the easiest usage, a monolithic codebase (datview.py, approximately 1,850 lines) is provided, allowing users to simply copy the file and run it without needing to install the software through Pip or Conda, provided that their Python environment includes H5py, Pillow, and Matplotlib.
-
Fast folder browsing and file listing.
-
Viewing metadata in an HDF file or Cine file. Displaying the contents of a text file.
-
Interactive viewing 1D, 2D, or 3D datasets in an HDF file. Supports ROI zooming, line profile selection, contrast adjustment, and slicing along axis 0 and 1
-
Interactive viewing of TIF files in a folder or frames of a Cine file.
-
Interactive viewing of an image (JPG, PNG, TIF,...)
-
Viewing 1D or 2D datasets of an HDF file in table format.
-
Opening multiple interactive viewers simultaneously.
-
Saving a 2D array in a 3D dataset of an HDF file or Cine file as an image.
-
Saving a 1D or 2D dataset of an HDF file or the current line profile as a CSV file.
Install Miniconda, Anaconda or Miniforge, then open a Linux terminal or the Miniconda/Anaconda PowerShell prompt and use the following commands for installation.
Using pip:
pip install datview
Using conda:
conda install -c conda-forge datview
Once installed, launching Datview with
datview
Using -h for option usage
datview -h
Installing from source:
- If using a single file:
- Copy the file datview.py. Install python, h5py, pillow, and matplotlib
- Run:
python datview.py
- If using setup.py
- Create conda environment
conda create -n datview python=3.11 conda activate datview - Clone the source (git needs to be installed)
git clone https://github.com/algotom/datview.git - Navigate to the cloned directory (having setup.py file)
pip install .
- Create conda environment
Generating the executable application
-
Install the required Python packages in your environment: PyInstaller, H5py, Hdf5plugin, Pillow, Matplotlib
-
Use the build_exe_app.py script and run the following command:
python build_exe_app.py
- Double-click an HDF or CINE file to display its metadata.
- Click "Interactive Viewer" to view images from a 3D dataset in an HDF file or from a folder of TIFF files.
- Click "Save Image" to save the image you’re currently viewing in the Interactive-Viewer window of an HDF file.
- Click "Save Table" to save a 1D or 2D array from an HDF dataset to a CSV file.



