Skip to main content

Protocol Documentation

Top

cognite/seismic/protos/query_service.proto

Query

Service for querying data and metadata from seismic files in Cognite Data Fusion (CDF) seismic datastore. We use the word File to refer to a single seismic file/dataset/cube. Queries on a file require it to have been previously ingested into CDF using (ingest_service.proto).

Queries are divided in:

  • Metadata:

General information and headers for surveys and files

  • Geometry and grid:

Information on a file's grid and positioning, such as coverage and range of inlines and crosslines.

  • Trace:

Find a single trace in the file. A trace will include header, position information and samples. You can find more details about the trace format on its definition in (types.proto).

  • Vertical slice:

Get 2D vertical slices of samples (thus 1D arrays of traces). The slices can be based on a single defined line or in an arbitrarily defined line with interpolation.

  • Area:

Get 3D volumes of samples (thus 2D arrays of traces) defined by a region in the horizontal plane.

  • Horizontal slice:

Get 2D horizontal slices of samples defined by a region in the horizontal plane and a specific index in depth/time.

  • Artificial sampling:

Get the (calculated/interpolated) values of properties in the file/cube given arbitrary positions.

Metadata queries

Method NameRequest TypeResponse TypeDescription
GetSurveySurveyQueryRequestGetSurveyResponseFinds one survey given its name or id. Optionally, lists its associated files.
ListSurveysListSurveysQueryRequestSurveyWithFilesResponseLists all surveys owned by this project. Optionally, includes their lists of files.
ListFiles.google.protobuf.EmptyListFilesResponseLists all files available, both owned by the authorized CDF project and shared with it.
SearchSurveysSearchSurveyRequestSurveyWithFilesResponseSearch surveys based on two criteria: 1. Coverage polygon of files in the survey are within an area delimited by a specified polygon 2. Filters on metadata of both the survey and the file. Both criteria are optional and can be combined for a more detailed search.
GetFileFileQueryRequestGetFileResponseReturns file metadata given its name or id.
GetBinaryHeaderHeaderFileQueryRequestGetBinaryHeaderResponseReturns a binary header given its file name or id.
GetTextHeaderHeaderFileQueryRequestGetTextHeaderResponseReturns a text header given its file name or id.
GetFileDataCoverageFileCoverageRequestDataCoverageResponseReturns the coverage for a given file identified by its id or name. The coverage is represented by a polygon either in WKT or GeoJSON and represents the area covered by traces in the file. There can be holes in the polygon if traces don't exist in an area inside of it. DEPRECATE in favor of Geospatial APIs.
GetFileLineRangeFileQueryRequestLineRangeResponseReturns the full range of the inlines and crosslines in the file, for example, the minimum and maximum inline and crossline.
GetCrosslinesByInlineFileLineQueryRequestAvailableLinesReturns the set of valid crossline indices for a specific inline, in a given file DEPRECATE: Move to GetFileLineRange.
GetInlinesByCrosslineFileLineQueryRequestAvailableLinesReturns the set of valid inline indices for a specific crossline in a given file DEPRECATE: Move to GetFileLineRange.
GetTraceByCoordinatesCoordinateTraceQueryRequestTraceReturns the trace in a file closest to a point given its coordinates (x,y).
GetTracesByLineLineTraceQueryRequest streamTrace streamReturns a trace for each coordinate (inline, xline) from the input stream.
GetSliceByLineLineSliceQueryRequestTrace streamReturns all or a subset of traces in a slice (inline or crossline) given its index (and optionally from/to) DEPRECATED, use GetVolume instead.
GetSliceByGeometryGeometrySliceQueryRequestTrace streamReturns a slice with traces following a path determined by an arbitrary line. Depending on interpolating method, these can be either real traces in the file that are closest to the path or synthetic traces generated by interpolation of the traces in the file.
GetCubeByLinesLineCubeRequestTrace streamReturns a volume with all traces inside a given range of inlines and a given range of crosslines DEPRECATED, use GetVolume instead.
GetCubeByGeometryGeometryCubeRequestTrace streamReturns a volume with all traces with x, y coordinates inside an arbitrary 2D polygon.
GetSegYFileSegYQueryRequestSegYQueryResponse streamReturns a SEG-Y file. Can retrieve a full file or create a new cropped file filtering on areas of interest only. DEPRECATED, to be replaced with a command line tool or an SDK method for constructing a SEG-Y file by calling GetVolume
GetSlabByLinesLineSlabRequestSlabTrace streamReturns a seismic slab by either horizon or constant depth and area constrained by a range of inlines and crosslines
GetTimeSliceByGeometryGeometryTimeSliceQueryRequestSurfacePoint streamReturns a horizontal slice for a given depth or time and area constrained by an arbitrary 2D polygon.
GetVolumeVolumeRequestTrace streamVolume queries.

