mdaviz


Namemdaviz JSON
Version 1.1.4 PyPI version JSON
download
home_pageNone
SummaryPython Qt5 application to visualize MDA data.
upload_time2025-07-28 18:50:25
maintainerNone
docs_urlNone
authorNone
requires_python<3.14,>=3.10
licenseNone
keywords bluesky databroker tiled catalog
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # mdaviz

Python Qt6 application to visualize mda data.

## Status Badges

CI/CD | Code Quality | Documentation | Package
--- | --- | --- | ---
[![CI](https://github.com/BCDA-APS/mdaviz/workflows/CI/badge.svg)](https://github.com/BCDA-APS/mdaviz/actions/workflows/ci.yml) | [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff) | [![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-blue.svg)](https://bcda-aps.github.io/mdaviz/) | [![PyPI version](https://badge.fury.io/py/mdaviz.svg?cache=1)](https://badge.fury.io/py/mdaviz) [![GitHub release](https://img.shields.io/github/release/BCDA-APS/mdaviz.svg)](https://github.com/BCDA-APS/mdaviz/releases)

Coverage | License | Python | Pre-commit
--- | --- | --- | ---
[![codecov](https://codecov.io/gh/BCDA-APS/mdaviz/branch/main/graph/badge.svg)](https://codecov.io/gh/BCDA-APS/mdaviz) | [![License: ANL](https://img.shields.io/badge/License-ANL-brightgreen.svg)](LICENSE.txt) | [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/) | [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)

## Features

- **Auto-Load Folders**: The application automatically loads the first valid folder from your recent folders list when it starts, providing a seamless experience without requiring manual folder selection. You can toggle this feature on/off from the preferences window.
- **Recent Folders**: Remembers your recently opened folders for quick access.
- **Lazy Loading**: Efficient folder scanning with progress indicators for large datasets.
- **Curve Management**: Add, remove, and style multiple data curves.
- **Axis Selection**: Select X-axis (positioners), Y-axis (detectors), I0 normalization, and curve unscaling using checkboxes. Axis selection is saved from one file to the next.
- **Curve Unscaling**: Rescale curves to match the range of other Y curves for better comparison.
- **Log Scale**: Toggle between linear and logarithmic scales for both X and Y axes.
- **Data Analysis**: Basic statistics, cursor measurements, and curve fitting.
- **PyQt6 Migration**: Complete migration to PyQt6 for future compatibility with Python 3.13+.

## Quickstart

### Conda environment
It is strongly recommended to use the provided conda environment for development and running the application. This ensures all dependencies (including PyQt6) are available and compatible.

```bash
conda env create -f env.yml
conda activate mdaviz
pip install PyQt6 Qt6
```

Always activate the environment before running, testing, or using pre-commit hooks.

**Note**: PyQt6 and Qt6 are installed via pip as they are not available in conda-forge for all platforms.

### Install & run the application

Mdaviz is available on PyPI:
```bash
$ conda activate mdaviz
$ pip install mdaviz
```

Once installed, you can run the application at any time using:
```bash
$ conda activate mdaviz
$ mdaviz
```

### Run the application in developer mode

```bash
# Clone the repo
$ git clone https://github.com/BCDA-APS/mdaviz.git
$ cd mdaviz

# Install with development dependencies
$ conda activate mdaviz
$ pip install -e .

# Run the application
$ mdaviz
```

## Usage

### Basic Operation

1. **Load Data**: Select a folder containing MDA files
2. **Select Axes**: Use the checkboxes in the data table to select:
   - **X**: Positioner for the x-axis (only one can be selected)
   - **Y**: Detectors for the y-axis (multiple can be selected)
   - **I0**: Normalization detector (only one can be selected)
   - **Un**: Unscale curves to match the range of other Y curves (requires Y selection on same row)
3. **Plot Data**: Data will automatically plot based on your selection mode

### Plot Controls

- **Log Scale**: Use the "LogX" and "LogY" checkboxes to switch between linear and logarithmic scales
- **Curve Styling**: Select different line styles and markers for your curves
- **Data Manipulation**: Apply offset and scaling factors to individual curves
- **Data Analysis**: Basic statistics, cursor measurements, and curve fitting.

### Plotting Modes

- **Auto-add**: New curves are added to existing plots
- **Auto-replace**: New curves replace existing plots
- **Auto-off**: Manual plotting using buttons

## Development

### Testing

Run all tests:
```bash
pytest src/tests
```

Current test status:
- **130 tests passing** with 46% coverage
- **26 failed tests** (mostly GUI tests needing fixes)
- **54 skipped tests** (GUI tests in headless environment)
- **5 test errors** (import and setup issues)

### Code Quality

The project uses pre-commit hooks for code quality. Run them before committing:
```bash
pre-commit run --all-files
```

## Contributing

1. Fork and clone the repository.
2. Create a new branch for your feature or bugfix.
3. Make your changes and add tests.
4. Run pre-commit and pytest to ensure all checks pass.
5. Submit a pull request.

For a complete installation guide, see [https://bcda-aps.github.io/mdaviz/](https://bcda-aps.github.io/mdaviz/).

## Acknowledgements

"This product includes software produced by UChicago Argonne, LLC
under Contract No. DE-AC02-06CH11357 with the Department of Energy."

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mdaviz",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.14,>=3.10",
    "maintainer_email": "Fanny Rodolakis <rodolakis@anl.gov>, Pete Jemian <prjemian@gmail.com>, Rafael Vescovi <ravescovi@anl.gov>, Eric Codrea <ecodrea@anl.gov>",
    "keywords": "bluesky, databroker, tiled, catalog",
    "author": null,
    "author_email": "Fanny Rodolakis <rodolakis@anl.gov>, Pete Jemian <prjemian@gmail.com>, Rafael Vescovi <ravescovi@anl.gov>, Eric Codrea <ecodrea@anl.gov>",
    "download_url": "https://files.pythonhosted.org/packages/6d/76/45c91d51956e4e9be4d73de59426a28927f552604c022a57b8a7a4d17e77/mdaviz-1.1.4.tar.gz",
    "platform": null,
    "description": "# mdaviz\n\nPython Qt6 application to visualize mda data.\n\n## Status Badges\n\nCI/CD | Code Quality | Documentation | Package\n--- | --- | --- | ---\n[![CI](https://github.com/BCDA-APS/mdaviz/workflows/CI/badge.svg)](https://github.com/BCDA-APS/mdaviz/actions/workflows/ci.yml) | [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff) | [![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-blue.svg)](https://bcda-aps.github.io/mdaviz/) | [![PyPI version](https://badge.fury.io/py/mdaviz.svg?cache=1)](https://badge.fury.io/py/mdaviz) [![GitHub release](https://img.shields.io/github/release/BCDA-APS/mdaviz.svg)](https://github.com/BCDA-APS/mdaviz/releases)\n\nCoverage | License | Python | Pre-commit\n--- | --- | --- | ---\n[![codecov](https://codecov.io/gh/BCDA-APS/mdaviz/branch/main/graph/badge.svg)](https://codecov.io/gh/BCDA-APS/mdaviz) | [![License: ANL](https://img.shields.io/badge/License-ANL-brightgreen.svg)](LICENSE.txt) | [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/) | [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)\n\n## Features\n\n- **Auto-Load Folders**: The application automatically loads the first valid folder from your recent folders list when it starts, providing a seamless experience without requiring manual folder selection. You can toggle this feature on/off from the preferences window.\n- **Recent Folders**: Remembers your recently opened folders for quick access.\n- **Lazy Loading**: Efficient folder scanning with progress indicators for large datasets.\n- **Curve Management**: Add, remove, and style multiple data curves.\n- **Axis Selection**: Select X-axis (positioners), Y-axis (detectors), I0 normalization, and curve unscaling using checkboxes. Axis selection is saved from one file to the next.\n- **Curve Unscaling**: Rescale curves to match the range of other Y curves for better comparison.\n- **Log Scale**: Toggle between linear and logarithmic scales for both X and Y axes.\n- **Data Analysis**: Basic statistics, cursor measurements, and curve fitting.\n- **PyQt6 Migration**: Complete migration to PyQt6 for future compatibility with Python 3.13+.\n\n## Quickstart\n\n### Conda environment\nIt is strongly recommended to use the provided conda environment for development and running the application. This ensures all dependencies (including PyQt6) are available and compatible.\n\n```bash\nconda env create -f env.yml\nconda activate mdaviz\npip install PyQt6 Qt6\n```\n\nAlways activate the environment before running, testing, or using pre-commit hooks.\n\n**Note**: PyQt6 and Qt6 are installed via pip as they are not available in conda-forge for all platforms.\n\n### Install & run the application\n\nMdaviz is available on PyPI:\n```bash\n$ conda activate mdaviz\n$ pip install mdaviz\n```\n\nOnce installed, you can run the application at any time using:\n```bash\n$ conda activate mdaviz\n$ mdaviz\n```\n\n### Run the application in developer mode\n\n```bash\n# Clone the repo\n$ git clone https://github.com/BCDA-APS/mdaviz.git\n$ cd mdaviz\n\n# Install with development dependencies\n$ conda activate mdaviz\n$ pip install -e .\n\n# Run the application\n$ mdaviz\n```\n\n## Usage\n\n### Basic Operation\n\n1. **Load Data**: Select a folder containing MDA files\n2. **Select Axes**: Use the checkboxes in the data table to select:\n   - **X**: Positioner for the x-axis (only one can be selected)\n   - **Y**: Detectors for the y-axis (multiple can be selected)\n   - **I0**: Normalization detector (only one can be selected)\n   - **Un**: Unscale curves to match the range of other Y curves (requires Y selection on same row)\n3. **Plot Data**: Data will automatically plot based on your selection mode\n\n### Plot Controls\n\n- **Log Scale**: Use the \"LogX\" and \"LogY\" checkboxes to switch between linear and logarithmic scales\n- **Curve Styling**: Select different line styles and markers for your curves\n- **Data Manipulation**: Apply offset and scaling factors to individual curves\n- **Data Analysis**: Basic statistics, cursor measurements, and curve fitting.\n\n### Plotting Modes\n\n- **Auto-add**: New curves are added to existing plots\n- **Auto-replace**: New curves replace existing plots\n- **Auto-off**: Manual plotting using buttons\n\n## Development\n\n### Testing\n\nRun all tests:\n```bash\npytest src/tests\n```\n\nCurrent test status:\n- **130 tests passing** with 46% coverage\n- **26 failed tests** (mostly GUI tests needing fixes)\n- **54 skipped tests** (GUI tests in headless environment)\n- **5 test errors** (import and setup issues)\n\n### Code Quality\n\nThe project uses pre-commit hooks for code quality. Run them before committing:\n```bash\npre-commit run --all-files\n```\n\n## Contributing\n\n1. Fork and clone the repository.\n2. Create a new branch for your feature or bugfix.\n3. Make your changes and add tests.\n4. Run pre-commit and pytest to ensure all checks pass.\n5. Submit a pull request.\n\nFor a complete installation guide, see [https://bcda-aps.github.io/mdaviz/](https://bcda-aps.github.io/mdaviz/).\n\n## Acknowledgements\n\n\"This product includes software produced by UChicago Argonne, LLC\nunder Contract No. DE-AC02-06CH11357 with the Department of Energy.\"\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python Qt5 application to visualize MDA data.",
    "version": "1.1.4",
    "project_urls": {
        "Bug Tracker": "https://github.com/BCDA-APS/mdaviz/issues",
        "Homepage": "https://github.com/BCDA-APS/mdaviz"
    },
    "split_keywords": [
        "bluesky",
        " databroker",
        " tiled",
        " catalog"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3f0d1c6e1d21ea5d868fa84584f743683c7b6d9ecb8124a9736ccbd51ad9ac6e",
                "md5": "8f6507e66af6ef9e488f25acf5c5f800",
                "sha256": "9bc4b41ed52f25b87284e4abedee2684bfd3595d9b32be10096d36b04018937d"
            },
            "downloads": -1,
            "filename": "mdaviz-1.1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8f6507e66af6ef9e488f25acf5c5f800",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.14,>=3.10",
            "size": 680596,
            "upload_time": "2025-07-28T18:50:24",
            "upload_time_iso_8601": "2025-07-28T18:50:24.479107Z",
            "url": "https://files.pythonhosted.org/packages/3f/0d/1c6e1d21ea5d868fa84584f743683c7b6d9ecb8124a9736ccbd51ad9ac6e/mdaviz-1.1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6d7645c91d51956e4e9be4d73de59426a28927f552604c022a57b8a7a4d17e77",
                "md5": "60d36ed32668e19d7b0b9e0c29737be4",
                "sha256": "26930afda78391188d473c8c2b26bad41364d9cfd42963823a2141744e2e2366"
            },
            "downloads": -1,
            "filename": "mdaviz-1.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "60d36ed32668e19d7b0b9e0c29737be4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.14,>=3.10",
            "size": 1865236,
            "upload_time": "2025-07-28T18:50:25",
            "upload_time_iso_8601": "2025-07-28T18:50:25.948709Z",
            "url": "https://files.pythonhosted.org/packages/6d/76/45c91d51956e4e9be4d73de59426a28927f552604c022a57b8a7a4d17e77/mdaviz-1.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-28 18:50:25",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "BCDA-APS",
    "github_project": "mdaviz",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "mdaviz"
}
        
Elapsed time: 1.66935s