import dascore
from dascore import examples as ex
# Get a directory with several files
= dascore.get_example_spool('diverse_das')
diverse_spool = ex.spool_to_directory(diverse_spool)
path
# Create a spool for interacting with the files in the directory.
= (
spool
dascore.spool(path)='das2') # sub-select das2 network
.select(network=(None, '2022-01-01')) # unselect anything after 2022
.select(time=2, overlap=0.5) # change the chunking of the patches
.chunk(time
)
# Iterate each patch and do something with it
for patch in spool:
...
Working with Files
DASCore contains two data structures which are useful for working with directories of fiber data.
FileSpool
The file spool is used to retrieve data from a directory of dascore-readable files. It has the same interface as other spools and is created with the dascore.spool
function.
For example:
Directory Indexer
The ‘DirectoryIndexer’ is used to track the contents of a directory which contains fiber data. It creates a small, hidden HDF index file at the top of the directory which can be efficiently queried for directory contents (it is used internally by the DirectorySpool
).
import dascore
from dascore.io.indexer import DirectoryIndexer
from dascore import examples as ex
# Get a directory with several files
= dascore.get_example_spool('diverse_das')
diverse_spool = ex.spool_to_directory(diverse_spool)
path
# Create an indexer and update the index. This will include any new files
# with timestamps newer than the last update, or create a new HDF index file
# if one does not yet exist.
= DirectoryIndexer(path).update()
indexer
# get the contents of the directory's files
= indexer.get_contents()
df
# This dataframe can be used to ascertain data availability, detect gaps, etc.
path | time_min | file_format | station | file_version | network | time_step | instrument_id | data_type | time_max | tag | experiment_id | dims | data_category | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | DAS____wayout__random__1989_05_04T00_00_00_000... | 1989-05-04 | DASDAE | wayout | 1 | 0 days 00:00:00.004000 | 1989-05-04 00:00:07.996 | random | distance,time | |||||
1 | DAS____big_gaps__random__2020_01_03T00_00_00_0... | 2020-01-03 | DASDAE | big_gaps | 1 | 0 days 00:00:00.004000 | 2020-01-03 00:00:07.996 | random | distance,time | |||||
2 | DAS______random__2020_01_03T00_00_00_000000000... | 2020-01-03 | DASDAE | 1 | 0 days 00:00:00.004000 | 2020-01-03 00:00:07.996 | random | distance,time | ||||||
3 | DAS____smallg__random__2020_01_03T00_00_00_000... | 2020-01-03 | DASDAE | smallg | 1 | 0 days 00:00:00.004000 | 2020-01-03 00:00:07.996 | random | distance,time | |||||
4 | DAS____overlaps__random__2020_01_03T00_00_00_0... | 2020-01-03 | DASDAE | overlaps | 1 | 0 days 00:00:00.004000 | 2020-01-03 00:00:07.996 | random | distance,time |