-
Notifications
You must be signed in to change notification settings - Fork 3
/
ingest_service_messages.proto
266 lines (231 loc) · 12.7 KB
/
ingest_service_messages.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
/**
Messages from the ingestion service of Seismic Datastore in Cognite Data Fusion
**/
syntax = "proto3";
package com.cognite.seismic;
import "cognite/seismic/protos/types.proto";
import "google/protobuf/wrappers.proto";
// -----
/**
[Example]
{"name": "surveyname", "metadata": {"location": "underwater"}, "external_id": "surveyname-external" }
**/
message RegisterSurveyRequest {
string name = 1; // [required]
map<string, string> metadata = 2; // [optional]
ExternalId external_id = 3; // [optional]
CRS crs = 4; // [optional] new CRS used by all members
SurveyGridTransformation grid_transformation = 5; // [optional] Affine transformation from grid bins to coordinates
CustomSurveyCoverage custom_coverage = 6;
}
message RegisterSurveyResponse {
Survey survey = 1;
}
// -----
/**
[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"}
}
**/
message RegisterFileRequest {
Identifier survey = 1; // [required] Either name or id of a survey previously registered with /RegisterSurvey
string path = 2; // [required if file is not synthetic] Path including protocol, bucket and directory structure. Example: "gs://cognite-seismic-eu/samples/"
string name = 3; // [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
map<string, string> metadata = 4; // [optional]
CRS crs = 5; // [required] Official name of the CRS used. Example: "EPSG:23031"
google.protobuf.BoolValue is_temporary = 6; // [optional] tells whether file is temporary (writeable) or not. False by default
google.protobuf.Int32Value inline_offset = 7; // [optional] Inline number field in the trace headers. Defaults to 189 as per the SEG-Y rev1 specification
google.protobuf.Int32Value crossline_offset = 8; // [optional] Crossline number field in the trace headers. Defaults to 193 as per the SEG-Y rev1 specification
google.protobuf.Int32Value cdp_x_offset = 9; // [optional] X coordinate of ensemble (CDP) position in trace headers. Defaults to 181 as per the SEG-Y rev1 specification
google.protobuf.Int32Value cdp_y_offset = 10; // [optional] Y coordinate of ensemble (CDP) position in trace headers. Defaults to 185 as per the SEG-Y rev1 specification
ExternalId external_id = 11; // [optional] An external identifier - matches service contract field
/**
[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 is 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 are not permitted when registering a file, although 0 may be used in the EditFile call to unset this field.
**/
google.protobuf.FloatValue source_group_scalar_override = 12;
// This can be reused all SDK and service releases referencing this field have been replaced.
reserved 13;
}
message RegisterFileResponse {
File file = 1;
}
// -----
message StoreTraceRequest {
Identifier file = 1;
int32 iline = 2;
int32 xline = 3;
google.protobuf.Int32Value x = 4;
google.protobuf.Int32Value y = 5;
repeated float trace = 6;
bytes raw_header = 7;
}
// -----
/**
[Example]
{"file": {"name": "ABP16M03-FMIG-OBC-PSDM-FULL-STACK-T.MIG_FIN.POST_STACK..JS-021837.segy"} }
**/
message IngestFileRequest {
// [required] Either name or id of a file previously registered with /RegisterFile
Identifier file = 1;
/**
[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
**/
FileStep start_step = 2;
/**
[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 is 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.
**/
string target_storage_tier_name = 3;
}
message IngestFileResponse {
string job_id = 1; //job id that can be used to query for status
string file_id = 2;
}
// -----
/**
[Example]
{"job_id": "1e9a4f9b-7c15-44dd-bbbb-e9e9fb83e401"}
**/
message StatusRequest {
oneof search_by {
string job_id = 1;
string file_id = 2;
int64 seismicstore_id = 3;
}
}
message StatusResponse {
JobStatus status = 1;
string message = 2;
string started_at = 3;
string updated_at = 4;
repeated IngestionLog logs = 5;
}
message IngestionLog {
string timestamp = 1;
string log_line = 2;
}
// -----
/**
[Example]
{"file": {"id": "97305892-d622-4425-8530-3029b740842e"} }
**/
message DeleteFileRequest {
cognite.seismic.Identifier file = 1; // [required] Either name or id of a file previously registered with /RegisterFile
/*
If 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
*/
bool keep_registered = 2;
}
// -----
/**
[Example]
{"survey": {"name": "survey_name"} }
**/
message DeleteSurveyRequest {
cognite.seismic.Identifier survey = 1; // [required] Either name or id of a survey previously registered with /RegisterSurvey
}
// -----
/**
[Example]
{"file": {"id": "97305892-d622-4425-8530-3029b740842e"} }
**/
message EditFileRequest {
Identifier file = 1; // [required] Either name or id of a file previously registered with /RegisterFile
string path = 2; // [optional] New path. Example: "gs://cognite-seismic-eu/samples/"
string name = 3; // [optional] New (unique) filename. Example: "DN1302M03R16_MERGED_KPSDM_00-32_DEG_T.sgy"
map<string, string> metadata = 4; // [optional] New metadata
CRS crs = 5; // [optional] Official name of the CRS used. Example: "EPSG:23031"
google.protobuf.Int32Value inline_offset = 6; // [optional] Inline number field in the trace headers. Defaults to 189 as per the SEG-Y rev1 specification
google.protobuf.Int32Value crossline_offset = 7; // [optional] Crossline number field in the trace headers. Defaults to 193 as per the SEG-Y rev1 specification
google.protobuf.Int32Value cdp_x_offset = 8; // [optional] X coordinate of ensemble (CDP) position in trace headers. Defaults to 181 as per the SEG-Y rev1 specification
google.protobuf.Int32Value cdp_y_offset = 9; // [optional] Y coordinate of ensemble (CDP) position in trace headers. Defaults to 185 as per the SEG-Y rev1 specification
ExternalId external_id = 10; // [optional] An external identifier - matches service contract field
/**
[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 is 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 are not 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.
**/
google.protobuf.FloatValue source_group_scalar_override = 11;
}
message EditFileResponse {
cognite.seismic.File file = 1;
string path = 2;
CRS crs = 3;
google.protobuf.Int32Value inline_offset = 4; // [optional] Inline number field in the trace headers. Defaults to 189 as per the SEG-Y rev1 specification
google.protobuf.Int32Value crossline_offset = 5; // [optional] Crossline number field in the trace headers. Defaults to 193 as per the SEG-Y rev1 specification
google.protobuf.Int32Value cdp_x_offset = 6; // [optional] X coordinate of ensemble (CDP) position in trace headers. Defaults to 181 as per the SEG-Y rev1 specification
google.protobuf.Int32Value cdp_y_offset = 7; // [optional] Y coordinate of ensemble (CDP) position in trace headers. Defaults to 185 as per the SEG-Y rev1 specification
google.protobuf.FloatValue source_group_scalar_override = 8; // [optional] Multiplier for CDP-X and CDP-Y values, overrides scalar factor obtained from trace header
}
// -----
/**
[Example]
{"survey": {"id": "97305892-d622-4425-8530-3029b740842e"}, "name": "new name"}
**/
message EditSurveyRequest {
Identifier survey = 1; // [required] Either name or id of a survey previously registered with /RegisterSurvey
string name = 2; // [optional] New name
map<string, string> metadata = 3; // [optional] New metadata
ExternalId external_id = 4; // [optional] External id matching service contract type
CRS crs = 5; // [optional] new CRS used by all members
SurveyGridTransformation grid_transformation = 6; // [optional] Affine transformation from grid bins to coordinates
CustomSurveyCoverage custom_coverage = 7; // [optional] Customer-provided custom survey coverage
}
message EditSurveyResponse {
Survey survey = 1;
}
message ListFileAccessRequest {
Identifier file = 1; // [required] Either name or id of a file
}
message EditFileAccessRequest {
Identifier file = 1; // [required] Either name or id of a file
Identifier project = 2; // [required] Either name or id of a project
/**
If neither add or remove are set, or if both are set to true, add will be assumed
**/
bool add = 3; // Add project access to this file
bool remove = 4; // Remove project access from this file
}
message ProjectListResponse {
repeated Project project = 1;
}