Top

cognite/seismic/protos/ingest_service.proto

Ingest

Service for ingestion and metadata updates of SEG-Y files into Cognite Data Fusion (CDF) seismic datastore.

We use the word File to refer to a single seismic file/dataset/cube. Surveys can have many files attached to them, with different attributes or processing stages, and every file must belong to a survey. The expected order of ingestion is:

  1. Register a survey if it doesn't exist

  2. Register a file Files are expected to be previously uploaded to a Google Cloud Storage (GCS) bucket at this point, and the service needs permission to this bucket in the form of a service account. The RegisterFile endpoint will request the survey name or id, bucket address, and the CRS used in this file (e.g.: EDM50, WGS84). Be sure to have this information prior at hand.

  3. Ingest the file If the RegisterFile endpoint completes successfully and your file is found in the bucket, you can now send a request to the IngestFile endpoint. An asynchronous process will be started remotely to download and process the file. You can verify the status of this process by calling the Status endpoint with the id returned in the IngestFile endpoint.

As soon as the status of the processing job is set to complete, data from the file will be available with the query service.

When a file is registered in a CDF project, this project owns the file. it's then allowed to share access with other CDF projects.

Method NameRequest TypeResponse TypeDescription
RegisterSurveyRegisterSurveyRequestRegisterSurveyResponseRegisters a new survey.
RegisterFileRegisterFileRequestRegisterFileResponseRegisters a new file in a (previously registered) survey.
IngestFileIngestFileRequestIngestFileResponseSends a request for the ingestion of a registered file into the queue. Will return a job id which can be queried for status.
StatusStatusRequestStatusResponseRetrieves the status of an ingestion job.
DeleteFileDeleteFileRequest.google.protobuf.EmptyDeletes a file.
DeleteSurveyDeleteSurveyRequest.google.protobuf.EmptyDeletes a survey.
EditFileEditFileRequestEditFileResponseUpdates file metadata.
EditSurveyEditSurveyRequestEditSurveyResponseUpdates survey metadata.
ListFileAccessListFileAccessRequestProjectListResponseList projects that have access to a specific file. Only users in the CDF project that owns the file have access to this method DEPRECATED - multitenant file sharing isn't supported anymore.
EditFileAccessEditFileAccessRequest.google.protobuf.EmptyAdd or remove access to a file for CDF projects. Only users in the CDF project that owns the file have access to this method DEPRECATED - multitenant file sharing isn't supported anymore.
StoreTraceStoreTraceRequest.google.protobuf.EmptyStore a single trace to synthetic file/volume.

Top

cognite/seismic/protos/query_service_messages.proto

Messages from the query service of Seismic Datastore in Cognite Data Fusion.

AvailableLines

FieldTypeLabelDescription
linesint32repeated

BinaryHeader

FieldTypeLabelDescription
file_idstringDEPRECATED: This field will always be empty.
tracesint32
trace_data_typeint32
fixed_length_tracesint32
segy_revisionint32
auxtracesint32
intervalint32
interval_originalint32
samplesint32
samples_originalint32
ensemble_foldint32
vertical_sumint32
trace_type_sorting_codeint32
sweep_type_codeint32
sweep_frequency_startint32
sweep_frequency_endint32
sweep_lengthint32
sweep_channelint32
sweep_taper_startint32
sweep_taper_endint32
sweep_taper_typeint32
correlated_tracesint32
amplitude_recoveryint32
original_measurement_systemint32
impulse_signal_polarityint32
vibratory_polarity_codeint32
raw_headerbytes

CoordinateQuery

Point defined by its x and y coordinates

FieldTypeLabelDescription
xfloat
yfloat

CoordinateTraceQueryRequest

Request a single trace from a file by coordinates (x AND y). If x and y don't fall in the coordinates of a trace, the request will return the closest trace to it.

FieldTypeLabelDescription
fileIdentifier
coordinatesCoordinateQuery
max_radiusfloatOnly return traces if closer than this to the actual point in the file.
include_trace_headerbool

DataCoverageResponse

FieldTypeLabelDescription
polygonGeometry

FileCoverageRequest

FieldTypeLabelDescription
fileIdentifiername or id of the file
crsCRS[optional] If CRS provided converts coverage to given CRS. Otherwise, will return in the file's original CRS.
in_wktboolSet this to true to return in WKT format. Otherwise, response will be in geojson format by default.

