Systems

The GS standard provides a dedicated location and framework for describing geophysical systems. To apply to the wide variety of geophysical methods, techniques, and instruments, the GS standard defines a system as a composition of four elements:

  1. sources or transmitters (TX) - sends energy into the earth

  2. receivers (RX) - record natural or induced signals from the earth

  3. couplets - represent one or more specific transmitter-receiver combinations

  4. channels - represent discrete values recorded by a receiver. Channels typically match a data variable dimension, but are flexible in their composition from sources, receivers, and couplets. For example, a data variable may have channels associated with a single couplet, or channels that result from the combination of multiple couplets.

Systems are passed through metadata files, either with the Survey or Data Leaf metadata files. When included in the Survey file, systems are added directly beneath it temporarily for use in constructing the Data Tree (e.g. systems can be passed directly from the /survey when adding new datasets). However, when writing to netCDF, all systems attached directly to the ‘/survey’ group are dropped and only those at the System Leaflet tier (benath Data Leaves) are retained.

Below is an example of a dual-moment electromagnetic (EM) time-domain system. In this case, the data channel corresponds to the dimensions of high and low moment gate times.

Important

Systems expect the sections “transmitter”, “receiver”, and “couplet” underneath the “variables” header. Any key: value pairs beneath these headers should represent properties and metadata information pertaining to just that element of the system, and will automatically have that header prefixed to the variable names. For example, “area” under “transmitter” will become the variable “transmitter_area”.

