Metadata-Version: 2.2
Name: dasio
Version: 0.1.1
Summary: Lightweight standalone IO + basic processing for DAS (Distributed Acoustic Sensing) data
License: MIT
Requires-Python: >=3.10
Requires-Dist: numpy>=1.23
Requires-Dist: h5py>=3
Requires-Dist: scipy>=1.9
Requires-Dist: numba>=0.57
Requires-Dist: pandas>=1.5
Requires-Dist: pyarrow>=14
Requires-Dist: matplotlib>=3.6
Requires-Dist: joblib>=1.2
Requires-Dist: tqdm>=4
Provides-Extra: dev
Requires-Dist: pytest>=7; extra == "dev"
Provides-Extra: noise
Requires-Dist: torch>=2; extra == "noise"
Provides-Extra: pick
Requires-Dist: phasenet>=0.2; extra == "pick"
Description-Content-Type: text/markdown

# dasio

Lightweight, standalone IO + basic processing for DAS (Distributed Acoustic
Sensing) data: vendor HDF5 readers (ASN/OptoDAS, OptaSense/QuantX, AP Sensing),
a `Proc` processed format, an `Event` format, a numpy `DASdata` container, a
file catalog (`DASdb`), and signal processing including a C++/OpenMP bandpass.

## Install (development)

This package contains a compiled C++ extension. **Always install editable** so
the extension builds in place:

```bash
pip install -e .
```

Build requirements: a C++14 compiler, CMake ≥3.15, and OpenMP (e.g.
`apt-get install build-essential libomp-dev`). pybind11 and scikit-build-core
are pulled automatically by the build.

### Optional extras

Ambient-noise cross-correlation and phase picking have heavier, optional
dependencies, exposed as install extras (still editable):

```bash
pip install -e '.[noise]'       # ambient-noise cross-correlation (dasio.noise) -> PyTorch
pip install -e '.[pick]'        # PhaseNet-DAS P/S picking (dasio.pick_phases) -> phasenet (+ PyTorch)
pip install -e '.[noise,pick]'  # both
```

Both are imported lazily, so the rest of dasio works without them installed.

## Quickstart

```python
from dasio import DASFile

d = DASFile('file.h5').read()                        # auto-detects the vendor format -> DASdata
d.bandpass(1.0, 10.0).subtract_common_mode().plot()  # filter -> denoise -> waterfall
```