FileLineQueryRequest

FieldTypeLabelDescription
fileIdentifierName or id of the file.
lineint32Number of the selected inline or crossline in the file.

FileQueryRequest

FieldTypeLabelDescription
fileIdentifierName or id of the file

GeometryCubeRequest

Request a volume of traces from a file with coordinates inside an arbitrary polygon.

FieldTypeLabelDescription
fileIdentifier
geometryGeometry
include_trace_headerbool

GeometrySliceQueryRequest

Request a slice of traces from a file by coordinates of start and end of an arbitrary line.

FieldTypeLabelDescription
fileIdentifier
arbitrary_lineGeometry
interpolation_methodInterpolationMethod

GeometryTimeSliceQueryRequest

Request a time slice from a file and filter by coordinates inside an arbitrary polygon.

FieldTypeLabelDescription
fileIdentifier
geometryGeometry
zgoogle.protobuf.Int32ValueEither time or depth according to the file.

GetBinaryHeaderResponse

FieldTypeLabelDescription
metaBinaryHeader

GetFileResponse

FieldTypeLabelDescription
fileFile
crsstring
pathstring
survey_namestring
last_stepstring
inline_offsetgoogle.protobuf.Int32Value
crossline_offsetgoogle.protobuf.Int32Value
cdp_x_offsetgoogle.protobuf.Int32Value
cdp_y_offsetgoogle.protobuf.Int32Value
source_group_scalar_overridegoogle.protobuf.FloatValue

GetSurveyResponse

FieldTypeLabelDescription
surveySurvey
filesFilerepeated
polygonGeometry

GetTextHeaderResponse

FieldTypeLabelDescription
metaTextHeader

HeaderFileQueryRequest

FieldTypeLabelDescription
fileIdentifierName or id of the file.
include_raw_headerboolSet to true to include the RAW header in the response (default: false).

KeyValueFilter

FieldTypeLabelDescription
keystring
valuestring

LineBasedVolume

Range of inline, crossline, and time indices defining a volume.

FieldTypeLabelDescription
ilineLineDescriptor
xlineLineDescriptor
zLineDescriptor

LineCubeRequest

Request a volume of traces from a file by range of inlines and crosslines.

FieldTypeLabelDescription
fileIdentifier
rectangleLineBasedRectangle
include_trace_headerbool

LineRangeResponse

FieldTypeLabelDescription
inlineLineDescriptor
xlineLineDescriptor
trace_value_rangeTraceValueRange
trace_sample_countgoogle.protobuf.Int32Value

LineSlabRequest

Request a volume below and above a time slice from a file and filter by range of inlines and crosslines.

FieldTypeLabelDescription
fileIdentifier
rectangleLineBasedRectangle
constantint32
surfaceSurface
n_abovegoogle.protobuf.Int32Value
n_belowgoogle.protobuf.Int32Value

LineSliceQueryRequest

Request a slice of traces from a file by index (inline OR crossline), and optionally specify min and max range.

FieldTypeLabelDescription
fileIdentifier
lineLineSelect
include_trace_headerbool
rangeLineRange

LineTraceQueryRequest

Request a single trace from a file by index (inline AND crossline).

FieldTypeLabelDescription
fileIdentifier
positionPositionQuery
include_trace_headerbool
include_trace_coordinatesbool
include_trace_databool

ListFilesResponse

FieldTypeLabelDescription
filesFilerepeated

ListSurveysQueryRequest

FieldTypeLabelDescription
list_filesboolSet to true to list the survey files in the response (default: false).
include_metadataboolSet to true to include metadata in the response (default: false).
include_grid_transformationboolSet to true to include the grid transformation in the response, if available (default: false).
include_custom_coverageboolSet to true to include the custom survey coverage in the response, if available (default: false).

MetadataFilter

FieldTypeLabelDescription
filterMetadataFilter.FilterEntryrepeated

MetadataFilter.FilterEntry

FieldTypeLabelDescription
keystring
valuestring
FieldTypeLabelDescription
surveyIdentifierName or id of the survey.

PathQueryRequest

Request a pseudo-trace (sequence of values) representing the values for the described path in a file

FieldTypeLabelDescription
fileIdentifier
geometryGeometry
include_trace_headerbool

SearchSurveyRequest

Request to search surveys inside a polygon or by metadata.

FieldTypeLabelDescription
polygonGeometry
survey_metadataMetadataFilter
file_metadataMetadataFilter
include_metadatabool
include_grid_transformationbool
include_custom_coveragebool

