/
DAOS-SEGY Mapping

DAOS-SEGY Mapping

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.


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

Object SEISROOT
# Root object storing global metadata and references to 2nd level objects (shot, offset, cmp, ...)
D-key "Gather keys"
A-key "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 "File Headers"
A-key "ntraces" total number of traces under seismic root object.
    A-key "Binary File Header", binary file header.
    A-key "Text 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 "Key_name_1", objid of first-gather object
...
    A-key "Key_name_n", objid of nth-gather object
D-key "Sorting Variations", what sorting combinations are supported, complex variations are the ones
supporting arbitrary sortings, otherwise variations can be used
in any direction(ascending/descending).
A-key "nvariations", number of sorting variations supported.
    A-key "variation_1", first variation ex. fldr_sx
...
    A-key "variation_n", nth-variation supported ex. +fldr_-sx_+offset
------------------------------------------------------------------------------------------------------
Object Gather_1 (two level seismic object)
# Object storing all gathers under the first key_name
D-key "ngathers", total number of gathers saved under this gather object
D-key "Val(1)", first gather
A-key "Trace_hdr_oids", objid of the array object holding oids of all traces_headers objects
belonging to this gather.
A-key "Unique_val", gather unique value.
A-key "ntraces", total number of traces belonging to this gather object.
A-key "key_1", object id of first second level object.
...
A-key "key_n", nth second level object.
...
D-key "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 "Unique_val", gather unique value(shot_id if it's shot object).
A-key "ntraces", total number of traces belonging to this gather object.
A-key "key_1", object id of first second level object.
...
Akey "key_n", nth second level object.
D-key "dkeys_list", list of gather unique values sorted in ascending order.
D-key "nkeys", Number of keys used while creating the gather object.
D-key "2nd level keys", key storing all second level related info.
A-key "nkeys", number of second level objects belonging to this gather.
A-key "Key_1", first second level object name.
...
A-key "Key_n", nth second level object name.
------------------------------------------------------------------------------------------------------
Object Gather_n (one level seismic object)
# Object storing all gathers under the second key_name
D-key "ngathers", total number of gathers saved under this gather object
D-key "Val(1)", first gather
A-key "Trace_hdr_oids", objid of the array object holding oids of all traces_headers objects
belonging to this gather.
A-key "Unique_val", gather unique value(cmp_value if it's cmp object).
A-key "ntraces", total number of traces belonging to this gather object.
...
D-key "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 "Unique_val", gather unique value(cmp_value if it's cmp object).
A-key "ntraces", total number of traces belonging to this gather object.
D-key "dkeys_list", list of gather unique values sorted in ascending order.
D-key "nkeys", Number of keys used while creating the gather object.
D-key "2nd level keys", key storing all second level related info.
A-key "nkeys", number of second level objects belonging to this gather
(Zero in the case one level seismic object).
------------------------------------------------------------------------------------------------------
Object Gather_n (Complex seismic object, traces are indexed in an arbitrary sorting)
# Object storing all gathers under the second key_name
D-key "ngathers", total number of gathers saved under this gather object
D-key "Val(1)", first gather
A-key "Trace_hdr_oids", objid of the array object holding oids of all traces_headers objects
belonging to this gather.
A-key "Unique_val", gather unique value(cmp_value if it's cmp object).
A-key "ntraces", total number of traces belonging to this gather object.
...
D-key "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 "Unique_val", gather unique value(cmp_value if it's cmp object).
A-key "ntraces", total number of traces belonging to this gather object.
D-key "dkeys_list", list of gather unique values sorted in ascending order.
D-key "nkeys", Number of keys used while creating the gather object.
------------------------------------------------------------------------------------------------------
Object Trace_Hdr_oids
#array object storing all traces header oids belonging to one gather under specific gather object.
D-key "0"
A-key "oids[0:499]", array of traces_headers object ids from trace header 0 to trace header 499.
...
D-Key "n"
A-key "oids[ntraces-500:ntraces]", array of traces_headers object ids 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
#array object storing trace data.
D-key "0"
A-key "data[0:199]", 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.


Related content

ROOT
Read with this
DUG21
More like this
DAOS on Frontera
DAOS on Frontera
Read with this
DAOS-ROOT Mapping
DAOS-ROOT Mapping
More like this
Getting coredump for daos application.
Getting coredump for daos application.
Read with this
DUG20
More like this