| name | version | scan | get_format | read | write | |
|---|---|---|---|---|---|---|
| 0 | DASDAE | 1 | ✅ | ✅ | ✅ | ✅ |
| 1 | DASHDF5 | 1.0 | ✅ | ✅ | ✅ | ❌ |
| 2 | H5SIMPLE | 1 | ✅ | ✅ | ✅ | ❌ |
| 3 | PICKLE | ❌ | ✅ | ✅ | ✅ | |
| 4 | PRODML | 2.0 | ✅ | ✅ | ✅ | ❌ |
| 5 | PRODML | 2.1 | ✅ | ✅ | ✅ | ❌ |
| 6 | RSF | 1 | ❌ | ❌ | ❌ | ✅ |
| 7 | SEGY | 2 | ✅ | ✅ | ✅ | ❌ |
| 8 | SENTEK | 5 | ✅ | ✅ | ✅ | ❌ |
| 9 | TDMS | 4713 | ✅ | ✅ | ✅ | ❌ |
| 10 | TERRA15 | 4 | ✅ | ✅ | ✅ | ❌ |
| 11 | TERRA15 | 5 | ✅ | ✅ | ✅ | ❌ |
| 12 | TERRA15 | 6 | ✅ | ✅ | ✅ | ❌ |
| 13 | WAV | ❌ | ❌ | ❌ | ✅ |
DASCore
A python library for distributed fiber optic sensing.
Documentation [stable, development]
Highlights
DASCore is a Python library for distributed acoustic sensing (DAS). It provides:
- IO support for various DAS data formats
- Common processing routines
- Basic visualizations
DASCore is a foundational package of the DAS Data Analysis Ecosystem (DASDAE). It facilitates rapid development of other DASDAE packages that do more specialized analysis/visualization.
Supported file formats
Introductory usage
Read a file
import dascore as dc
from dascore.utils.downloader import fetch
# get a path to an example file, replace with your path
file_path = fetch('terra15_das_1_trimmed.hdf5')
spool = dc.spool(file_path)Index a directory of DAS files
import dascore as dc
from dascore.utils.downloader import fetch
# get a path to a directory of das files, replace with your path
directory_path = fetch('terra15_das_1_trimmed.hdf5').parent
# index a directory of data, sub-select, then specify chunk shapes
spool = (
dc.spool(directory_path)
.update()
.select(time_min=('2020-01-01', ...))
.chunk(time=60, overlap=10)
)Get patches (array w/ metadata)
import dascore as dc
spool = dc.get_example_spool('diverse_das')
# get patches through iteration
for patch in spool:
...
# Or through indexing
patch = spool[0]Perform processing
import dascore as dc
patch = dc.get_example_patch('random_das')
out = (
patch.decimate(time=8) # decimate along time axis (keep every 8th sample)
.detrend(dim='distance') # detrend in distance axis
.pass_filter(time=(..., 10)) # apply low-pass filter
)Visualize
import dascore as dc
patch = (
dc.get_example_patch('example_event_1')
.taper(time=0.05)
.pass_filter(time=(..., 300))
)
patch.viz.waterfall(show=True, scale=0.2);
Installation
Use pip or conda to install DASCore:
pip install dascoreconda install dascore -c conda-forgeRun using Docker
If you have Docker installed, you may also run the stable build of DASCore in a Docker container.
First you need to clone the DAScore main repository:
https://github.com/DASDAE/dascoreThen go to the DAScore directory and run docker build:
cd dascore
docker build -t dascore .To run a Python script with the DAScore, mount the directory containing your scripts to the /app directory to the image using -v flag:
docker run -it -v $PWD:/app dascore python /app/test.pyIn the example above, we assume test.py is in our parent working directory ($PWD).
See the contributing docs for development installations.
Feedback and Support
Use the project discussions to ask a question.
Use the project issues to report an issue.