SegYQueryRequest

Filter the area included in the SEGY file by a polygon defined either by spatial coordinates or by a set of inline and crossline indices.

FieldTypeLabelDescription
fileIdentifier
polygonGeometry
linesLineBasedRectangle

SegYQueryResponse

FieldTypeLabelDescription
contentbytes

Surface

Range of z_values to use in time/depth slice queries.

FieldTypeLabelDescription
z_valuesint32repeated

SurveyQueryRequest

FieldTypeLabelDescription
surveyIdentifierName or id of the survey.
list_filesboolSet to true to list the survey files in the response (default: false).
include_metadataboolSet to true to include metadata in the response (default: false).
include_coverageCoverageParametersSet this field to include coverage in the response (default: false).
include_grid_transformationboolSet to true to include the grid transformation in the response, if available (default: false).
include_custom_coverageboolSet to true to include the custom survey coverage in the response, if available (default: false).

SurveyWithFiles

FieldTypeLabelDescription
idstring
namestring
metadataSurveyWithFiles.MetadataEntryrepeated
filesFilerepeated
external_idExternalId
crsCRS
grid_transformationSurveyGridTransformation
custom_coverageCustomSurveyCoverage

SurveyWithFiles.MetadataEntry

FieldTypeLabelDescription
keystring
valuestring

SurveyWithFilesResponse

FieldTypeLabelDescription
surveysSurveyWithFilesrepeated

TextHeader

FieldTypeLabelDescription
file_idstringDEPRECATED: This field will always be empty.
headerstring
raw_headerstring

TraceValueRange

The minimum and maximum values of all traces in a specific file.

FieldTypeLabelDescription
min_valuefloat
max_valuefloat

VolumeRequest

Request a volume from a file by range of inlines, crosslines, and time.

FieldTypeLabelDescription
fileIdentifier
volumeLineBasedVolume
include_trace_headerbool

Top

cognite/seismic/protos/ingest_service_messages.proto

Messages from the ingestion service of Seismic Datastore in Cognite Data Fusion.

DeleteFileRequest

[Example] {"file": {"id": "97305892-d622-4425-8530-3029b740842e"} }

FieldTypeLabelDescription
fileIdentifier[required] Either name or id of a file previously registered with /RegisterFile.
keep_registeredboolIf set to true, will delete contents of file (undo the ingestion), but keep the file registered. If set to false, will completely remove the file from database. If no option is set, default is false.

DeleteSurveyRequest

[Example] {"survey": {"name": "survey_name"} }

FieldTypeLabelDescription
surveyIdentifier[required] Either name or id of a survey previously registered with /RegisterSurvey

EditFileAccessRequest

FieldTypeLabelDescription
fileIdentifier[required] Either name or id of a file.
projectIdentifier[required] Either name or id of a project.
addboolIf neither add or remove are set, or if both are set to true, add will be assumed. Add project access to this file.
removeboolRemove project access from this file.

EditFileRequest

[Example] {"file": {"id": "97305892-d622-4425-8530-3029b740842e"} }

FieldTypeLabelDescription
fileIdentifier[required] Either name or id of a file previously registered with /RegisterFile.
pathstring[optional] New path. Example: "gs://cognite-seismic-eu/samples/"
namestring[optional] New (unique) filename. Example: "DN1302M03R16_MERGED_KPSDM_00-32_DEG_T.sgy"
metadataEditFileRequest.MetadataEntryrepeated[optional] New metadata
crsCRS[optional] Official name of the CRS used. Example: "EPSG:23031"
inline_offsetgoogle.protobuf.Int32Value[optional] Inline number field in the trace headers. Defaults to 189 as per the SEG-Y rev1 specification
crossline_offsetgoogle.protobuf.Int32Value[optional] Crossline number field in the trace headers. Defaults to 193 as per the SEG-Y rev1 specification
cdp_x_offsetgoogle.protobuf.Int32Value[optional] X coordinate of ensemble (CDP) position in trace headers. Defaults to 181 as per the SEG-Y rev1 specification
cdp_y_offsetgoogle.protobuf.Int32Value[optional] Y coordinate of ensemble (CDP) position in trace headers. Defaults to 185 as per the SEG-Y rev1 specification
external_idExternalId[optional] An external identifier - matches service contract field
source_group_scalar_overridegoogle.protobuf.FloatValue[optional] Multiplier for CDP-X and CDP-Y values, overrides scalar factor obtained from trace header. Note that this is a floating point multiplier used directly to scale CDP-X and CDP-Y values, and it's not interpreted in the manner of the source group scalar trace header field in the SEG-Y specification. That is: To divide by 100, specify 0.01, not -100. Negative values and values greater than 1 aren't permitted. To remove the override from a file where an override has previously been set, set the source_group_scalar_override to 0 or NaN. The next ingestion processing of a file will then use the source group scalar values found in trace headers.