The label field beneath each “transmitter” and “receiver” is required and used to define both the dimensions of their variables and the labels of the “couplet”. By default, GSPy generates the variable couplet_label by combining the transmitter and receiver labels: {transmitter_label}_{receiver_label}. Users can override this by explicitly passing a “label” field beneath the “couplet” header. In either case, the system_couplet attributes underneath data variables in the Data Leaf group must match!

  1nominal_system:
  2    type: system
  3    mode: airborne
  4    method: electromagnetic, time domain
  5    instrument: SkyTEM 304M
  6
  7    dimensions:
  8    
  9        lm_gate_times:
 10            standard_name: lm_gate_times
 11            long_name: calibrated low moment gate times
 12            units: seconds
 13            missing_value: not_defined
 14            bounds: [[-1.420000e-06, -8.500000e-07],
 15                    [-4.200000e-07,  1.150000e-06],
 16                    [ 1.580000e-06,  3.150000e-06],
 17                    [ 3.580000e-06,  5.150000e-06],
 18                    [ 5.580000e-06,  7.150000e-06],
 19                    [ 7.580000e-06,  9.150000e-06],
 20                    [ 9.580000e-06,  1.115000e-05],
 21                    [ 1.158000e-05,  1.415000e-05],
 22                    [ 1.458000e-05,  1.815000e-05],
 23                    [ 1.858000e-05,  2.315000e-05],
 24                    [ 2.358000e-05,  2.915000e-05],
 25                    [ 2.958000e-05,  3.715000e-05],
 26                    [ 3.758000e-05,  4.715000e-05],
 27                    [ 4.758000e-05,  6.015000e-05],
 28                    [ 6.056500e-05,  7.616500e-05],
 29                    [ 7.656500e-05,  9.616500e-05],
 30                    [ 9.656500e-05,  1.211650e-04],
 31                    [ 1.215650e-04,  1.521650e-04],
 32                    [ 1.525650e-04,  1.921650e-04],
 33                    [ 1.925650e-04,  2.431650e-04],
 34                    [ 2.435650e-04,  3.061650e-04],
 35                    [ 3.065650e-04,  3.871650e-04],
 36                    [ 3.875650e-04,  4.881650e-04],
 37                    [ 4.885650e-04,  6.151650e-04],
 38                    [ 6.155650e-04,  7.761650e-04],
 39                    [ 7.765650e-04,  9.781650e-04],
 40                    [ 9.785650e-04,  1.233165e-03],
 41                    [ 1.233565e-03,  1.555165e-03]]
 42            centers: [-1.135000E-06,  3.650000E-07,  2.365000E-06,  4.365000E-06, 6.365000E-06,  8.365000E-06,  1.036500E-05,  1.286500E-05, 1.636500E-05,  2.086500E-05,  2.636500E-05,  3.336500E-05, 4.236500E-05,  5.386500E-05,  6.836500E-05,  8.636500E-05, 1.088650E-04,  1.368650E-04,  1.723650E-04,  2.178650E-04, 2.748650E-04,  3.468650E-04,  4.378650E-04,  5.518650E-04, 6.958650E-04,  8.773650E-04,  1.105865E-03,  1.394365E-03]
 43        hm_gate_times:
 44            standard_name: hm_gate_times
 45            long_name: calibrated high moment gate times
 46            units: seconds
 47            missing_value: not_defined
 48            bounds: [[2.85800e-05, 2.91500e-05],
 49                    [2.95800e-05, 3.11500e-05],
 50                    [3.15800e-05, 3.31500e-05],
 51                    [3.35800e-05, 3.51500e-05],
 52                    [3.55800e-05, 3.71500e-05],
 53                    [3.75800e-05, 3.91500e-05],
 54                    [3.95800e-05, 4.11500e-05],
 55                    [4.15800e-05, 4.41500e-05],
 56                    [4.45800e-05, 4.81500e-05],
 57                    [4.85800e-05, 5.31500e-05],
 58                    [5.35800e-05, 5.91500e-05],
 59                    [5.95800e-05, 6.71500e-05],
 60                    [6.75800e-05, 7.71500e-05],
 61                    [7.75800e-05, 9.01500e-05],
 62                    [9.05800e-05, 1.06150e-04],
 63                    [1.06580e-04, 1.26150e-04],
 64                    [1.26580e-04, 1.51150e-04],
 65                    [1.51580e-04, 1.82150e-04],
 66                    [1.82580e-04, 2.22150e-04],
 67                    [2.22580e-04, 2.73150e-04],
 68                    [2.73580e-04, 3.36150e-04],
 69                    [3.36580e-04, 4.17150e-04],
 70                    [4.17580e-04, 5.18150e-04],
 71                    [5.18580e-04, 6.45150e-04],
 72                    [6.45580e-04, 8.06150e-04],
 73                    [8.06580e-04, 1.00815e-03],
 74                    [1.00858e-03, 1.26315e-03],
 75                    [1.26358e-03, 1.58515e-03],
 76                    [1.58558e-03, 1.99115e-03],
 77                    [1.99158e-03, 2.50215e-03],
 78                    [2.50258e-03, 3.14815e-03],
 79                    [3.14858e-03, 3.94015e-03]]
 80            centers: [2.886500E-05, 3.036500E-05, 3.236500E-05, 3.436500E-05, 3.636500E-05, 3.836500E-05, 4.036500E-05, 4.286500E-05, 4.636500E-05, 5.086500E-05, 5.636500E-05, 6.336500E-05, 7.236500E-05, 8.386500E-05, 9.836500E-05, 1.163650E-04, 1.388650E-04, 1.668650E-04, 2.023650E-04, 2.478650E-04, 3.048650E-04, 3.768650E-04, 4.678650E-04, 5.818650E-04, 7.258650E-04, 9.073650E-04, 1.135865E-03, 1.424365E-03, 1.788365E-03, 2.246865E-03, 2.825365E-03, 3.544365E-03]
 81
 82        n_loop_vertices:
 83            standard_name: number_of_loop_vertices
 84            long_name: number of loop vertices
 85            units: not_defined
 86            missing_value: not_defined
 87            length: 8
 88
 89        xyz:
 90            standard_name: xyz_coordinates
 91            long_name: coordinates of the loop vertices
 92            units: not_defined
 93            missing_value: not_defined
 94            length: 3
 95
 96    variables:
 97
 98        data_normalized: True
 99        skytem_skb_gex_available: True
