Migrate from the query service to the seismic service
The features described in this section are currently only available to selected customers.
The guide helps you migrate from the query v0 service to the seismic v1 service. It provides translations for the v0 API methods. The document suggests solutions if there's no direct translation or methods are deprecated.
These concepts have changed in the seismic v1 service:
-
SeismicStore and Seismic objects. The
SeismicStore
is an object that represents an ingested SEG-Y file but isn't directly available as part of the entitlement. TheSeismic
object is a cutout of aSeismicStore
and composes an entitlement. Queries no longer reference files directly and use either theSeismic
or theSeismicStore
objects instead. -
Search, Get, and List queries. The Seismic API v1 combines the Search, Get, and List metadata queries into a single generic Search query. This query accepts a search specification. For example, searching by an identifier or a unique name will show the results of the Get query, and an empty search will behave like the List query.
-
StreamTraces
endpoint. The Seismic API v1 combines many trace access endpoints into a single, more flexiblecom.cognite.seismic.v1.SeismicService.StreamTraces
endpoint. By changing the query parameters slightly, you can produce similar results to many of the methods the endpoint replaces.
To learn more about the Seismic API v1, see the documentation.
Metadata queries and payload examples
Metadata queries consist of com.cognite.seismic.Query.
+ MethodName
= com.cognite.seismic.Query.MethodName
, for example, com.cognite.seismic.Query.GetSurvey
. See below for changed and deprecated methods.
Changed methods
GetSurvey
Use com.cognite.seismic.v1.SeismicService.SearchSurveys
.
Payload example
com.cognite.seismic.Query/GetSurvey
{
"survey": {
"name": "some_name"
}
}
com.cognite.seismic.v1.SeismicAPI/SearchSurveys
{
"surveys": {
"name": "some_name"
}
}
ListSurveys
Use com.cognite.seismic.v1.SeismicService.SearchSurveys
without a surveys
search specification.
Payload example
com.cognite.seismic.Query/ListSurveys
{
"include_metadata": true
}
com.cognite.seismic.v1.SeismicAPI/SearchSurveys
{
"include_metadata": true
}
ListFiles
Use com.cognite.seismic.v1.SeismicService.SearchFiles
without the spec
search specification.
SearchSurveys
Use com.cognite.seismic.v1.SeismicService.SearchSurveys
.
GetFile
Use com.cognite.seismic.v1.SeismicService.SearchFiles
with the spec
containing the identifier
for the file.
Payload example
com.cognite.seismic.Query/GetFile
{
"file": {
"name": "some_name"
}
}
com.cognite.seismic.v1.SeismicAPI/SearchFiles
{
"spec": {
"name": "some_name"
}
}
GetBinaryHeader
Fetch the original SEG-Y binary headers from com.cognite.seismic.v1.SeismicService.SearchSeismicStores
by setting include_headers
to true
.
Payload example
com.cognite.seismic.Query/GetBinaryHeader
{
"file": {
"name": "some_name"
}
}
com.cognite.seismic.v1.SeismicAPI/SearchSeismicStores
{
"file": {
"name": "some_name"
},
"include_headers": true
}
Seismic
objects also have binary headers. By default, the objects inherit the headers from the original file, but data managers can override them. You can fetch the headers from com.cognite.seismic.v1.SeismicService.SearchSeismics
.
Payload example
com.cognite.seismic.v1.SeismicAPI/SearchSeismics
{
"seismic_store": {
"name": "some_name"
},
"include_binary_header": true
}
GetTextHeader
Fetch the original SEG-Y text headers from com.cognite.seismic.v1.SeismicService.SearchSeismicStores
by setting include_headers
to true
.
Payload example
com.cognite.seismic.Query/GetTextHeader
{
"file": {
"name": "some_name"
}
}
com.cognite.seismic.v1.SeismicAPI/SearchSeismicStores
{
"seismic_store": {
"name": "some_name"
},
"include_headers": true
}
Seismic
objects also have binary headers. By default, the objects inherit the headers from the original file, but data managers can override them. You can fetch the headers from com.cognite.seismic.v1.SeismicService.SearchSeismics
.
Payload example
com.cognite.seismic.v1.SeismicAPI/SearchSeismics
{
"seismic_store": {
"name": "some_name"
},
"include_text_header": true
}
GetFileDataCoverage
Use com.cognite.seismic.v1.SeismicService.SearchSeismicStores
specifying coverage
with the selected format
.
Payload example
com.cognite.seismic.Query/GetFileDataCoverage
{
"file": {
"name": "some_name"
},
"in_wkt": true
}
com.cognite.seismic.v1.SeismicAPI/SearchSeismicStores
{
"file": {
"name": "some_name"
},
"coverage": {
"format": 0 // 0 indicates wkt, 1 indicates geojson
}
}
Seismic
objects also have coverage that you can fetch from com.cognite.seismic.v1.SeismicService.SearchSeismics
.
Payload example
com.cognite.seismic.v1.SeismicAPI/SearchSeismics
{
"seismic_store": {
"name": "some_name"
},
"coverage": {
"format": 0
}
}
GetFileLineRange
Use com.cognite.seismic.v1.SeismicService.GetTraceBounds
.
In v1, the query is in terms of Seismic
or SeismicStore
objects. In the example below, assume that the SeismicStore
ID for the ingested file of interest is known.
Payload example
com.cognite.seismic.Query/GetFileLineRange
{
"file": {
"name": "some_name"
}
}
com.cognite.seismic.v1.SeismicAPI/GetTraceBounds
{
"seismic_store_id": 1234
}
GetCrosslinesByInline
Use com.cognite.seismic.v1.SeismicService.SearchSeismicStores
with include_extent
set to true
. The method returns all lines that contain the inline.
Payload example
com.cognite.seismic.Query/GetFileLineRange
{
"file": {
"name": "some_name"
}
}
com.cognite.seismic.v1.SeismicAPI/SearchSeismicStores
{
"file": {
"name": "some_name"
},
"include_extent": true
}
Seismic
objects also have the line range that you can fetch from com.cognite.seismic.v1.SeismicService.SearchSeismics
.
Payload example
com.cognite.seismic.v1.SeismicAPI/SearchSeismics
{
"seismic": {
"id": "1234"
},
"include_line_range": true
}
GetInlinesByCrossline
See com.cognite.seismic.Query.GetCrosslinesByInline
GetTraceByCoordinates
To get the closest trace to a given coordinate, use com.cognite.seismic.v1.SeismicService.StreamTraces
and specify the geometry
with interpolation_method
set to NEAREST_TRACE
, and a geometry
containing the coordinate of interest.
Payload example
com.cognite.seismic.Query/GetTraceByCoordinates
{
"file": {
"name": "some_name",
},
"coordinates": {
"x": 10,
"y": 20
}
}
com.cognite.seismic.v1.SeismicAPI/StreamTraces
{
"seismic": {
"id": "1234"
},
"geometry": {
"geometry": {
"wkt": {
"geometry": "POINT(10 20)"
}
},
"interpolation_method": 0 // 0 indicates NEAREST_TRACE, 1 indicates INVERSE_DISTANCE_WEIGHTING
}
}
GetSliceByGeometry
Use com.cognite.seismic.v1.SeismicService.StreamTraces
passing in the desired geometry
.
See com.cognite.seismic.Query.GetTraceByCoordinates
.
GetCubeByGeometry
Use com.cognite.seismic.v1.SeismicService.StreamTraces
passing in the desired geometry
.
See com.cognite.seismic.Query.GetTraceByCoordinates
.
GetSegYFile
Use com.cognite.seismic.v1.SeismicService.GetSegYFile
instead.
GetTimeSliceByGeometry
Use com.cognite.seismic.v1.SeismicService.StreamTraces
passing in the desired geometry
with a z_range
containing the depth of interest and a desired geometry
.
See com.cognite.seismic.Query.GetSliceByGeometry
.
Payload example
com.cognite.seismic.Query/GetTimeSliceByGeometry
{
"file": {
"name": "some_file"
},
"geometry": {
"wkt": {
"geometry": "POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))"
}
},
"z": 20
}
com.cognite.seismic.v1.SeismicAPI/StreamTraces
{
"seismic": {
"id": "1234"
},
"geometry": {
"geometry": {
"wkt": {
"geometry": "POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))"
}
}
},
"z_range": {
"min": 20,
"max": 20
}
}
Query.GetVolume
Use com.cognite.seismic.v1.SeismicService.StreamTraces
instead.
Deprecated methods
GetSliceByLine
Use com.cognite.seismic.v1.SeismicService.StreamTraces
instead.
GetCubeByLines
Use com.cognite.seismic.v1.SeismicService.StreamTraces
instead.
GetSlabByLines
See com.cognite.seismic.Query.GetTimeSliceByGeometry
.
Next steps
View the documentation to learn more about the Seismic API v1.