datview


Namedatview JSON
Version 1.1.0 PyPI version JSON
download
home_pagehttps://github.com/algotom/datview
SummaryGUI software for viewing images, text, cine, and HDF files.
upload_time2025-02-09 22:21:13
maintainerNone
docs_urlNone
authorNghia Vo
requires_python>=3.9
licenseApache 2.0
keywords hdf viewer cine viewer nxs viewer image viewer data viewer
VCS
bugtrack_url
requirements h5py hdf5plugin pillow matplotlib
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # DatView
### (Dat)a (View)er software 
![Datview_Logo](https://github.com/algotom/datview/raw/main/icon.png)

---

*Python GUI software for folder browsing and viewing text, image, Cine, and HDF files*

---


Motivation
==========
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.

Design Philosophy
=================

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.
  - Matplotlib widgets are used to enhance interactivity while keeping the code minimal.

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,650 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.

Features
========

-   Fast folder browsing and file listing. Note that the GUI appears more visually 
    refined on Windows OS compared to the demonstration below, which was captured on Red Hat Linux.

    ![Fig1](https://github.com/algotom/datview/raw/main/figs/fig1.png)

-   Viewing metadata in an HDF file or Cine file. Displaying the contents of a text file.

    ![Fig2](https://github.com/algotom/datview/raw/main/figs/fig2.png)

-   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 

    ![Fig3](https://github.com/algotom/datview/raw/main/figs/fig3.png)

-   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.

    ![Fig4](https://github.com/algotom/datview/raw/main/figs/fig4.png)

Installation
============

Install [Miniconda or Anaconda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html), then 
open a Linux terminal or the Miniconda/Anaconda PowerShell prompt and use the following commands
for installation.

Using pip:
```commandline
pip install datview
```
Using conda:
```commandline
conda install -c algotom datview
```
Once installed, launching Datview with
```commandline
datview
```
Using -h for option usage
```commandline
datview -h
```
---
Installing from source:
- If using a single file:
    + Copy the file *datview.py*. Install python, h5py, pillow, and matplotlib
    + Run:
        ```commandline
        python datview.py
        ```
- If using setup.py
    + Create conda environment
      ```commandline
      conda create -n datview python=3.11
      conda activate datview
      ``` 
    + Clone the source (git needs to be installed)
      ```commandline
      git clone https://github.com/algotom/datview.git
      ```
    + Navigate to the cloned directory (having setup.py file)
      ```commandline
      pip install .
      ```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/algotom/datview",
    "name": "datview",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "HDF Viewer, CINE viewer, NXS Viewer, Image viewer, Data viewer",
    "author": "Nghia Vo",
    "author_email": "nvo@bnl.gov",
    "download_url": "https://files.pythonhosted.org/packages/e7/22/ceadd172f3c4f0456865ca7a9177bd77de7802b8bfdae24fd17f0d61b693/datview-1.1.0.tar.gz",
    "platform": "Any",
    "description": "# DatView\n### (Dat)a (View)er software \n![Datview_Logo](https://github.com/algotom/datview/raw/main/icon.png)\n\n---\n\n*Python GUI software for folder browsing and viewing text, image, Cine, and HDF files*\n\n---\n\n\nMotivation\n==========\nIn synchrotron facilities, where Linux OS and open-source software are the primary tools, \nusers often need to switch between multiple GUI applications for different tasks such as \nNautilus for folder browsing, NeXpy or HDFView for viewing HDF files, Gedit for \ntext files, and ImageJ for image viewing.\n\nThis separation of tools is inconvenient, especially since many users are not familiar \nwith the Linux OS. **DatView** provides a unified GUI for all these tasks, improving \nefficiency and user experience. **DatView** runs across multiple operating systems.\n\nDesign Philosophy\n=================\n\nDatView has been developed following a few key guidelines:\n-   Minimize dependencies and the codebase.\n-   Maximize functionality and maintainability.\n\nWith these principles in mind, DatView was built using only a few dependencies:\n-   H5py, Hdf5Plugin, Pillow, and Matplotlib.\n-   The GUI components are built with Tkinter, a built-in Python library.\n  - Matplotlib widgets are used to enhance interactivity while keeping the code minimal.\n\nFor distributing the software through Pip and Conda, the software is structured based on \nthe RUI (Rendering-Utilities-Interactions) concept, which is a user-friendly \nadaptation of the MVC design pattern.\n\nFor the easiest usage, a monolithic codebase (**datview.py**, approximately 1,650 lines) \nis provided, allowing users to simply copy the file and run it without needing to install \nthe software through Pip or Conda, provided that their Python environment includes H5py, Pillow, \nand Matplotlib.\n\nFeatures\n========\n\n-   Fast folder browsing and file listing. Note that the GUI appears more visually \n    refined on Windows OS compared to the demonstration below, which was captured on Red Hat Linux.\n\n    ![Fig1](https://github.com/algotom/datview/raw/main/figs/fig1.png)\n\n-   Viewing metadata in an HDF file or Cine file. Displaying the contents of a text file.\n\n    ![Fig2](https://github.com/algotom/datview/raw/main/figs/fig2.png)\n\n-   Interactive viewing 1D, 2D, or 3D datasets in an HDF file. Supports ROI zooming, line profile \n    selection, contrast adjustment, and slicing along axis 0 and 1 \n\n    ![Fig3](https://github.com/algotom/datview/raw/main/figs/fig3.png)\n\n-   Interactive viewing of TIF files in a folder or frames of a Cine file.\n-   Interactive viewing of an image (JPG, PNG, TIF,...)\n-   Viewing 1D or 2D datasets of an HDF file in table format.\n-   Opening multiple interactive viewers simultaneously.\n-   Saving a 2D array in a 3D dataset of an HDF file or Cine file as an image.\n-   Saving a 1D or 2D dataset of an HDF file or the current line profile as a CSV file.\n\n    ![Fig4](https://github.com/algotom/datview/raw/main/figs/fig4.png)\n\nInstallation\n============\n\nInstall [Miniconda or Anaconda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html), then \nopen a Linux terminal or the Miniconda/Anaconda PowerShell prompt and use the following commands\nfor installation.\n\nUsing pip:\n```commandline\npip install datview\n```\nUsing conda:\n```commandline\nconda install -c algotom datview\n```\nOnce installed, launching Datview with\n```commandline\ndatview\n```\nUsing -h for option usage\n```commandline\ndatview -h\n```\n---\nInstalling from source:\n- If using a single file:\n    + Copy the file *datview.py*. Install python, h5py, pillow, and matplotlib\n    + Run:\n        ```commandline\n        python datview.py\n        ```\n- If using setup.py\n    + Create conda environment\n      ```commandline\n      conda create -n datview python=3.11\n      conda activate datview\n      ``` \n    + Clone the source (git needs to be installed)\n      ```commandline\n      git clone https://github.com/algotom/datview.git\n      ```\n    + Navigate to the cloned directory (having setup.py file)\n      ```commandline\n      pip install .\n      ```\n",
    "bugtrack_url": null,
    "license": "Apache 2.0",
    "summary": "GUI software for viewing images, text, cine, and HDF files.",
    "version": "1.1.0",
    "project_urls": {
        "Download": "https://github.com/algotom/datview.git",
        "Homepage": "https://github.com/algotom/datview"
    },
    "split_keywords": [
        "hdf viewer",
        " cine viewer",
        " nxs viewer",
        " image viewer",
        " data viewer"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6e97f05b1399c2eced8b5f2c8bb231c5398aee559747df12a2c884f63dc16ea8",
                "md5": "619d92181f600b0d16b72fde43678d8a",
                "sha256": "e21e6eca3db06299c6819fa49368dc6ca0d4d5caaa898a544d45611d536ffa66"
            },
            "downloads": -1,
            "filename": "datview-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "619d92181f600b0d16b72fde43678d8a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 57680,
            "upload_time": "2025-02-09T22:21:12",
            "upload_time_iso_8601": "2025-02-09T22:21:12.659752Z",
            "url": "https://files.pythonhosted.org/packages/6e/97/f05b1399c2eced8b5f2c8bb231c5398aee559747df12a2c884f63dc16ea8/datview-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e722ceadd172f3c4f0456865ca7a9177bd77de7802b8bfdae24fd17f0d61b693",
                "md5": "a0115f5015a4d2c8959d557d501cbe01",
                "sha256": "cfc6b19ea6c82e98a47bb43da08216bd0c9fde4ca058d523cb17079448d210d0"
            },
            "downloads": -1,
            "filename": "datview-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "a0115f5015a4d2c8959d557d501cbe01",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 59155,
            "upload_time": "2025-02-09T22:21:13",
            "upload_time_iso_8601": "2025-02-09T22:21:13.911556Z",
            "url": "https://files.pythonhosted.org/packages/e7/22/ceadd172f3c4f0456865ca7a9177bd77de7802b8bfdae24fd17f0d61b693/datview-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-09 22:21:13",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "algotom",
    "github_project": "datview",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "h5py",
            "specs": []
        },
        {
            "name": "hdf5plugin",
            "specs": []
        },
        {
            "name": "pillow",
            "specs": []
        },
        {
            "name": "matplotlib",
            "specs": []
        }
    ],
    "lcname": "datview"
}
        
Elapsed time: 0.49217s