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
= fetch('terra15_das_1_trimmed.hdf5')
file_path
= dc.spool(file_path) spool
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
= fetch('terra15_das_1_trimmed.hdf5').parent
directory_path
# index a directory of data, sub-select, then specify chunk shapes
= (
spool
dc.spool(directory_path)
.update()=('2020-01-01', ...))
.select(time_min=60, overlap=10)
.chunk(time )
Get patches (array w/ metadata)
import dascore as dc
= dc.get_example_spool('diverse_das')
spool
# get patches through iteration
for patch in spool:
...
# Or through indexing
= spool[0] patch
Perform processing
import dascore as dc
= dc.get_example_patch('random_das')
patch
= (
out =8) # decimate along time axis (keep every 8th sample)
patch.decimate(time='distance') # detrend in distance axis
.detrend(dim=(..., 10)) # apply low-pass filter
.pass_filter(time )
Visualize
import dascore as dc
= (
patch 'example_event_1')
dc.get_example_patch(=0.05)
.taper(time=(..., 300))
.pass_filter(time
)
=True, scale=0.2); patch.viz.waterfall(show
Installation
Use pip or conda to install DASCore:
pip install dascore
conda install dascore -c conda-forge
Run 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/dascore
Then 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.py
In 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.