Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

SEGY is a data format developed by the Society of Exploration Geophysicists (SEG) for storing geophysical data. DAOS-SEGY aims at implementing the SEGY data format natively on top of the DAOS storage model in order to accelerate data access and to provide in-storage computing capabilities to process data in place.

Image Removed

DAOS changes to be considered:

  • sorting based on dkey
  • range query support

1000px

Image Added

The project is still in its early days and the following mapping is under consideration:

Object SEGROOTSEISROOT
# Root object storing global metadata and references to 2nd level objects (shot, offset, & cmpcmp, ...)
D-key "FileGather Headerskeys"
A-key "sort-key" sorting type CMP, CDP, etc"nkeys" number of keys that will be used to create gather objects.
A-key "key_1" first key name that will be used to create a gather object.
...
A-key "key_n" nth key name that will be used to create a gather object.
D-key "grd-orgn" Grid origin (Latitude, Longitude)File Headers"
A-key "ntraces" total number of traces under seismic root object.
    A-key "Binary File Header", binary file header.
    A-key "TextualText File Header", textual file header.
    A-key "n_EXTH", number of extended textual file headers.
    A-key "EXTH_1", 1st extended textual file header.
    ...
    A-key "EXTH_n", nth extended textual file header.
D-key "Sorting Types"
    A-key "shot_oid", objid of shot-gather object
    A-key "cmp_oidKey_name_1", objid of cmpfirst-gather object
...
    A-key "offsetKey_name_oidn", objid of offsetnth-gather object
-------------------------------------------------------------------------------------------------------------------------
Object shotGather Gather_1 (Shot_gather object for example)
# Object storing all shotsgathers under the first key_name
D-key "shot_id_1ngathers", total number firstof shot
gathers saved under this Agather object
D-key "hdrVal(1)", shotfirst metadatagather
A-key "oidTrace_hdr_oids", objid of the array object holding oids of traceall oids[trace_oid1, trace_oid2,...]traces_headers objects belonging to this shotgather.
D A-key "shotUnique_id_2val", secondgather unique value(shot
_id A-key "hdr", shot metadataif it's shot object).
A-key "oidntraces", total arraynumber of trace oids[trace_oid1, trace_oid2,...] traces belonging to this gather shotobject.
...
D-key "shot_id_k", kth shot
"Val(n)", nth gather
A-key "Trace_hdr_oids", objid of the array object holding oids of all traces_headers objects belonging to this gather.
A-key "hdrUnique_val", gather unique value(shot metadata_id if it's shot object).
A-key "oidntraces", arraytotal number of trace oids[trace_oid1, trace_oid2,...] traces belonging to this shotgather object.
-------------------------------------------------------------------------------------------------------------------------
Object cmpGatherGather_n (inline vs crossline?cmp_gather object for example)
# AdditionalObject storing indexall objectgathers providingunder abilitythe to lookup trace in CMP orderfirst key_name
D-key "cmp_1ngathers", total number firstof cmpgathers value
saved under this Agather object
D-key "cmpVal(1)", CMPfirst valuegather
A-key "ntracesTrace_hdr_oids", numberobjid of tracesthe havingarray sameobject CMP value.
/* cmp value for these traces is equal to cmp value of this akey */
holding oids of all traces_headers objects belonging to this gather.
A-key "oidUnique_val", arraygather of trace oids[trace_oid1, trace_oid2,...]
D-key "cmp_2", second cmp value
A-key "cmp", CMP value
unique value(cmp_value if it's cmp object).
A-key "ntraces", total number of traces having same CMP value.
/* cmp value for these traces is equal to cmp value ofbelonging to this akey */
A-key "oid", array of trace oids[trace_oid1, trace_oid2,...]gather object.
...
D-key "cmp_kVal(n)", kthnth cmpgather
value
A-key "cmpTrace_hdr_oids", CMPobjid value
of the array A-key "ntraces", numberobject holding oids of all traces_headers havingobjects belonging sameto CMPthis valuegather.
/* cmp value for these traces is equal to cmp value of this akey */
A-key "Unique_val", gather unique value(cmp_value if it's cmp object).
A-key "oidntraces", total arraynumber of trace oids[trace_oid1, trace_oid2,...]
traces belonging to this gather object.
-----------------------------------------------------------------------------------------------------------------------------
Object offsetGather
# Additional indexTrace_Hdr_oids
#array object storing all traces header object providingids abilitybelonging to lookupone tracegather inunder offset order
D-key "offset_1", first offset value
Aspecific gather object.
D-key "offset0", offset
value
A-key "ntracesoids[0:499]", numberarray of traces_headers havingobject sameids OFFSET value.
/* offset value for these traces is equal to offset value of this akey */
A-key "oid", array of trace oids[trace_oid1, trace_oid2,...]
D-key "offset_2", second offset value
from trace header 0 to trace header 499.
...
D-Key "n"
A-key "offset", offset value
A-key "ntracesoids[ntraces-500:ntraces]", numberarray of traces_headers havingobject sameids OFFSET value.
/* offset value for these traces is equal to offset value of this akey */
A-key "oid", array of trace oids[trace_oid1, trace_oid2,...]
...
D-key "offset_k", kth offset value
A-key "offset", offset value
A-key "ntraces", number of traces having same OFFSET value.
/* offset value for these traces is equal to offset value of this akey */
A-key "oid", array of trace oids[trace_oid1, trace_oid2,...]from trace header (ntraces-500) to the last trace.
-----------------------------------------------------------------------------------------------------------------------------
Object Trace_Header
#object storing all trace headers.
#each trace is splitted into two objects, header object to hold trace header and data object to hold trace data.
D-key "hdr", trace metadata
A-key "hdr", array storing all trace headers(240 byte).
-----------------------------------------------------------------------------------------------------------------------------
Object Trace_Data
#object#array object storing all trace related infodata.
D-key "hdr0",
trace metadata
DA-key "data[0:199]"
A-key "data", array storing data of first 200 sample in the trace.
...
D-key "data[tmax-200:tmax]"
A-key "data", array storing data of last 200 sample in the trace.