Metadata-Version: 2.4
Name: wiggle
Version: 0.1.2
Summary: Wiggle Plot for Seismic Data Section
Author-email: Lijun Zhu <gatechzhu@gmail.com>
License: MIT License
        
        Copyright (c) 2017 gatechzhu
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: matplotlib
Dynamic: license-file

# Wiggle Plot for Seismic Data Section

[![PyPI version](https://img.shields.io/pypi/v/wiggle)](https://pypi.org/project/wiggle/)
![License](https://img.shields.io/pypi/l/wiggle)
![Python versions](https://img.shields.io/pypi/pyversions/wiggle)
[![CI/CD](https://github.com/lijunzh/wiggle/actions/workflows/cicd.yml/badge.svg)](https://github.com/lijunzh/wiggle/actions/workflows/cicd.yml)

## Introduction

The [wiggle](http://wiki.aapg.org/Seismic_data_display) display is a
visualization methodology for two-dimensional scalar fields on a horizontal
plane. Originally developed by the geophysical community, wiggle plots
provide visual analysis of seismic, seismological, or any other vibration
data — helping identify events through the coherent alignment of lobes that
relate to geological features and physical rock properties.

Inspired by the
[MATLAB wiggle function](https://www.mathworks.com/matlabcentral/fileexchange/38691-wiggle),
this Python package offers a similar interface for plotting seismic section
data with control over colour, amplitude, and axis orientation.

Given an *M × N* `ndarray`, `wiggle` decomposes it into *N* traces of
length *M* (column-major, vertical mode by default).

## Installation

### From PyPI

```bash
pip install wiggle
```

### From source (development)

```bash
git clone https://github.com/lijunzh/wiggle.git
cd wiggle
uv sync --all-extras --dev
```

Build a distribution:

```bash
uv build
```

## Quick Start

```python
import numpy as np
from wiggle import wiggle

data = np.random.default_rng(42).standard_normal((200, 20))
ax = wiggle(data, sf=0.15)
```

## Dependencies

- [NumPy](https://numpy.org/)
- [Matplotlib](https://matplotlib.org/)

## Development

Linting and formatting are handled by [Ruff](https://docs.astral.sh/ruff/):

```bash
uv run ruff check src tests
uv run ruff format src tests
```

Run tests:

```bash
uv run pytest
```

Pre-commit hooks are available:

```bash
uv run pre-commit install
```

## Contact

For issues, please open a
[GitHub issue](https://github.com/lijunzh/wiggle/issues) or contact
*gatechzhu@gmail.com*.
