<jupyter_start><jupyter_text>First break picking datasets * [Dataset 1](Dataset-1)   * [Dataset 2](Dataset-2)   * [Dataset 3](Dataset-3)    Dataset 1 Dataset consists of a raw field seismograms and corresponding first break pickings.   Dataset is split into training and validation parts. **Train** | Filename | About this file | Size | N ffid | Length || :------ | ----: | ----: | ----: | ----: || Pal_Flatiron_1k.sgy | Raw field seismogram | 2.5 Gb | 1001 | 1.4 s || Pal_Flatiron_1k_picking.csv | First break time | 16 Mb | 1001 | - | **Validation** | Filename | About this file | Size | N ffid | Length || :------ | ----: | ----: | ----: | ----: || Pal_Flatiron_1k_val.sgy | Raw field seismogram | ? | ? | ? || Pal_Flatiron_1k_val_picking.csv | First break time | ? | ? | - |<jupyter_code>import sys
sys.path.append('..')

from seismicpro.src import (SeismicDataset, FieldIndex, TraceIndex,
                            seismic_plot)<jupyter_output><empty_output><jupyter_text>Define the index.<jupyter_code>path_raw = '/data/FB/dataset_1/Pal_Flatiron_1k.sgy'
markup_path='/data/FB/dataset_1/Pal_Flatiron_1k_picking.csv'

index = (FieldIndex(name='raw', path=path_raw, markup_path=markup_path))

index.head()<jupyter_output><empty_output><jupyter_text>Total number of field records and traces:<jupyter_code>len(index), sum(index.tracecounts)<jupyter_output><empty_output><jupyter_text>Number of traces in Field Records varies in range:<jupyter_code>df = TraceIndex(index)._idf
df.groupby(by=['FieldRecord']).size().min(), df.groupby(by=['FieldRecord']).size().max()<jupyter_output><empty_output><jupyter_text>Sample seismogram and picking.<jupyter_code>cv = 1000
batch = (SeismicDataset(index).next_batch(batch_size=1)
         .load(components='raw', fmt='segy')
         .load(components='markup', fmt='picks')
         .seismic_plot(src='raw', index=index.indices[0], cmap='gray', vmin=-cv, vmax=cv, s=3,
                       src_picking='markup'))<jupyter_output><empty_output><jupyter_text>Dataset 2 Dataset consists of a raw field seismograms and corresponding first break pickings.   Dataset is split into training and validation parts. In this dataset only traces with **offset < 1400** have labels. **Train** | Filename | About this file | Size | N ffid | Length || :------ | ----: | ----: | ----: | ----: || WZ_Flatiron_1k.sgy | Raw field seismogram | 2.4 Gb | 1001 | 1.4 s || WZ_Flatiron_1k_picking.csv | First break time | 16 Mb | 1001 | - | **Validation** | Filename | About this file | Size | N ffid | Length || :------ | ----: | ----: | ----: | ----: || WZ_Flatiron_1k_val.sgy | Raw field seismogram | ? | ? | ? || WZ_Flatiron_1k_val_picking.csv | First break time | ? | ? | - | Below we show sample trace headers and sample seismogram with picking from the train dataset.   Sample trace headers: Define index.<jupyter_code>path_raw = '/data/FB/dataset_2/WZ_Flatiron_1k.sgy'
markup_path='/data/FB/dataset_2/WZ_Flatiron_1k_picking.csv'

index = (FieldIndex(name='raw', path=path_raw, markup_path=markup_path))

index.head()<jupyter_output><empty_output><jupyter_text>Total number of field records and traces:<jupyter_code>len(index), sum(index.tracecounts)<jupyter_output><empty_output><jupyter_text>Number of traces in Field Records varies in range:<jupyter_code>df = TraceIndex(index)._idf
df.groupby(by=['FieldRecord']).size().min(), df.groupby(by=['FieldRecord']).size().max()<jupyter_output><empty_output><jupyter_text>Sample seismogram and picking.<jupyter_code>batch = (SeismicDataset(index).next_batch(batch_size=1)
         .load(components='raw', fmt='segy')
         .load(components='markup', fmt='picks')
         .seismic_plot(src='raw', index=index.indices[0], cmap='gray',vmin=-1,vmax=1, s=3,
                       src_picking='markup'))<jupyter_output><empty_output><jupyter_text>In this dataset only traces with offsets < 1400 have labels.  Dataset 3 Dataset consists of a raw field seismograms and corresponding first break pickings.   Dataset is split into training and validation parts. **Train** | Filename | About this file | Size | N ffid | Length || :------ | ----: | ----: | ----: | ----: || 3_FBP_1k-ffid_3s.sgy | Raw field seismogram | 2.4 Gb | 460 | 2.9 s || 3_FBP_1k-ffid_3s.sgy_picking.csv | First break time | 10 Mb | 460 | - | **Validation** | Filename | About this file | Size | N ffid | Length || :------ | ----: | ----: | ----: | ----: || 3_FBP_1k-ffid_3s_val.sgy | Raw field seismogram | ? | ? | ? || 3_FBP_1k-ffid_3s.sgy_val_picking.csv | First break time | ? | ? | - | Below we show sample trace headers and sample seismogram with picking from the train dataset.   Sample trace headers:<jupyter_code>path_raw = '/data/FB/dataset_3/3_FBP_1k-ffid_3s.sgy'
markup_path='/data/FB/dataset_3/3_FBP_1k-ffid_3s_picking.csv'

index = (FieldIndex(name='raw', path=path_raw, markup_path=markup_path))

index.head()<jupyter_output><empty_output><jupyter_text>Total number of field records and traces:<jupyter_code>len(index), sum(index.tracecounts)<jupyter_output><empty_output><jupyter_text>Number of traces in Field Records varies in range:<jupyter_code>df = TraceIndex(index)._idf
df.groupby(by=['FieldRecord']).size().min(), df.groupby(by=['FieldRecord']).size().max()<jupyter_output><empty_output><jupyter_text>Sample seismogram and picking.<jupyter_code>batch = (SeismicDataset(index).next_batch(batch_size=10)
         .load(components='raw', fmt='segy')
         .load(components='markup', fmt='picks')
         .seismic_plot(src='raw', index=index.indices[0], cmap='gray',vmin=-100,vmax=100, s=5,
                       src_picking='markup'))<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.16352648418059013, 'fraction_numerical': 0.020440810522573766, 'mean_word_length': 4.374403056351481, 'pattern_counts': {'":': 0, '<': 55, '<?xml version=': 0, '>': 53, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '13', 'dir': 'jupyter-structured-clean-dedup', 'id': '446277', 'license': 'Apache-2.0', 'n_tokens_mistral': 2083, 'n_tokens_neox': 1975, 'n_words': 388, 'path': 'models/First_break_picking/first_break_picking_datasets.ipynb', 'repo_name': 'pplotn/SeismicPro', 'size': '5626'}