Metadata-Version: 2.4
Name: dasexplorer
Version: 1.0.1
Summary: Visualisation, analysis and annotation tool for Distributed Acoustic Sensing (DAS) data
Author-email: Sergio Morell-Monzó <sermomon@upv.es>
License: Copyright (C) 2024-2026 Sergio Morell-Monzó
        
        Institut d'Investigació per a la Gestió Integrada de Zones Costaneres (IGIC-UPV),
        Universitat Politècnica de València
        
        This program is free software: you can redistribute it and/or modify it under the 
        terms of the GNU General Public License as published by the Free Software Foundation, 
        either version 3 of the License, or (at your option) any later version.
        
        This program is distributed in the hope that it will be useful, but WITHOUT ANY
        WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
        PARTICULAR PURPOSE. See the GNU General Public License for more details.
        
        GNU GENERAL PUBLIC LICENSE
        https://www.gnu.org/licenses/gpl-3.0.txt?utm_source=chatgpt.com
        
Project-URL: Homepage, https://github.com/sermomon/DASexplorer
Project-URL: Repository, https://github.com/sermomon/DASexplorer
Project-URL: Bug Tracker, https://github.com/sermomon/DASexplorer/issues
Keywords: DAS,distributed acoustic sensing,fiber optic sensing,underwater acoustics,annotation
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PyQt5>=5.15
Requires-Dist: pyqtgraph>=0.13
Requires-Dist: numpy>=1.22
Requires-Dist: scipy>=1.9
Requires-Dist: matplotlib>=3.5
Requires-Dist: h5py>=3.7
Requires-Dist: das4whales>=0.1
Requires-Dist: Pillow>=9.0
Requires-Dist: pyyaml>=6.0
Provides-Extra: dev
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Dynamic: license-file

<div align="center">
  <img src="https://raw.githubusercontent.com/sermomon/DASexplorer/main/dasexplorer/icons/icon_2.ico" alt="DASexplorer Logo" width="200"/>

  <h1></h1>

  <p>
    <strong>A desktop application for visualization, analysis and annotation of Distributed Acoustic Sensing data</strong>
  </p>

  <p>
<a href="https://github.com/sermomon/DASexplorer/releases"><img src="https://img.shields.io/badge/release-v1.0.0-red" alt="Latest Release"/></a>
    <a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.10%2B-blue" alt="Python 3.10+"/></a>
    <a href="LICENSE"><img src="https://img.shields.io/badge/license-GPLv3-blue" alt="GPL v3 License"/></a>
    <a href="https://doi.org/10.xxxx/joss.xxxxx"><img src="https://img.shields.io/badge/JOSS-paper-orange" alt="JOSS Paper"/></a>
    <img src="https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20macOS-lightgrey" alt="Platform"/>
  </p>

  <p>
    <a href="#installation">Installation</a> ·
    <a href="#quickstart">Quickstart</a> ·
    <a href="#features">Features</a> ·
    <a href="#supported-interrogators">Interrogators</a> ·
    <a href="#annotation-export">Annotation Export</a> ·
    <a href="#contributing">Contributing</a> ·
    <a href="#citation">Citation</a>
  </p>
  <br/>

  <img src="https://raw.githubusercontent.com/sermomon/DASexplorer/main/dasexplorer/icons/screenshot.png" alt="DASexplorer main window" width="900"/>

</div>

---

## Overview

**DASexplorer** is an open-source desktop application built for researchers working with Distributed Acoustic Sensing (DAS) data. It provides an integrated environment for loading, visualising, filtering, and annotating DAS recordings from multiple interrogator systems, without requiring any prior programming knowledge.

DASexplorer was designed for efficient interactive navigation of large DAS datasets. Built on PyQt5 and pyqtgraph, it uses spatial decimation, parameter-based caching and smart rendering strategies to handle long acquisitions with minimal memory overhead. The application is interrogator-agnostic: a profile-based configuration system maps each acquisition system to its reader, file extensions and default visualisation parameters, making it straightforward to add support for new instruments.

Key design principles:

- **No-code** — the full analysis workflow is accessible through an intuitive GUI, including F-K filtering, RGB representation, spectral analysis, spectrogram, apparent velocity, phase and Hilbert envelope.
- **Multi-interrogator** — natively supports HDAS 2.5 (Aragón Photonics), OptaSense (Luna Innovations) and OptoDAS (ASN/ Alcatel Subsea Networks) file formats; extensible to new systems.
- **Research-ready** — exports data and annotations in formats directly usable by machine learning and bioacoustic analysis pipelines (NPZ, MAT, YOLO, COCO JSON, Raven Pro).

## Installation

### From PyPI (recommended)

```bash
pip install dasexplorer
dasexplorer
```

### From source (GitHub)

Clone the repository and install in editable mode:

```bash
git clone https://github.com/sermomon/DASexplorer.git
cd DASexplorer
pip install -e .
dasexplorer
```

> **Note:** Reading HDAS 2.5 `.bin` files requires the proprietary `hdas_reader` binary (provided by Aragón Photonics), which must be placed in `dasexplorer/tools/apl/`. OptaSense and OptoDAS support works out of the box.

## Citation

If you use DASexplorer in your research, please cite: 

Morell-Monzó, S. (2026). DASexplorer (Version 1.0) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.21032549

```bibtex
@software{morellmonzo2026dasexplorer,
  author       = {Morell-Monzó, Sergio},
  title        = {DASexplorer},
  version      = {1.0},
  year         = {2026},
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.21032550},
  url          = {https://doi.org/10.5281/zenodo.21032549}
}
```

[![DOI](https://img.shields.io/badge/DOI-10.5281%2Fzenodo.21032550-blue)](https://doi.org/10.5281/zenodo.21032549)