EditFileRequest.MetadataEntry

FieldTypeLabelDescription
keystring
valuestring

EditFileResponse

FieldTypeLabelDescription
fileFile
pathstring
crsCRS
inline_offsetgoogle.protobuf.Int32Value[optional] Inline number field in the trace headers. Defaults to 189 as per the SEG-Y rev1 specification.
crossline_offsetgoogle.protobuf.Int32Value[optional] Crossline number field in the trace headers. Defaults to 193 as per the SEG-Y rev1 specification.
cdp_x_offsetgoogle.protobuf.Int32Value[optional] X coordinate of ensemble (CDP) position in trace headers. Defaults to 181 as per the SEG-Y rev1 specification.
cdp_y_offsetgoogle.protobuf.Int32Value[optional] Y coordinate of ensemble (CDP) position in trace headers. Defaults to 185 as per the SEG-Y rev1 specification.
source_group_scalar_overridegoogle.protobuf.FloatValue[optional] Multiplier for CDP-X and CDP-Y values, overrides scalar factor obtained from trace header.

EditSurveyRequest

[Example] {"survey": {"id": "97305892-d622-4425-8530-3029b740842e"}, "name": "new name"}

FieldTypeLabelDescription
surveyIdentifier[required] Either name or id of a survey previously registered with /RegisterSurvey.
namestring[optional] New name
metadataEditSurveyRequest.MetadataEntryrepeated[optional] New metadata.
external_idExternalId[optional] External id matching service contract type.
crsCRS[optional] New CRS used by all members.
grid_transformationSurveyGridTransformation[optional] Affine transformation from grid bins to coordinates.
custom_coverageCustomSurveyCoverage[optional] Customer-provided custom survey coverage.

EditSurveyRequest.MetadataEntry

FieldTypeLabelDescription
keystring
valuestring

EditSurveyResponse

FieldTypeLabelDescription
surveySurvey

IngestFileRequest

[Example] {"file": {"name": "ABP16M03-FMIG-OBC-PSDM-FULL-STACK-T.MIG_FIN.POST_STACK..JS-021837.segy"} }

FieldTypeLabelDescription
fileIdentifier[required] Either name or id of a file previously registered with /RegisterFile.
start_stepFileStep[optional] Selected step to start ingestion. Leave blank to start from last completed step. [Accepted values] 1 -- insert binary and text headers, 2 -- insert trace headers, 3 -- insert trace data, 4 -- compute coverage polygon and additional metadata (trace count, valid lines, etc), 6 -- insert trace offset indices [Use cases]. Usual ingestion: If the last successful step was 0 (REGISTER), the file will be fully ingested regardless of start_step. Completing a failed ingestion: If the last successful step was 3 (INSERT_DATA), and no start step is selected, only coverage will be computed. Previously ingested headers and traces will be preserved in this case. Forcing reingestion: If start_step is 1 (INSERT_FILE_HEADERS), regardless of previous ingestion status, all headers and data will be deleted and the whole file will be forcefully reingested. Forcing a single step to be rerun: If the file is ingested (last step is COMPUTE_COVERAGE), by using start_step = 4 (COMPUTE_COVERAGE), for example, only coverage will be computed while headers and traces will be preserved.
target_storage_tier_namestring[optional as of 2020-11-01, will be required at some later time] Target storage tier for this file. If empty a bigtable-based storage will be used. A storage tier is a defined facility for storing the trace data associated with a seismic volume. The default storage facility is based on Cloud Bigtable, but it's also possible to leave trace data stored in SEG-Y files in Cloud Storage, only retaining a compact index of file data in fast storage to facilitate retrieval of data from Cloud Storage in a performant manner. [Accepted values] Accepted values are defined by the tenant configuration, and allow for optimizing tradeoffs between storage cost, retrieval performance, numeric precision and sampling. Note that currently only one storage tier per trace store is supported, so ingesting an already ingested file will result in the file's data being removed from the previously active storage tier.

IngestFileResponse

FieldTypeLabelDescription
job_idstringJob id that can be used to query for status.
file_idstring

IngestionLog

