The "seismicdata" web service provides meta data about a seismic dataset.
A typical URL is http://myserver.mycompany.com:8080/INTGeoServer/api/ds/{datasourcetype}/v1/sources/{datasource}/seismic/{seismicuniqueId},
where
datasourcetype: type of a datasource, i.e. geofiles, s3, etc.
datasource: unique id of a datasource
seismicuniqueid: unique id of a seismic
The following parameters are available:
includenormalization: indicates whether the statistics section should be included in the JSON response. This is an optional parameter. The default is false. This parameter is useful when displaying datasets that have no built-in amplitude statistics. If you don't need the server to calculate these statistics, you can improve the performance of the "seismicdata" service by setting this parameter to false. Statistics are usually approximative and meant to be used as part of the normalization of seismic displays. Statistics are often calculated based upon only a small selection of traces (ex: 200 traces that are far apart)
Here is an example response. This response has been formatted to improve readability
{
"from": {
"actor": "akka://DefaultActorSystemControllerActorSystem:FindSeismicByUniqueIdJsonActor:FindSeismicByUniqueIdEntitlementCheckResponse for FindSeismicByUniqueIdEntitlementCheckRequest of FindSeismicByUniqueIdRequest:FindSeismicByUniqueIdRequest{klass=AbstractSeismicDataFinder, sourceName=0e704862-738a-4b07-9aba-09922ff13d94, uniqueId=c2Vpc21pYy9mMS5zZWd5, statisticsType=KEEP_NORMALIZATION, sourceType=geofiles}"
},
"data": {
"id": "c2Vpc21pYy9mMS5zZWd5",
"content": {
"name": "f1",
"keyRanges": [
{
"name": "TraceNumber",
"minimum": 1.0,
"maximum": 132625.0,
"increment": 1.0,
"sortOrder": "Unsorted"
},
{
"name": "Time",
"minimum": 0.0,
"maximum": 19.998,
"increment": 0.003,
"sortOrder": "Unsorted"
}
],
"zUnitSymbol": "s",
"domainType": "Time",
"queryOrders": [
{
"name": "XSection",
"sampleKeyName": "Time"
}
],
"statistics": {
"numberOfTraces": 132625,
"samplesPerTrace": 6667,
"startTime": 0.0,
"sampleRate": 0.003,
"normalization": {
"minimumValue": -3.2931248370993623E38,
"maximumValue": 3.3529443562157003E38,
"meanValue": 3.3049796790461864E34,
"rmsValue": 2.6184846448243568E36
}
},
"traceHeaders": [
{
"id": 200,
"name": "TSSN",
"type": "UInt",
"size": 4
},
{
"id": 201,
"name": "FIELD REC",
"type": "UInt",
"size": 4
},
{
"id": 202,
"name": "FIELD TR",
"type": "UInt",
"size": 4
},
{
"id": 203,
"name": "SHTPT ID",
"type": "UInt",
"size": 4
},
{
"id": 204,
"name": "CDP",
"type": "Int",
"size": 4
},
{
"id": 205,
"name": "CDPTR",
"type": "UInt",
"size": 4
},
{
"id": 206,
"name": "TRACE ID",
"type": "UShort",
"size": 2
},
{
"id": 222,
"name": "VERT SUM",
"type": "UShort",
"size": 2
},
{
"id": 223,
"name": "HORZ SUM",
"type": "UShort",
"size": 2
},
{
"id": 224,
"name": "DATA USE",
"type": "UShort",
"size": 2
},
{
"id": 207,
"name": "OFFSET",
"type": "Int",
"size": 4
},
{
"id": 208,
"name": "RCV ELEV",
"type": "Int",
"size": 4
},
{
"id": 225,
"name": "SRC ELEV",
"type": "Int",
"size": 4
},
{
"id": 226,
"name": "SRC DEPTH",
"type": "Int",
"size": 4
},
{
"id": 227,
"name": "RCV DATUM",
"type": "Int",
"size": 4
},
{
"id": 228,
"name": "SRC DATUM",
"type": "Int",
"size": 4
},
{
"id": 229,
"name": "SRC WATER DEPTH",
"type": "Int",
"size": 4
},
{
"id": 230,
"name": "RCV WATER DEPTH",
"type": "Int",
"size": 4
},
{
"id": 231,
"name": "ELEVATION SCALER",
"type": "Short",
"size": 2
},
{
"id": 209,
"name": "LOC SCALER",
"type": "Short",
"size": 2
},
{
"id": 210,
"name": "SRCX",
"type": "UInt",
"size": 4
},
{
"id": 211,
"name": "SRCY",
"type": "UInt",
"size": 4
},
{
"id": 212,
"name": "RCVX",
"type": "UInt",
"size": 4
},
{
"id": 213,
"name": "RCVY",
"type": "UInt",
"size": 4
},
{
"id": 232,
"name": "COORD UNITS",
"type": "UShort",
"size": 2
},
{
"id": 233,
"name": "WEATHER VEL",
"type": "UShort",
"size": 2
},
{
"id": 234,
"name": "SUBWEATHER VEL",
"type": "UShort",
"size": 2
},
{
"id": 235,
"name": "SRC UPHOLE TIME",
"type": "Short",
"size": 2
},
{
"id": 236,
"name": "RCV UPHOLE TIME",
"type": "Short",
"size": 2
},
{
"id": 237,
"name": "SRC STATIC CORR",
"type": "Short",
"size": 2
},
{
"id": 238,
"name": "RCV STATIC CORR",
"type": "Short",
"size": 2
},
{
"id": 239,
"name": "TOTAL STATIC CORR",
"type": "Short",
"size": 2
},
{
"id": 240,
"name": "LAG A",
"type": "Short",
"size": 2
},
{
"id": 241,
"name": "LAG B",
"type": "Short",
"size": 2
},
{
"id": 214,
"name": "START TIME",
"type": "Short",
"size": 2
},
{
"id": 242,
"name": "MUTE START",
"type": "Short",
"size": 2
},
{
"id": 243,
"name": "MUTE END",
"type": "Short",
"size": 2
},
{
"id": 215,
"name": "SAMPLES IN TRACE",
"type": "UShort",
"size": 2
},
{
"id": 216,
"name": "SAMPLE RATE",
"type": "UShort",
"size": 2
},
{
"id": 217,
"name": "CDPX",
"type": "UInt",
"size": 4
},
{
"id": 218,
"name": "CDPY",
"type": "UInt",
"size": 4
},
{
"id": 219,
"name": "INLINE",
"type": "Int",
"size": 4
},
{
"id": 220,
"name": "XLINE",
"type": "Int",
"size": 4
},
{
"id": 221,
"name": "SHTPT NUM",
"type": "Int",
"size": 4
},
{
"id": 244,
"name": "SURF TIME SCALER",
"type": "Short",
"size": 2
},
{
"id": 1100,
"name": "TraceNumber",
"type": "Double",
"size": 8
}
]
},
"links": [
{
"rel": "self",
"relEntity": "v1/schema/int/seismic",
"href": "/ivaap/api/ds/geofiles/v1/sources/0e704862-738a-4b07-9aba-09922ff13d94/seismic/c2Vpc21pYy9mMS5zZWd5",
"children": false,
"hasProjectEntityChildren": false,
"isProjectEntity": false
},
{
"rel": "Seismic",
"name": "Seismic",
"relEntity": "v1/schema/int/seismic",
"href": "/ivaap/api/ds/geofiles/v1/sources/0e704862-738a-4b07-9aba-09922ff13d94/seismic/c2Vpc21pYy9mMS5zZWd5",
"children": false,
"hasProjectEntityChildren": false,
"isProjectEntity": true
},
{
"rel": "Query Info",
"name": "Query Info",
"relEntity": "v1/schema/int/seismic/queryinfo",
"href": "/ivaap/api/ds/geofiles/v1/sources/0e704862-738a-4b07-9aba-09922ff13d94/seismic/c2Vpc21pYy9mMS5zZWd5/queryinfo",
"children": false,
"hasProjectEntityChildren": false,
"isProjectEntity": false
},
{
"rel": "Properties",
"name": "Properties",
"relEntity": "v1/schema/int/properties",
"hasProjectEntityChildren": false,
"isProjectEntity": false,
"href": "/ivaap/api/ds/geofiles/v1/sources/0e704862-738a-4b07-9aba-09922ff13d94/seismic/c2Vpc21pYy9mMS5zZWd5/properties",
"children": true
},
{
"rel": "Seismic Compressor",
"name": "Seismic Compressors",
"relEntity": "v1/schema/int/seismiccompressor",
"hasProjectEntityChildren": false,
"isProjectEntity": false,
"href": "/ivaap/api/ds/geofiles/v1/seismiccompressors",
"children": true
}
]
}
}
The id entry is the unique id of a seismic.
The name entry is the name of the specified file, without the extension.
The keyRanges section is a collection of all indexed seismic fields. Indexed seismic fields can be used as part of queries such as range queries. See the seismicquery web service for more information on how to perform queries. Raw Segy files typically have two key names: TraceNumber and Time. Indexed Segy files can have a varied set of keys, such as INLINE/XLINE/Time for volumes or INLINE/XLINE/OFFSET/Time for gathers. The names vary for each indexed dataset based upon the selections made during indexing. For each key, the boundaries (minimum and maximum) are specified along with an increment. The increment represents the minimum step between two traces along the specified axis. If no particular gridding was detecting during indexing and all values are integers, the increment is typically 1. Do not assume that key values are all integers. Also, the step might be negative to indicate that the traces are stored on disk in reverse order. The sortOrder entry specifies the order of key values.
The zUnitSymbol entry represents the symbol of the vertical unit, typically:
s for seconds
ms for milliseconds
m for meters
ft for feet
The domainType entry indicates whether the dataset is in time or depth.
The queryOrders section specifies orders that are supported by this dataset. Each order identified by a name, typically:
XSection for XSection queries
Map for Map queries
See the seismicquery web service for information about XSection vs Map queries. Most datasets support XSection queries. Datasets that have been transposed support Map queries. In rare cases, a dataset might support Map queries but not XSection queries. The sampleKeyName attribute indicates which key represents the samples axis.
The statistics section gathers all seismic statistics. The numberOfTraces attribute represents the total number of traces found in the file. If a volume has no missing traces (the dataset is "regular"), this is the number of INLINEs multiplied by the number of XLINEs. The samplesPerTrace attribute represents the number of samples in each trace. The number of samples is identical for all traces. The startTime attribute represents the time (or depth) of the first sample. This is the same value as the minimum attribute of the sample key. Do not assume that this value is always positive. The sampleRate attribute represents the time (or depth) increment between two consecutive samples. This is the same value as the increment attribute of the sample key. To calculate the time (or depth) of the last sample, the formula is:
endValue = startValue + (numberOfSamples - 1) * sampleRate
The normalization attribute gathers all amplitude statistics, only present if includenormalization was not set to False. The minimumValue entry represents the minimum amplitude found. The maximumValue entry represents the maximum amplitude found. The meanValue entry represents the average amplitude for all amplitudes found. The rmsValue entry represents the root mean square of all amplitudes found.
The traceHeader section lists all headers of a seismic dataset, whether they are indexed or non-indexed headers. These are the headers you'd retrieve when executing XSection queries.
Each header is identified by an id. All ids are unique but they might not be sequential. The name attribute indicates the name of each header. There is no guarantee that names are identical from one dataset to the next. For example, Segy files tend to use the keyword INLINE while Promax files use the keyword INLINE_NO. By convention, header names are uppercase, but this convention might not be followed by all datasets. However, the name of the indexed keys (in the keyRanges section) must match exactly header names. The type can have several values:
UInt, for unsigned integer
Int, for signed integer
UShort, for unsigned short
Short, for signed short
Float
Double
The mapTraceHeader section lists the two headers of a seismic dataset when executing Map queries. This section is only populated if the dataset support Map queries.
The links sections lists all HATEOAS links leading to the services supported by this dataset.
If the specified seismicuniqueid doesn't match a valid seismic dataset, no JSON response will be provided. The HTTP response will only show a "InvalidUniqueId" (error 404) in its headers.
The content of this web service is pluggable so that information specific to your data format can be included. To add your own content, extend the com.interactive.ivaapapi.json.AbstractJsonBuilder class.