Home - Schlumberger/distpy GitHub Wiki

Welcome to the distpy wiki!

This module is intended to accelerate development of Distributed Acoustic Sensing (DAS) analytics and interpretation. Often DAS comes with huge data volumes (typically 5km fibre will produce >450 Mb/s) and these data volumes can be overwhelming, particularly outside of geophysical applications.

This module is intended to lower the bar for researchers interested in developing their own DAS data analytics systems and workflows. Reproducibility of results is required to avoid "doodle bugs" and so the distpy module is designed to make signal processing flows readily transferrable as JSON files to enable researchers to have their findings tested and verified. This is not so rich as the Madagascar seismic project, which reasonably serves the geophysical community, but is aimed more at the community of flow assurance and well monitoring specialists who have less history of manipulating data at these volumes.

It is a lightweight layer designed to sit within existing Cloud, Edge, Windows and Linux systems and is released under a permissive MIT License to engage the widest possible community. distpy can also be easily containerized using Docker. The self documenting features support conversion of workflows between one deployment environment and another, they are also a useful aid to providing end-user documentation for your flows.

If you are new to distpy start by reading the Basic Principles, and then check out the discussion on Directed Graphs, the disection of CASE00.py or jump straight into one of the Tutorials.

For a complete end-to-end example on field data, try the Jupyter Notebook that uses data made available by UKGEOS Glasgow Observatory

Each of the other tutorials is a combination of an example deployment and an example workflow – all workflows can be executed on all deployment configurations, so hopefully what you need is there!

  1. Printing the SEGY data as thumbnails – mixed with deployment on Linux
  2. Creating the classic Noise Log (mixed with how to deploy on Azure Databricks
  3. Detecting events in the data (mixed with deployment on Windows)
  4. “Hello World” with Google Cloud Functions
  5. Writing your own controller (mixed with deployment on Docker and Kubernetes)

Installing distpy

distpy is installed from packages at pypi.org using pip install

On Windows

python -m pip install distpy

On Linux

pip install distpy

Documentation

The documentation in this Wiki has a prefix-based naming convention:

  • Command Dictionary : is a dictionary of all the commands available for signal processing, this document is indexed by the sidebar to the right.
  • User Tutorial : provides examples of installation on different platforms and some introductory signal-processing schemes to aid familiarisation.
  • Reference : guides explain some of the what and how, they are background information aimed at both users and developers.
  • Dev Tutorial : gives examples of extending distpy
  • Dev Notes : are guides to architectural and implementation choices made in distpy development

References

The origin story is captured in Williams, M.J., J. Le Calvez, T. Cuny, 2019. A cloud approach to processing distributed vibration measurements, 81st EAGE Conference and Exhibition 2019

Examples of papers where distpy was used to support the DAS processing:

Williams, M.J., J. Le Calvez, C. Wilson, A. Rodriguez-Herrera, 2019. Integrated geomechanical interpretation of hydraulic stimulation operations using distributed vibration sensing, URTEC

Kortukov D., M. Williams, 2019. Fast-loop quantitative analysis of proppant distribution among perforation clusters, SPE-195219-MS.

G. K. Ekechukwu, J. Sharma, M. J. Williams, A novel velocity band energy workflow for fiber-optic DAS interpretation and multiphase flow characterization, Nature Scientific Reports volume 13, Article number: 15142 (2023)