FieldTypeLabelDescription
timestampstring
log_linestring

ListFileAccessRequest

FieldTypeLabelDescription
fileIdentifier[required] Either name or id of a file.

ProjectListResponse

FieldTypeLabelDescription
projectProjectrepeated

RegisterFileRequest

[Example] { "survey": {"name": "surveyname"}, "name": "ABP16M03-FMIG-OBC-PSDM-FULL-STACK-T.MIG_FIN.POST_STACK..J.segy", "path": "gs://cognite-seismic-eu/samples/from-diskos-disks", "crs": { "crs": "EPSG:23031"} }

FieldTypeLabelDescription
surveyIdentifier[required] Either name or id of a survey previously registered with /RegisterSurvey
pathstring[required if file is not synthetic] Path including protocol, bucket, and directory structure. Example: "gs://cognite-seismic-eu/samples/"
namestring[required] Unique filename including extension. Example: "DN1302M03R16_MERGED_KPSDM_00-32_DEG_T.sgy". The name must be unique across buckets and can be used to identify this file in query requests
metadataRegisterFileRequest.MetadataEntryrepeated[optional]
crsCRS[required] Official name of the CRS used. Example: "EPSG:23031"
is_temporarygoogle.protobuf.BoolValue[optional] Tells whether file is temporary (writeable) or not. False by default.
inline_offsetgoogle.protobuf.Int32Value[optional] Inline number field in the trace headers. Defaults to 189 as per the SEG-Y rev1 specification.
crossline_offsetgoogle.protobuf.Int32Value[optional] Crossline number field in the trace headers. Defaults to 193 as per the SEG-Y rev1 specification.
cdp_x_offsetgoogle.protobuf.Int32Value[optional] X coordinate of ensemble (CDP) position in trace headers. Defaults to 181 as per the SEG-Y rev1 specification.
cdp_y_offsetgoogle.protobuf.Int32Value[optional] Y coordinate of ensemble (CDP) position in trace headers. Defaults to 185 as per the SEG-Y rev1 specification.
external_idExternalId[optional] An external identifier - matches service contract field.
source_group_scalar_overridegoogle.protobuf.FloatValue[optional] Multiplier for CDP-X and CDP-Y values, overrides scalar factor obtained from trace header. Must be in the range (0,1]. Note that this is a floating point multiplier used directly to scale CDP-X and CDP-Y values, and it's not interpreted in the manner of the source group scalar trace header field in the SEG-Y specification. That is: To divide by 100, specify 0.01, not -100. Negative values, 0 and values greater than 1 aren't permitted when registering a file, although 0 may be used in the EditFile call to unset this field.

RegisterFileRequest.MetadataEntry

FieldTypeLabelDescription
keystring
valuestring

RegisterFileResponse

FieldTypeLabelDescription
fileFile

RegisterSurveyRequest

[Example] {"name": "surveyname", "metadata": {"location": "underwater"}, "external_id": "surveyname-external" }

FieldTypeLabelDescription
namestring[required]
metadataRegisterSurveyRequest.MetadataEntryrepeated[optional]
external_idExternalId[optional]
crsCRS[optional] new CRS used by all members
grid_transformationSurveyGridTransformation[optional] Affine transformation from grid bins to coordinates.
custom_coverageCustomSurveyCoverage

RegisterSurveyRequest.MetadataEntry

FieldTypeLabelDescription
keystring
valuestring

RegisterSurveyResponse

FieldTypeLabelDescription
surveySurvey

StatusRequest

[Example] {"job_id": "1e9a4f9b-7c15-44dd-bbbb-e9e9fb83e401"}

FieldTypeLabelDescription
job_idstring
file_idstring
seismicstore_idint64

StatusResponse

FieldTypeLabelDescription
statusJobStatus
messagestring
started_atstring
updated_atstring
logsIngestionLogrepeated

StoreTraceRequest

FieldTypeLabelDescription
fileIdentifier
ilineint32
xlineint32
xgoogle.protobuf.Int32Value
ygoogle.protobuf.Int32Value
tracefloatrepeated
raw_headerbytes

Top

cognite/seismic/protos/types.proto

Messages for types used in ingestion and query services in Seismic Datastore in Cognite Data Fusion.

CRS

FieldTypeLabelDescription
crsstring

Coordinate

Basic type representing (x,y) coordinate in the given CRS.

FieldTypeLabelDescription
crsstringThe Coordinate Reference System of the coordinate. Generally should be an EPSG code including the EPSG: prefix, for example EPSG:23031.
xfloatThe x value of the coordinate.
yfloatThe y value of the coordinate.