100        reference_frame: right-handed positive down
101        coil_orientations: X, Z
102
103        transmitter:
104            label: [LM, HM]
105            number_of_turns: [1, 4]
106            coordinates:
107                values: [[[-12.64,-2.10,0.00],[-6.14,-8.58,0.00],[6.14,-8.58,0.00],[11.41,-3.31,0.00],[11.41,3.31,0.00],[6.14,8.58,0.00],[-6.14,8.58,0.00],[-12.64,2.10,0.00]],
108                         [[-12.64,-2.10,0.00],[-6.14,-8.58,0.00],[6.14,-8.58,0.00],[11.41,-3.31,0.00],[11.41,3.31,0.00],[6.14,8.58,0.00],[-6.14,8.58,0.00],[-12.64,2.10,0.00]]]
109                dimensions: ['n_transmitter', 'n_loop_vertices', 'xyz']
110            area: [342, 342]
111            waveform_type: [trapezoid, trapezoid]
112            waveform_time:
113                values: [[-3.1810E-003, -3.1019E-003, -2.9844E-003, -2.3810E-003, -2.3781E-003, -2.3779E-003, -2.3776E-003, -2.3763E-003, -8.0000E-004, -7.2093E-004, -6.0345E-004, 0.0000E+000, 3.0000E-008, 7.0000E-008, 2.7200E-006, 2.8000E-006, 2.9000E-006, 3.0100E-006, 3.1300E-006, 3.4100E-006, 4.7400E-006],
114                         [-6.9167E-02, -6.9157E-02, -6.9153E-02, -6.9150E-02, -6.9143E-02, -6.9122E-02, -6.9118E-02, -6.9114E-02, -6.9107E-02, -6.9083E-02, -6.8159E-02, -6.6667E-02, -6.6627E-02, -6.6626E-02, -6.6622E-02, -2.5000E-03, -2.4899E-03, -2.4862E-03, -2.4830E-03, -2.4767E-03, -2.4637E-03, -2.4547E-03, -2.4510E-03, -2.4475E-03, -2.4442E-03, -2.4406E-03, -2.4159E-03, -2.2328E-03, -1.4913E-03, 0.0000E+00, 6.4270E-07, 8.9870E-07, 1.4267E-05, 4.0291E-05, 4.1331E-05, 4.4539E-05]]
115                long_name: waveform time
116                missing_value: not_defined
117                units: s
118            waveform_current:
119                values: [[-0.0000E+000, -1.4067E-001, -3.0174E-001, -1.0000E+000, -7.5094E-003, 2.2879E-002, 3.7669E-002, -0.0000E+000, 0.0000E+000, 1.4063E-001, 3.0168E-001, 1.0000E+000, 9.9851E-001, 9.8817E-001, 5.9260E-002, 3.2392E-002, 7.5094E-003, -1.2284E-002, -2.6411E-002, -3.8086E-002, 0.0000E+000],
120                         [-0.0000E+00, -3.3580E-02, -6.8755E-02, -1.0992E-01, -2.4885E-01, -7.3516E-01, -8.1234E-01, -8.6553E-01, -9.0296E-01, -9.2188E-01, -9.6364E-01, -1.0000E+00, -8.2124E-03, 7.2510E-03, -0.0000E+00, 0.0000E+00, 3.3780E-02, 6.5400E-02, 1.0996E-01, 2.3303E-01, 5.4048E-01, 7.4152E-01, 8.1301E-01, 8.6142E-01, 8.8900E-01, 9.0249E-01, 9.2195E-01, 9.3742E-01, 9.6367E-01, 1.0000E+00, 9.9562E-01, 9.8391E-01, 6.4740E-01, 9.9177E-04, -1.1094E-02, 0.0000E+00]]
121                dimensions: ['n_transmitter', 'waveform_time']
122            current_scale_factor: 1.0
123            peak_current: [9.0, 110.0]
124            base_frequency: [210.0, 75.0]
125            on_time: [800E-06, 2500e-6]
126            off_time: [1581E-06, 4167e-6]
127            orientation: [z, z]
128
129        receiver:
130            label: [z, x]
131            orientation: [z, x]
132            coil_low_pass_filter: [628000.0, 250000.0]
133            instrument_low_pass_filter: [500000.0, 500000.0]
134            area:
135                values: [105.0, 115.0]
136                units: m^2
137
138        couplet:
139            transmitters: [lm, hm, lm, hm]
140            receivers: [z, z, x, x]
141            txrx_dx: [-13.25, -13.25, -14.65, -14.65]
142            txrx_dy: [0.0, 0.0, 0.0, 0.0]
143            txrx_dz: [-2.0, 0.0, -2.0, 0.0]
144            data_type: [dBdt, dBdt, dBdt, dBdt]
145            gate_times: [LM_gate_times, HM_gate_times, LM_gate_times, HM_gate_times]

