This repository has been archived by the owner on Nov 20, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathqz_continuous3.proto
149 lines (147 loc) · 5.81 KB
/
qz_continuous3.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
syntax = "proto3";
package id.ac.itb.pptik.quakezone;
/**
* A stream of samples from a station configured as continouous (usually fixed stations, but mobile phones can send continouous signals too).
*/
message ContinuousStream {
/**
* Station ID (ObjectId of the station, given by Station API which is from MongoDB),
* it is a 24-character hexadecimal string, e.g. "507f1f77bcf86cd799439011".
* The JWT payload will become: {"sub": "(station_id)"}
* For a fixed station, this is configured from environment variable `STATION_ID`.
*/
string station_id = 1;
/**
* JWT signature ONLY (decoded from base64 as binary), without JWT header and payload.
* The signature is given by Station API during station signin.
* For a fixed station, this is configured from environment variable `STATION_SIGNATURE`.
* The JWT token becomes:
* Header: {"alg":"HS256","typ":"JWT"}
* Payload: {"sub": "(station_id)"}
* Signature: base64(binary signature)
*/
bytes signature = 2;
/**
* Start time of the stream (should start at exactly millisecond 0 of a second),
* in milliseconds since UTC epoch.
*/
uint64 start_time = 3;
/**
* Duration of this continouous stream (in seconds), normally this is 1 second.
*/
uint32 duration = 4;
/**
* Sampling rate of location traces (latitude, longitude, altitude), normally this is 4 Hz.
*/
uint32 location_sampling_rate = 5;
/**
* Sampling rate of motion traces (totaling 37 channels), normally this is 50 Hz.
*/
uint32 motion_sampling_rate = 6;
/**
* Latitude traces, in degrees.
* This array should contain number of elements exactly as in `location_sampling_rate`,
* upsampling if necessary.
*/
repeated float latitude = 7;
/**
* Longitude traces, in degrees.
* This array should contain number of elements exactly as in `location_sampling_rate`,
* upsampling if necessary.
*/
repeated float longitude = 8;
/**
* Altitude traces, in meters above sea level.
* It can be empty if hardware sensor cannot provide altitude.
* If given, this array should contain number of elements exactly as in `location_sampling_rate`,
* upsampling if necessary.
*/
repeated float altitude = 9;
/**
* Gravity acceleration traces, in m/s^2.
* These may be empty if the sensor hardware cannot measure gravity acceleration.
* If given, this array should contain number of elements exactly as in `motion_sampling_rate`,
* upsampling if necessary.
*/
repeated float gravity_x = 10;
repeated float gravity_y = 11;
repeated float gravity_z = 12;
/**
* Geomagnetic field (calibrated) traces, in μT.
* This array should contain number of elements exactly as in `motion_sampling_rate`,
* upsampling if necessary.
*/
repeated float geomagnetic_x = 13;
repeated float geomagnetic_y = 14;
repeated float geomagnetic_z = 15;
/**
* Raw acceleration (including gravity) traces, in m/s^2.
* Traces are in device (XYZ) coordinates,
* Live Signal Recorder worker will rotate to world (ZNE) coordinates if possible before saving to `signalLive` collection.
* This array should contain number of elements exactly as in `motion_sampling_rate`,
* upsampling if necessary.
*/
repeated float raw_accel_x = 16;
repeated float raw_accel_y = 17;
repeated float raw_accel_z = 18;
/**
* Linear acceleration (excluding gravity) traces, in m/s^2.
* These may be empty if the sensor hardware cannot measure gravity acceleration.
* Traces are in device (XYZ) coordinates,
* Live Signal Recorder worker will rotate to world (ZNE) coordinates if possible before saving to `signalLive` collection.
* If given, this array should contain number of elements exactly as in `motion_sampling_rate`,
* upsampling if necessary.
*/
repeated float linear_accel_x = 19;
repeated float linear_accel_y = 20;
repeated float linear_accel_z = 21;
/**
* Rotation rate (gyroscope) traces, in rad/s.
* Traces are in device (XYZ) coordinates,
* Live Signal Recorder worker will rotate to world (ZNE) coordinates if possible before saving to `signalLive` collection.
* This array should contain number of elements exactly as in `motion_sampling_rate`,
* upsampling if necessary.
*/
repeated float rotation_rate_x = 22;
repeated float rotation_rate_y = 23;
repeated float rotation_rate_z = 24;
/**
* Inclination matrix traces.
* These may be empty if the sensor hardware cannot measure rotation matrix/vector.
* If given, these arrays should contain number of elements exactly as in `motion_sampling_rate`,
* upsampling if necessary.
*
* Inclination matrix IM is always in this form, so only 4 matrix elements is needed:
*
* / 1 0 0 0 \
* | 0 M[ 5] M[ 6] 0 |
* | 0 M[ 9] M[10] 0 |
* \ 0 0 0 1 /
*/
repeated float inclination_matrix_5 = 25;
repeated float inclination_matrix_6 = 26;
repeated float inclination_matrix_9 = 27;
repeated float inclination_matrix_10 = 28;
/**
* Rotation matrix traces.
* These may be empty if the sensor hardware cannot measure rotation matrix/vector.
* If given, these arrays should contain number of elements exactly as in `motion_sampling_rate`,
* upsampling if necessary.
*
* Rotation matrix RM is always in this form, so only 9 matrix elements is needed:
*
* / M[ 0] M[ 1] M[ 2] 0 \
* | M[ 4] M[ 5] M[ 6] 0 |
* | M[ 8] M[ 9] M[10] 0 |
* \ 0 0 0 1 /
*/
repeated float rotation_matrix_0 = 29;
repeated float rotation_matrix_1 = 30;
repeated float rotation_matrix_2 = 31;
repeated float rotation_matrix_4 = 32;
repeated float rotation_matrix_5 = 33;
repeated float rotation_matrix_6 = 34;
repeated float rotation_matrix_8 = 35;
repeated float rotation_matrix_9 = 36;
repeated float rotation_matrix_10 = 37;
}