CoverageParameters

Parameters for requesting coverage of survey

FieldTypeLabelDescription
crsCRS[optional] If CRS provided converts coverage to given CRS. Otherwise, will return in the survey's original CRS.
in_wktboolSet this to true to return in WKT format. Otherwise, response will be in geojson format by default.

CustomSurveyCoverage

Customer-provided custom coverage for surveys.

FieldTypeLabelDescription
custom_coverageGeometryOverrides survey coverage with the provided custom coverage geometry
no_custom_coverageCustomSurveyCoverage.NoCustomCoverageSpecifies that no custom coverage is provided, so survey coverage is computed from the seismicstores in the survey.

CustomSurveyCoverage.NoCustomCoverage

DeduceFromTraces

Have the seismic service try to deduce the affine transformation for each file by reading trace coordinates.

DoubleTraceCoordinates

Correlated grid indices and coordinates.

FieldTypeLabelDescription
ilineint32The inline number. Within a 3D survey, a inline represents a seismic line parallel to the direction in which the data was adquired.
xlineint32The xline number. Within a 3D survey, a xline represents a seismic line perpendicular to the direction in which the data was adquired.
xfloatThe x value of the coordinate.
yfloatThe y value of the coordinate.

ExternalId

FieldTypeLabelDescription
external_idstring

File

File or dataset or cube derived from a single SEG-Y file.

FieldTypeLabelDescription
idstring
namestring
metadataFile.MetadataEntryrepeated
is_temporarybool
external_idExternalId

File.MetadataEntry

FieldTypeLabelDescription
keystring
valuestring

GeoJson

The GeoJSON format RFC 7946

Supported geometry: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, and GeometryCollection. Example: <pre>{ "type": "Point", "coordinates": [100.0, 0.0] }</pre>

FieldTypeLabelDescription
jsongoogle.protobuf.Struct

Geometry

Geometry can be specified using either wkt or geoJSON. CRS is always required.

FieldTypeLabelDescription
crsCRSrequired
wktWkt
geoGeoJson

Identifier

Specify either id or name to find a file or survey.

FieldTypeLabelDescription
idstring
namestring

LineBasedRectangle

Range of inline and crossline indices defining a 2D region.

FieldTypeLabelDescription
top_leftPositionQuery
bottom_rightPositionQuery

LineDescriptor

FieldTypeLabelDescription
mingoogle.protobuf.Int32Value
maxgoogle.protobuf.Int32Value
stepgoogle.protobuf.Int32Value

LineRange

Object to store the line range. From and to are optional.

FieldTypeLabelDescription
from_linegoogle.protobuf.Int32Value
to_linegoogle.protobuf.Int32Value

LineSelect

Specify either inline OR crossline.

FieldTypeLabelDescription
ilineint32The inline number. Within a 3D survey, an inline represents a seismic line parallel to the direction in which the data was acquired.
xlineint32The xline number. Within a 3D survey, an xline represents a seismic line perpendicular to the direction in which the data was acquired.

P6Transformation

Specify the transformation by an origin point and the crossline azimuth. Format inspired by IOGP guidance note 373-7-2 section 2.3.2.4. https://ge0mlib.com/papers/Guide/IOGP/373-07-2-1_2017.pdf

FieldTypeLabelDescription
handednessHandedness
originDoubleTraceCoordinatesA point in the grid.
iline_bin_widthfloatThe bin width along the inline axis.
xline_bin_widthfloatThe bin width along the crossline axis.
xline_azimuthfloatMap bearing of the crossline axis in clockwise degrees from north.
iline_bin_incint32Inline increment corresponding to a bin.
xline_bin_incint32Crossline increment corresponding to a bin.

PositionQuery

Point defined by its inline and crossline indices.

FieldTypeLabelDescription
ilineint32The inline number. Within a 3D survey, an inline represents a seismic line parallel to the direction in which the data was acquired.
xlineint32The xline number. Within a 3D survey, an xline represents a seismic line perpendicular to the direction in which the data was acquired.

Project

FieldTypeLabelDescription
idstring
aliasstring

SlabTrace

Wrapper over Trace type that additionally provides information about the range of z values included in the trace.

FieldTypeLabelDescription
traceTrace
z_fromint32
z_toint32

SurfacePoint

Basic type to represent a point in a surface defined by a horizontal grid. Used in horizontal slice queries.