Below is an example of a simple scalar magnetometer system. There is no concept of a channel dimension in this case. However this example demonstrates how additional prefixes for categories within the system, like “base_magnetometer”, are passed through the “prefixes” key. Under “variables” that prefix should be a header at the same indent level as “transmitter”, “receiver”, and “couplet”. Any key: value pairs indented beneath it become variables with that prefix in the name.

147magnetic_system:
148    type: system
149    mode: airborne
150    method: magnetic
151    instrument: Geometrics G-822A cesium‑vapor magnetometer 
152
153    prefixes: ['base_magnetometer']
154
155    dimensions:
156        base_mag_locations:
157            standard_name: base_mag_locations
158            long_name: Base Magnetometer Location Index Numbers
159            units: not_defined
160            missing_value: not_defined
161            centers: [1, 2]
162            discrete: True
163
164    variables: 
165
166        transmitter:
167            label: passive
168            description: No artificial magnetic transmitter was used. The system measures the scalar Larmor precession frequency induced by the Earth's magnetic field.
169
170        receiver:
171            label: scalar_magnetometer
172            sensor_type: cesium-vapor split-beam
173            sensor_model: G-822A
174            sensor_manufacturer: Geometrics
175            description: Scalar cesium-vapor magnetometer mounted in the aircraft tail stinger. Measures total magnetic field through Larmor precession frequency.
176            orientation: Tail-stinger mounted; scalar measurement independent of orientation.
177            coordinates: not_reported   
178            lag_correction: Lag was negligible and no lag correction was applied
179            heading_correction: Heading was negligible and no heading correction was applied
180
181        couplet:
182            passive_scalar_pair:
183            transmitters: [passive]
184            receivers: [scalar_magnetometer]
185            description: The magnetic measurement system consists of the Earth's field as a passive transmitter and a single scalar magnetometer mounted in the tail stinger.
186
187        base_magnetometer: 
188            label: base_magnetometer
189            description: The base station magnetometer was placed in a location of low magnetic gradient, away from electrical transmission lines and moving metallic objects, such as motor vehicles and aircrafts. 
190
191            location_names:
192                values: ["Door County", "Manitowoc"]
193                dimensions: 'base_mag_locations'
194
195            values:
196                values: [54538, 54194.7]
197                units: nT
198                dimensions: 'base_mag_locations'
199
200            latitude:
201                values: [44.849335, 44.127998]
202                long_name: Latitude in WGS84
203                units: decial degrees
204                dimensions: 'base_mag_locations'
205
206            longitude:
207                values: [87.422440, 87.685524]
208                long_name: Longitude in WGS84
209                units: decial degrees
210                dimensions: 'base_mag_locations'
211            
212            elevation:
213                values: [178.1, 164.4]
214                long_name: Elevation
215                datum: WGS84
216                units: m
217                dimensions: 'base_mag_locations'
218
219        diurnal_correction: Diurnal signal removed using 3 second Fraser low-pass filter and subtracting base-station magnetometer values.
220        tieline_levelling: No tie line-leveling were applied
221        microlevelling: No micro-levelling were applied 
222        igrf_model_date: "2015, 15th generation" 
223        igrf_model_location: variable according to GPS WGS84 longitude and latitude
224        igrf_model_height: variable according to magnetic sensor altitude derived from DGPS data  

Note

Variables within the System Leaflet groups do NOT require the same variable metadata that Data Leaf variables require (e.g. standard_name and long_name). However attributes such as units can optionally be passed where deemed appropriate, and dimensions may still be needed.