FieldTypeLabelDescription
ilineint32The inline number. Within a 3D survey, an inline represents a seismic line parallel to the direction in which the data was acquired.
xlineint32The xline number. Within a 3D survey, an xline represents a seismic line perpendicular to the direction in which the data was acquired.
valuefloat

Survey

A survey represents a collection of files in the same area.

FieldTypeLabelDescription
idstringSurvey ID
namestringSurvey name
metadataSurvey.MetadataEntryrepeated
external_idExternalIdSurvey external ID
crsCRSThe Coordinate Reference System of the survey.
grid_transformationSurveyGridTransformation
custom_coverageCustomSurveyCoverage

Survey.MetadataEntry

FieldTypeLabelDescription
keystring
valuestring

SurveyGridTransformation

Specify the affine transformation between line indices and coordinates.

FieldTypeLabelDescription
p6_transformationP6Transformation
trace_cornersTraceCorners
deduce_from_tracesDeduceFromTraces

Trace

Basic type to represent a seismic trace. Used in trace, vertical slices and volume queries. Contains the samples and information on positioning. If a trace is an original trace in the file, it can optionally contain the trace header. This isn't valid for traces that are synthetically generated from interpolation.

FieldTypeLabelDescription
trace_headerbytesThe binary SEGY trace header, if requested.
ilinegoogle.protobuf.Int32ValueThe inline number. Only populated for 3D seismics.
xlinegoogle.protobuf.Int32ValueThe xline number. Only populated for 3D seismics.
cdpgoogle.protobuf.Int32ValueThe CDP number. Only populated for 2D seismics indexed by cdp.
shotpointgoogle.protobuf.Int32ValueThe CDP number. Only populated for 2D seismics indexed by shotpoint.
energy_source_pointgoogle.protobuf.Int32ValueThe CDP number. Only populated for 2D seismics indexed by energy source point.
tracefloatrepeatedThe underlying array of floats representing samples.
coordinateCoordinateThe CDP X and Y coordinates of the trace.

TraceCorners

Specify the transformation by giving the coordinates of three or more corners

FieldTypeLabelDescription
cornersDoubleTraceCoordinatesrepeated

Wkt

Well-known text representation of geometry (WKT).

FieldTypeLabelDescription
geometrystring

FileStep

NameNumberDescription
REGISTER0
INSERT_FILE_HEADERS1
INSERT_TRACE_HEADERS2
INSERT_DATA3
COMPUTE_COVERAGE4
COMPUTE_GRID5
COMPUTE_TRACE_INDICES6
DELETING254
DELETE255

Handedness

NameNumberDescription
RIGHTHANDED0inline axis is 90 deg clockwise from crossline AKA EPSG code 9666
LEFTHANDED1inline axis is 90 deg counterclockwise from crossline AKA EPSG code 1049

IngestionSource

NameNumberDescription
INVALID_SOURCE0
FILE_SOURCE1
TRACE_WRITER2TraceWriter

InterpolationMethod

NameNumberDescription
NEAREST_TRACE0
INVERSE_DISTANCE_WEIGHTING1

JobStatus

NameNumberDescription
NONE0
QUEUED1
IN_PROGRESS2
SUCCESS3
FAILED4
TIMEOUT5

Scalar Value Types

.proto TypeNotesC++JavaPythonGoC#PHPRuby
doubledoubledoublefloatfloat64doublefloatFloat
floatfloatfloatfloatfloat32floatfloatFloat
int32Uses variable-length encoding. Inefficient for encoding negative numbers. If your field is likely to have negative values, use sint32 instead.int32intintint32intintegerBignum or Fixnum (as required)
int64Uses variable-length encoding. Inefficient for encoding negative numbers. If your field is likely to have negative values, use sint64 instead.int64longint/longint64longinteger/stringBignum
uint32Uses variable-length encoding.uint32intint/longuint32uintintegerBignum or Fixnum (as required).
uint64Uses variable-length encoding.uint64longint/longuint64ulonginteger/stringBignum or Fixnum (as required).
sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intintint32intintegerBignum or Fixnum (as required)
sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/longint64longinteger/stringBignum
fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intintuint32uintintegerBignum or Fixnum (as required)
fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/longuint64ulonginteger/stringBignum
sfixed32Always four bytes.int32intintint32intintegerBignum or Fixnum (as required)
sfixed64Always eight bytes.int64longint/longint64longinteger/stringBignum
boolboolbooleanbooleanboolboolbooleanTrueClass/FalseClass
stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicodestringstringstringString (UTF-8)
bytesMay contain any arbitrary sequence of bytes.stringByteStringstr[]byteByteStringstringString (ASCII-8BIT).