Note
Go to the end to download the full example code.
CSV & Rasters: Multi-dataset Survey with Derivative Products
This example demonstrates the typical workflow for creating a GS file for an AEM survey in its entirety, i.e., the NetCDF file contains all related datasets together, e.g., raw data, processed data, inverted models, and derivative products. Specifically, this survey contains:
Minimally processed (raw) AEM data and raw/processed magnetic data provided by SkyTEM
Fully processed AEM data used as input to inversion
Laterally constrained inverted resistivity models
Point-data estimates of bedrock depth derived from the AEM models
Interpolated magnetic and bedrock depth grids
Note: To make the size of this example more managable, some of the input datasets have been downsampled relative to the source files in the data release referenced below.
Source Reference: Minsley, B.J, Bloss, B.R., Hart, D.J., Fitzpatrick, W., Muldoon, M.A., Stewart, E.K., Hunt, R.J., James, S.R., Foks, N.L., and Komiskey, M.J., 2022, Airborne electromagnetic and magnetic survey data, northeast Wisconsin (ver. 1.1, June 2022): U.S. Geological Survey data release, https://doi.org/10.5066/P93SY9LI.
import matplotlib.pyplot as plt
from os.path import join
import numpy as np
import gspy
from gspy import Survey
import xarray as xr
from pprint import pprint
import warnings
warnings.filterwarnings('ignore')
Initialize the Survey
# Path to example files
data_path = '..//data_files//skytem_csv'
# Survey metadata file
metadata = join(data_path, "data//skytem_survey.yml")
# Establish the Survey
survey = Survey.from_dict(metadata)
1dataset_attrs:
2 title: SkyTEM Airborne Electromagnetic (AEM) Survey, Northeast Wisconsin Bedrock Mapping
3 institution: USGS Geology, Geophysics, and Geochemistry Science Center
4 source: SkyTEM raw data, USGS processed data and inverted resistivity models, and depth to bedrock surface
5 history: (1) Data acquisition 01/2021 - 02/2021 by SkyTEM Canada Inc.; (2) AEM and magnetic data processing by SkyTEM Canada Inc. 02/2021 - 03/2021; raw and minimally processed AEM data, and processed magnetic data, received by USGS from SkyTEM Canada Inc 03/2021; Minimally processed AEM data exported to netCDF group /survey/data/raw_data group; (3) Minimally processed binary data and system response information received from the contractor were imported into the Aarhus Workbench software (v 6.0.1.0) where data were processed by USGS 03/2021 - 06/2021. Processed AEM data exported to netCDF group /survey/data/processed_data; (4) Processed data were inverted in Aarhus Workbench software using laterally constrained inversion to recover 40-layer fixed depth blocky resistivity models by USGS 03/2021 - 06/2021; Inverted resistivity models exported to netCDF group /survey/models/inverted_models. (5) Resistivity models were imported into the Geoscene3D software (v. 12.0.0.680) and points were generated at the first depth where resistivity exceeded 325 ohm-meters. These points were visually inspected and manually adjusted in selected areas to produce an AEM-derived estmiate of the elevation of the top of bedrock by USGS together with WGNHS 06/2021 - 07/2021. Points were exported to netCDF group /survey/data/depth_to_bedrock. (6) Bedrock elevation points were interpolated using kriging in Geoscene3D software to produce a regular bedrock elevation grid 07/2021. (7) A bedrock depth grid was calculated in QGIS software (v. 3.14.1-Pi) by subtracting the bedrock elevation from land surface elevation. (8) Bedrock elevation, bedrock depth, and SkyTEM-provided magnetic grids were aligned to a common 100m x 100m grid and exported to netCDF group /survey/derived_products/maps.
6 references: Minsley, Burke J., B.R. Bloss, D.J. Hart, W. Fitzpatrick, M.A. Muldoon, E.K. Stewart, R.J. Hunt, S.R. James, N.L. Foks, and M.J. Komiskey, 2021, Airborne electromagnetic and magnetic survey data, northeast Wisconsin, 2021, U.S. Geological Survey data release, https://doi.org/10.5066/P93SY9LI.
7 comment: This dataset includes minimally processed (raw) AEM and raw/processed magnetic data provided by SkyTEM, fully processed data used as input to inversion, laterally constrained inverted resistivity models, and derived estimates of bedrock depth.
8 summary: Airborne electromagnetic (AEM) and magnetic survey data were collected during January and February 2021 over a distance of 3,170 line kilometers in northeast Wisconsin. These data were collected in support of an effort to improve estimates of depth to bedrock through a collaborative project between the U.S. Geological Survey (USGS), Wisconsin Department of Agriculture, Trade, and Consumer Protection (DATCP), and Wisconsin Geological and Natural History Survey (WGNHS). Data were acquired by SkyTEM Canada Inc. with the SkyTEM 304M time-domain helicopter-borne electromagnetic system together with a Geometrics G822A cesium vapor magnetometer. The survey was acquired at a nominal flight height of 30 - 40 m above terrain along parallel flight lines oriented northwest-southeast with nominal line spacing of 0.5 miles (800 m). AEM data were inverted to produce models of electrical resistivity along flight paths, with typical depth of investigation up to about 300 m and 1 - 2 m near-surface resolution. Shallow resistivity transitions were used to estimate depth to bedrock across the survey area.
9 content: Wisconsin SkyTEM survey information
10
11survey_information:
12 contractor_project_number: 20022
13 contractor: SkyTEM Canada Inc
14 client: U.S. Geological Survey
15 survey_type: EM/Mag
16 survey_area_name: Northeast Wisconsin Bedrock Mapping
17 state: WI
18 country: USA
19 acquisition_start: 20210117
20 acquisition_end: 20210207
21 survey_attributes_units: SI
22
23spatial_ref:
24 wkid: 3071
25 authority: EPSG
26 vertical_crs: NAVD88
27
28flightline_information:
29 traverse_line_spacing: 800 m
30 traverse_line_direction: nw-se
31 tie_line_spacing: n/a
32 tie_line_direction: n/a
33 nominal_terrain_clearance: 30 m
34 final_line_kilometers: 3170 km
35 traverse_line_numbers: 100101 - 115201
36 repeat_line_numbers: 920001 - 920006
37 pre_zero_line_numbers: n/a
38 post_zero_line_numbers: n/a
39
40survey_equipment:
41 aircraft: Eurocopter Astar 350 B3
42 magnetometer: Geometrics G822A, Kroum KMAG4 counter
43 magnetometer_installation: Front of transmitter frame
44 electromagnetic_system: SkyTEM 304M
45 electromagnetic_installation: Rigid transmitter frame 40m beneath helicopter, Receiver coils at rear of transmitter frame 2m vertical offset
46 spectrometer_system: n/a
47 spectrometer_installation: n/a
48 spectrometer_sample_rate: n/a
49 radar_altimeter_system: n/a
50 radar_altimeter_sample_rate: n/a
51 laser_altimeter_system: MDL ILM 300R (2)
52 laser_altimeter_sample_rate: 0.033 s
53 inclinometer_system: n/a
54 inclinometer_sample_rate: n/a
55 navigation_system: Real-time differential GPS Trimble Bullet III
56 navigation_sample_rate: 1.0 s
57 acquisition_system: skytem
58
59nominal_system:
60 type: system
61 mode: airborne
62 method: electromagnetic, time domain
63 instrument: SkyTEM 304M
64
65 dimensions:
66 gate_times:
67 standard_name: raw_gate_times
68 long_name: raw gate times
69 units: seconds
70 missing_value: not_defined
71 centers: [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]
72
73 lm_gate_times:
74 standard_name: lm_gate_times
75 long_name: calibrated low moment gate times
76 units: seconds
77 missing_value: not_defined
78 bounds: [[-1.420000e-06, -8.500000e-07],
79 [-4.200000e-07, 1.150000e-06],
80 [ 1.580000e-06, 3.150000e-06],
81 [ 3.580000e-06, 5.150000e-06],
82 [ 5.580000e-06, 7.150000e-06],
83 [ 7.580000e-06, 9.150000e-06],
84 [ 9.580000e-06, 1.115000e-05],
85 [ 1.158000e-05, 1.415000e-05],
86 [ 1.458000e-05, 1.815000e-05],
87 [ 1.858000e-05, 2.315000e-05],
88 [ 2.358000e-05, 2.915000e-05],
89 [ 2.958000e-05, 3.715000e-05],
90 [ 3.758000e-05, 4.715000e-05],
91 [ 4.758000e-05, 6.015000e-05],
92 [ 6.056500e-05, 7.616500e-05],
93 [ 7.656500e-05, 9.616500e-05],
94 [ 9.656500e-05, 1.211650e-04],
95 [ 1.215650e-04, 1.521650e-04],
96 [ 1.525650e-04, 1.921650e-04],
97 [ 1.925650e-04, 2.431650e-04],
98 [ 2.435650e-04, 3.061650e-04],
99 [ 3.065650e-04, 3.871650e-04],
100 [ 3.875650e-04, 4.881650e-04],
101 [ 4.885650e-04, 6.151650e-04],
102 [ 6.155650e-04, 7.761650e-04],
103 [ 7.765650e-04, 9.781650e-04],
104 [ 9.785650e-04, 1.233165e-03],
105 [ 1.233565e-03, 1.555165e-03]]
106 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]
107 hm_gate_times:
108 standard_name: hm_gate_times
109 long_name: calibrated high moment gate times
110 units: seconds
111 missing_value: not_defined
112 bounds: [[2.85800e-05, 2.91500e-05],
113 [2.95800e-05, 3.11500e-05],
114 [3.15800e-05, 3.31500e-05],
115 [3.35800e-05, 3.51500e-05],
116 [3.55800e-05, 3.71500e-05],
117 [3.75800e-05, 3.91500e-05],
118 [3.95800e-05, 4.11500e-05],
119 [4.15800e-05, 4.41500e-05],
120 [4.45800e-05, 4.81500e-05],
121 [4.85800e-05, 5.31500e-05],
122 [5.35800e-05, 5.91500e-05],
123 [5.95800e-05, 6.71500e-05],
124 [6.75800e-05, 7.71500e-05],
125 [7.75800e-05, 9.01500e-05],
126 [9.05800e-05, 1.06150e-04],
127 [1.06580e-04, 1.26150e-04],
128 [1.26580e-04, 1.51150e-04],
129 [1.51580e-04, 1.82150e-04],
130 [1.82580e-04, 2.22150e-04],
131 [2.22580e-04, 2.73150e-04],
132 [2.73580e-04, 3.36150e-04],
133 [3.36580e-04, 4.17150e-04],
134 [4.17580e-04, 5.18150e-04],
135 [5.18580e-04, 6.45150e-04],
136 [6.45580e-04, 8.06150e-04],
137 [8.06580e-04, 1.00815e-03],
138 [1.00858e-03, 1.26315e-03],
139 [1.26358e-03, 1.58515e-03],
140 [1.58558e-03, 1.99115e-03],
141 [1.99158e-03, 2.50215e-03],
142 [2.50258e-03, 3.14815e-03],
143 [3.14858e-03, 3.94015e-03]]
144 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]
145
146 n_loop_vertices:
147 standard_name: number_of_loop_vertices
148 long_name: number of loop vertices
149 units: not_defined
150 missing_value: not_defined
151 length: 8
152
153 xyz:
154 standard_name: xyz_coordinates
155 long_name: coordinates of the loop vertices
156 units: not_defined
157 missing_value: not_defined
158 length: 3
159
160 variables:
161
162 data_normalized: True
163 skytem_skb_gex_available: True
164 reference_frame: right-handed positive down
165 coil_orientations: X, Z
166
167 transmitter:
168 label: [LM, HM]
169 number_of_turns: [1, 4]
170 coordinates:
171 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]],
172 [[-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]]]
173 dimensions: ['n_transmitter', 'n_loop_vertices', 'xyz']
174 area: [342, 342]
175 waveform_type: [trapezoid, trapezoid]
176 waveform_time:
177 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],
178 [-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]]
179 long_name: waveform time
180 missing_value: not_defined
181 units: s
182 waveform_current:
183 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],
184 [-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]]
185 dimensions: ['n_transmitter', 'waveform_time']
186 current_scale_factor: 1.0
187 peak_current: [9.0, 110.0]
188 base_frequency: [210.0, 75.0]
189 on_time: [800E-06, 2500e-6]
190 off_time: [1581E-06, 4167e-6]
191 orientation: [z, z]
192
193 receiver:
194 label: [z, x]
195 orientation: [z, x]
196 coil_low_pass_filter: [628000.0, 250000.0]
197 instrument_low_pass_filter: [500000.0, 500000.0]
198 area:
199 values: [105.0, 115.0]
200 units: m^2
201
202 couplet:
203 transmitters: [lm, hm, lm, hm]
204 receivers: [z, z, x, x]
205 txrx_dx: [-13.25, -13.25, -14.65, -14.65]
206 txrx_dy: [0.0, 0.0, 0.0, 0.0]
207 txrx_dz: [-2.0, 0.0, -2.0, 0.0]
208 data_type: [dBdt, dBdt, dBdt, dBdt]
209 gate_times: [LM_gate_times, HM_gate_times, LM_gate_times, HM_gate_times]
210
211
212magnetic_system:
213 type: system
214 mode: airborne
215 method: magnetic
216 instrument: Geometrics G-822A cesium‑vapor magnetometer
217
218 prefixes: ['base_magnetometer']
219
220 dimensions:
221 base_mag_locations:
222 standard_name: base_mag_locations
223 long_name: Base Magnetometer Location Index Numbers
224 units: not_defined
225 missing_value: not_defined
226 centers: [1, 2]
227 discrete: True
228
229 variables:
230
231 transmitter:
232 label: passive
233 description: No artificial magnetic transmitter was used. The system measures the scalar Larmor precession frequency induced by the Earth's magnetic field.
234
235 receiver:
236 label: scalar_magnetometer
237 sensor_type: cesium-vapor split-beam
238 sensor_model: G-822A
239 sensor_manufacturer: Geometrics
240 description: Scalar cesium-vapor magnetometer mounted in the aircraft tail stinger. Measures total magnetic field through Larmor precession frequency.
241 orientation: Tail-stinger mounted; scalar measurement independent of orientation.
242 coordinates: not_reported
243 lag_correction: Lag was negligible and no lag correction was applied
244 heading_correction: Heading was negligible and no heading correction was applied
245
246 couplet:
247 transmitters: [passive]
248 receivers: [scalar_magnetometer]
249 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.
250
251 base_magnetometer:
252 label: base_magnetometer
253 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.
254
255 location_names:
256 values: ["Door County", "Manitowoc"]
257 dimensions: 'base_mag_locations'
258
259 values:
260 values: [54538, 54194.7]
261 units: nT
262 dimensions: 'base_mag_locations'
263
264 latitude:
265 values: [44.849335, 44.127998]
266 long_name: Latitude in WGS84
267 units: decial degrees
268 dimensions: 'base_mag_locations'
269
270 longitude:
271 values: [87.422440, 87.685524]
272 long_name: Longitude in WGS84
273 units: decial degrees
274 dimensions: 'base_mag_locations'
275
276 elevation:
277 values: [178.1, 164.4]
278 long_name: Elevation
279 datum: WGS84
280 units: m
281 dimensions: 'base_mag_locations'
282
283 diurnal_correction: Diurnal signal removed using 3 second Fraser low-pass filter and subtracting base-station magnetometer values.
284 tieline_levelling: No tie line-leveling were applied
285 microlevelling: No micro-levelling were applied
286 igrf_model_date: "2015, 15th generation"
287 igrf_model_location: variable according to GPS WGS84 longitude and latitude
288 igrf_model_height: variable according to magnetic sensor altitude derived from DGPS data
Create a Data Branch
data_container = survey.gs.add_container('data', **dict(content = "raw and processed data",
comment = "<extra info goes here>"))
Attach leaves to the data branch
Raw Data
# Import raw AEM data from CSV-format.
# Define input data file and associated metadata file
d_data1 = join(data_path, 'data//skytem_contractor_data.csv')
d_supp1 = join(data_path, 'data//skytem_contractor_data.yml')
raw_systems = {"skytem_system" : survey["nominal_system"],
"magnetic_system" : survey["magnetic_system"]}
# Add the raw AEM data as a tabular dataset,
# pass the EM system from the survey
rd = data_container.gs.add(key='raw_data', data_filename=d_data1,
metadata_file=d_supp1, system=raw_systems)
Processed Data
# Import processed AEM data from CSV-format.
# Define input data file and associated metadata file
d_data2 = join(data_path, 'data//skytem_processed_data.csv')
d_supp2 = join(data_path, 'data//skytem_processed_data.yml')
Example of how systems can be selected and modified to accurately match the processed data
proc_systems = {"skytem_system" : survey["nominal_system"].isel(lm_gate_times=np.s_[1:],
hm_gate_times=np.s_[10:]),
"magnetic_system" : survey["magnetic_system"]}
Add the processed AEM data as a tabular dataset, passing the updated systems
pd = data_container.gs.add(key='processed_data', data_filename=d_data2,
metadata_file=d_supp2, system=proc_systems)
1dataset_attrs:
2 content: processed data
3 comment: This dataset includes processed AEM data produced by USGS
4 type: data
5 structure: tabular
6 mode: airborne
7 method: electromagnetic, time domain
8 instrument: skytem
9
10coordinates:
11 x: E_N83WTM
12 y: N_N83WTM
13 z: ELEVATION
14 t: TIMESTAMP
15
16
17variables:
18 pINDEX:
19 standard_name: processing_index
20 long_name: Unique index number for processing
21 units: not_defined
22 missing_value: not_defined
23
24 sLINE_NO:
25 standard_name: master_line
26 long_name: Master line number
27 units: not_defined
28 missing_value: not_defined
29
30 E_N83WTM:
31 standard_name: easting_nad83
32 long_name: Easting, Wisconsin Transverse Mercator (WTM), North American Datum of 1983 (NAD83)
33 units: meter
34 missing_value: not_defined
35
36 N_N83WTM:
37 standard_name: northing_nad83
38 long_name: Northing, Wisconsin Transverse Mercator (WTM), North American Datum of 1983 (NAD83)
39 units: meter
40 missing_value: not_defined
41
42 TIMESTAMP:
43 standard_name: timestamp
44 long_name: Time, decimal days
45 units: day
46 missing_value: not_defined
47 datum: January 1, 1900
48
49 RECORD:
50 standard_name: record
51 long_name: Workbench record number
52 units: not_defined
53 missing_value: not_defined
54
55 ELEVATION:
56 standard_name: elevation
57 long_name: Digital elevation model
58 units: meter
59 missing_value: not_defined
60 positive: up
61 datum: North American Vertical Datum of 1988 (NAVD88)
62
63 ALT:
64 standard_name: altitude
65 long_name: DGPS instrument altitude
66 units: meter
67 missing_value: not_defined
68
69 NUMDATA:
70 standard_name: number_of_data
71 long_name: Number of active time gates
72 units: not_defined
73 missing_value: not_defined
74
75 LM_Data:
76 standard_name: em_data_lmz
77 long_name: EM data, low moment z-component
78 units: picoVolt per Ampere per meter^4
79 missing_value: -9999.99
80 system_couplet: lm_z
81 dimensions: [index, lm_gate_times]
82
83 LM_DataSTD:
84 standard_name: em_data_error_lmz
85 long_name: EM data error standard deviation, low moment z-component
86 units: picoVolt per Ampere per meter^4
87 missing_value: -9999.99
88 system_couplet: lm_z
89 dimensions: [index, lm_gate_times]
90
91 HM_Data:
92 standard_name: em_data_hmz
93 long_name: EM data, high moment z-component
94 units: picoVolt per Ampere per meter^4
95 missing_value: -9999.99
96 system_couplet: hm_z
97 dimensions: [index, hm_gate_times]
98
99 HM_DataSTD:
100 standard_name: em_data_error_hmz
101 long_name: EM data error standard deviation, high moment z-component
102 units: picoVolt per Ampere per meter^4
103 missing_value: -9999.99
104 system_couplet: hm_z
105 dimensions: [index, hm_gate_times]
106
107 TX_ALTITUDE:
108 standard_name: transmitter_altitude
109 long_name: Processed transmitter altitude
110 units: meter
111 missing_value: -9999.99
112
113 TX_ALTITUDE_STD:
114 standard_name: transmitter_altitude_error
115 long_name: Standard deviation for transmitter altitude
116 units: meter
117 missing_value: -9999.99
118
119 RX_ALTITUDE:
120 standard_name: receiver_altitude
121 long_name: Processed receiver altitude
122 units: meter
123 missing_value: -9999.99
124
125 RX_ALTITUDE_STD:
126 standard_name: receiver_altitude_error
127 long_name: Standard deviation for receiver altitude
128 units: meter
129 missing_value: -9999.99
130
131 txrx_dx:
132 standard_name: txrx_dx
133 long_name: Nominal inline transmitter-receiver offset
134 units: meter
135 missing_value: -9999.99
136
137 txrx_dy:
138 standard_name: txrx_dy
139 long_name: Nominal transverse transmitter-receiver offset
140 units: meter
141 missing_value: -9999.99
142
143 txrx_dz:
144 standard_name: txrx_dz
145 long_name: Calculated vertical transmitter-receiver offset
146 units: meter
147 missing_value: -9999.99
148
149 LINE_NO:
150 standard_name: line_number
151 long_name: Line number
152 units: not_defined
153 missing_value: not_defined
Create a Models Branch
# Create a new container for models
model_container = survey.gs.add_container('models', **dict(content = "Inverted models",
comment = "This is a test"))
Inverted Models
# Import inverted AEM models from CSV-format.
# Define input data file and associated metadata file
m_data3 = join(data_path, 'model//skytem_inverted_models.csv')
m_supp3 = join(data_path, 'model//skytem_inverted_models.yml')
# Add the inverted AEM models as a tabular dataset
mods = model_container.gs.add(key='inverted_models', data_filename=m_data3,
metadata_file=m_supp3)
1dataset_attrs:
2 content: inverted resistivity models
3 comment: This dataset includes inverted resistivity models derived from processed AEM data produced by USGS
4 type: model
5 structure: tabular
6 mode: airborne
7 method: electromagnetic, time domain
8 instrument: SkyTEM 304M
9 property: electrical resistivity
10
11inversion_parameters:
12 dataset_attrs:
13 type: parameters
14 method: electromagnetic, time domain
15 instrument: RESOSkyTEM 304MLVE
16 mode: airborne
17 property: electrical resistivity
18
19 variables:
20 model_file: WI_SkyTEM_2021_InvertedModels.csv
21 inversion_software: Aarhus Workbench
22 software_version: "v 6.0.1.0"
23 date: "03/2021 - 06/2021"
24 comment: "Processed data were inverted in Aarhus Workbench software (v 6.0.1.0) using laterally constrained inversion to recover 40-layer fixed depth blocky resistivity models by USGS 03/2021 - 06/2021; Inverted resistivity models were exported to netCDF 11/2021."
25 data_file: WI_SkyTEM_2021_ProcessedData.csv
26
27coordinates:
28 x: E_N83WTM
29 y: N_N83WTM
30 z: ELEVATION
31 t: TIMESTAMP
32
33dimensions:
34 layer_depth:
35 standard_name: layer_depth
36 long_name: Depth to model layer
37 units: meters
38 missing_value: not_defined
39 centers: [0.375, 1.16 , 2.02 ,
40 2.965, 4.005, 5.145,
41 6.39 , 7.755, 9.255,
42 10.9 , 12.7 , 14.675,
43 16.845, 19.22 , 21.825,
44 24.685, 27.815, 31.25 ,
45 35.02 , 39.15 , 43.68 ,
46 48.65 , 54.095, 60.065,
47 66.615, 73.795, 81.67 ,
48 90.31 , 99.78 , 110.16 ,
49 121.545, 134.03 , 147.72 ,
50 162.73 , 179.19 , 197.24 ,
51 217.035, 238.745, 262.55 , 343.75]
52 bounds: [[ 0.0 , 0.75],
53 [ 0.75, 1.57],
54 [ 1.57, 2.47],
55 [ 2.47, 3.46],
56 [ 3.46, 4.55],
57 [ 4.55, 5.74],
58 [ 5.74, 7.04],
59 [ 7.04, 8.47],
60 [ 8.47, 10.04],
61 [ 10.04, 11.76],
62 [ 11.76, 13.64],
63 [ 13.64, 15.71],
64 [ 15.71, 17.98],
65 [ 17.98, 20.46],
66 [ 20.46, 23.19],
67 [ 23.19, 26.18],
68 [ 26.18, 29.45],
69 [ 29.45, 33.05],
70 [ 33.05, 36.99],
71 [ 36.99, 41.31],
72 [ 41.31, 46.05],
73 [ 46.05, 51.25],
74 [ 51.25, 56.94],
75 [ 56.94, 63.19],
76 [ 63.19, 70.04],
77 [ 70.04, 77.55],
78 [ 77.55, 85.79],
79 [ 85.79, 94.83],
80 [ 94.83, 104.73],
81 [104.73, 115.59],
82 [115.59, 127.5 ],
83 [127.5 , 140.56],
84 [140.56, 154.88],
85 [154.88, 170.58],
86 [170.58, 187.8 ],
87 [187.8 , 206.68],
88 [206.68, 227.39],
89 [227.39, 250.1 ],
90 [250.1 , 275.0 ],
91 [275.0 , 412.5 ]]
92
93variables:
94 pINDEX:
95 standard_name: processing_index
96 long_name: Unique index number for processing
97 units: not_defined
98 missing_value: not_defined
99
100 sLINE_NO:
101 standard_name: master_line
102 long_name: Master line number
103 units: not_defined
104 missing_value: not_defined
105
106 E_N83WTM:
107 standard_name: easting_nad83
108 long_name: Easting, Wisconsin Transverse Mercator (WTM), North American Datum of 1983 (NAD83)
109 units: meter
110 missing_value: not_defined
111 axis: x
112
113 N_N83WTM:
114 standard_name: northing_nad83
115 long_name: Northing, Wisconsin Transverse Mercator (WTM), North American Datum of 1983 (NAD83)
116 units: meter
117 missing_value: not_defined
118 axis: y
119
120 TIMESTAMP:
121 standard_name: timestamp
122 long_name: Time, decimal days since January 1, 1900
123 units: day
124 missing_value: not_defined
125 axis: t
126 datum: January 1, 1900
127
128 RECORD:
129 standard_name: record
130 long_name: Workbench record number
131 units: not_defined
132 missing_value: not_defined
133
134 ELEVATION:
135 standard_name: elevation
136 long_name: Digital elevation model
137 units: meter
138 missing_value: not_defined
139 axis: z
140 positive: up
141 datum: North American Vertical Datum of 1988 (NAVD88)
142
143 ALT:
144 standard_name: altitude
145 long_name: DGPS instrument altitude
146 units: meter
147 missing_value: not_defined
148
149 INVALT:
150 standard_name: inverted_altitude
151 long_name: Inverted instrument altitude
152 units: meter
153 missing_value: not_defined
154
155 INVALTSTD:
156 standard_name: inverted_altitude_uncertainty
157 long_name: Standard deviation of inverted instrument altitude
158 units: meter
159 missing_value: not_defined
160
161 DELTAALT:
162 standard_name: inverted_altitude_difference
163 long_name: Measured minus inverted altitude
164 units: meter
165 missing_value: not_defined
166
167 NUMDATA:
168 standard_name: number_of_data
169 long_name: Number of active time gates
170 units: not_defined
171 missing_value: not_defined
172
173 RESDATA:
174 standard_name: data_residual
175 long_name: Error-weighted inversion data misfit (target = 1.0)
176 units: not_defined
177 missing_value: not_defined
178
179 RESTOTAL:
180 standard_name: total_residual
181 long_name: Total inversion residual (data and model regularization)
182 units: not_defined
183 missing_value: not_defined
184
185 RHO_I:
186 standard_name: layer_resistivity
187 long_name: Inverted layer resistivity
188 units: Ohm*meter
189 missing_value: not_defined
190 dimensions: [index, layer_depth]
191
192 RHO_I_STD:
193 standard_name: layer_resistivity_uncertainty
194 long_name: Uncertainty in inverted layer resistivity
195 units: not_defined
196 missing_value: not_defined
197 dimensions: [index, layer_depth]
198
199 DOI_CONSERVATIVE:
200 standard_name: depth_of_investigation_conservative
201 long_name: Conservative estimate of depth of investigation (DOI)
202 units: meter
203 missing_value: not_defined
204
205 DOI_STANDARD:
206 standard_name: depth_of_investigation_standard
207 long_name: Standard estimate of depth of investigation (DOI)
208 units: meter
209 missing_value: not_defined
210
211 DEP_TOP:
212 standard_name: depth_top
213 long_name: Top of model layers
214 units: meter
215 missing_value: not_defined
216 dimensions: [index, layer_depth]
217
218 DEP_BOT:
219 standard_name: depth_bottom
220 long_name: Bottom of model layers
221 units: meter
222 missing_value: not_defined
223 dimensions: [index, layer_depth]
224
225 LINE_NO:
226 standard_name: line_number
227 long_name: Line number
228 units: not_defined
229 missing_value: not_defined
Derivative Products
Bedrock Picks
Adding bedrock picks to the ‘data’ branch
# Import AEM-based estimated of depth to bedrock from CSV-format.
# Define input data file and associated metadata file
d_data4 = join(data_path, 'data//top_dolomite_blocky_lidar.csv')
d_supp4 = join(data_path, 'data//bedrock_picks.yml')
# Add the AEM-based estimated of depth to bedrock as a tabular dataset
bedrock = data_container.gs.add(key='depth_to_bedrock', data_filename=d_data4,
metadata_file=d_supp4)
1dataset_attrs:
2 content: bedrock elevation points
3 comment: This dataset includes AEM-derived point estimates of the elevation of the top of bedrock produced by USGS
4 type: data
5 structure: tabular
6 mode: airborne
7 method: electromagnetic
8 instrument: skytem
9
10coordinates:
11 x: E_N83WTM
12 y: N_N83WTM
13
14variables:
15 ID:
16 standard_name: identifier
17 long_name: Unique identifier
18 units: not_defined
19 missing_value: not_defined
20
21 E_N83WTM:
22 standard_name: easting
23 long_name: Easting, Wisconsin Transverse Mercator (WTM), North American Datum of 1983 (NAD83)
24 units: meter
25 missing_value: not_defined
26 axis: x
27
28 N_N83WTM:
29 standard_name: northing
30 long_name: Northing, Wisconsin Transverse Mercator (WTM), North American Datum of 1983 (NAD83)
31 units: meter
32 missing_value: not_defined
33 axis: y
34
35 BR_ELEVATION:
36 standard_name: top_bedrock_elevation
37 long_name: Elevation, top of dolomite bedrock, North American Vertical Datum of 1988 (NAVD88)
38 units: meter
39 missing_value: not_defined
40
41 ZSTD:
42 standard_name: elevation_uncertainty
43 long_name: Standard devation of top bedrock elevation
44 units: meter
45 missing_value: not_defined
46
47 OriginType:
48 standard_name: point_origin
49 long_name: Point origin type; 3 = automated pick from resistivity value; 0 = manual pick
50 units: not_defined
51 missing_value: not_defined
52
53 EditDate:
54 standard_name: edit_date
55 long_name: Date of interpretation point
56 units: not_defined
57 format: M/D/YYYY H:MM
58 missing_value: not_defined
59 dtype: str
Raster Maps
Create a 3rd container for the derived raaster maps
derived_maps = survey.gs.add_container('derived_maps', **dict(content = "raster products derived from airborne data and models"))
# Import interpolated bedrock and magnetic maps from TIF-format.
# Define input metadata file (which contains the TIF filenames linked to variable names)
m_supp5 = join(data_path, 'data//magnetics_bedrock_picks.yml')
# Add the interpolated maps as a raster dataset
maps = derived_maps.gs.add(key='maps', metadata_file=m_supp5)
1dataset_attrs :
2 content : gridded magnetic and bedrock maps
3 comment: This dataset includes AEM-derived estimates of the elevation of the top of bedrock produced by USGS
4 type: data
5 structure: raster
6 mode: airborne
7 method: electromagnetic, time domain
8 instrument: skytem
9 property: [total magnetic intensity, depth to bedrock]
10
11coordinates:
12 x: E_Nad83
13 y: N_Nad83
14
15dimensions:
16 x: E_Nad83
17 y: N_Nad83
18
19variables:
20 magnetic_tmi:
21 standard_name: total_magnetic_intensity
22 long_name: Total magnetic intensity, diurnally corrected and filtered
23 units: nanoTesla
24 missing_value: -9999.99
25 files : [mag_tmi.tif]
26 dimensions: [x, y]
27
28 magnetic_rmf:
29 standard_name: residual_magnetic_field
30 long_name: Residual magnetic field, IGRF corrected from 2015 model
31 units: nanoTesla
32 missing_value: -9999.99
33 files : [mag_rmf.tif]
34 dimensions: [x, y]
35
36 bedrock_top_elevation:
37 standard_name: bedrock_top_elevation
38 long_name: Elevation, top of dolomite bedrock, North American Vertical Datum of 1988 (NAVD88)
39 units: foot
40 missing_value: -9999.99
41 files : [top_bedrock.tif]
42 dimensions: [x, y]
43
44 bedrock_depth:
45 standard_name: bedrock_depth
46 long_name: Depth to bedrock
47 units: foot
48 missing_value: -9999.9
49 files : [bedrock_depth.tif]
50 dimensions: [x, y]
51
52 E_Nad83:
53 standard_name: easting_nad83
54 long_name: Easting, Wisconsin Transverse Mercator (WTM), North American Datum of 1983 (NAD83)
55 units: meter
56 missing_value: not_defined
57 axis : x
58
59 N_Nad83:
60 standard_name: northing_nad83
61 long_name: Northing, Wisconsin Transverse Mercator (WTM), North American Datum of 1983 (NAD83)
62 units: meter
63 missing_value: not_defined
64 axis : y
Save to NetCDF file
d_out = join(data_path, 'skytem.nc')
survey.gs.to_netcdf(d_out)
Export just one branch to file
The gspy goal is to have the complete survey in a single file. However, we can also save containers or datasets separately.
data_container.gs.to_netcdf(join(data_path, 'test_datacontainer.nc'))
Opening a GS NetCDF
new_survey = gspy.open_datatree(d_out)['survey']
View the Data Tree
print(new_survey.gs.tree)
/survey
/survey/data
/survey/models
/survey/derived_maps
/survey/data/raw_data
/survey/data/processed_data
/survey/data/depth_to_bedrock
/survey/models/inverted_models
/survey/derived_maps/maps
/survey/data/raw_data/skytem_system
/survey/data/raw_data/magnetic_system
/survey/data/processed_data/skytem_system
/survey/data/processed_data/magnetic_system
/survey/models/inverted_models/inversion_parameters
print(new_survey)
<xarray.DataTree 'survey'>
Group: /survey
│ Dimensions: ()
│ Coordinates:
│ spatial_ref float64 8B ...
│ Data variables:
│ survey_information float64 8B ...
│ flightline_information float64 8B ...
│ survey_equipment float64 8B ...
│ Attributes:
│ type: survey
│ title: SkyTEM Airborne Electromagnetic (AEM) Survey, Northeast Wi...
│ institution: USGS Geology, Geophysics, and Geochemistry Science Center
│ source: SkyTEM raw data, USGS processed data and inverted resistiv...
│ history: (1) Data acquisition 01/2021 - 02/2021 by SkyTEM Canada In...
│ references: Minsley, Burke J., B.R. Bloss, D.J. Hart, W. Fitzpatrick, ...
│ comment: This dataset includes minimally processed (raw) AEM and ra...
│ summary: Airborne electromagnetic (AEM) and magnetic survey data we...
│ content: Wisconsin SkyTEM survey information /survey; /survey/nomi...
│ gspy_version: 2.2.4
│ conventions: GS-2.0, CF-1.13
├── Group: /survey/data
│ │ Dimensions: ()
│ │ Data variables:
│ │ spatial_ref float64 8B ...
│ │ Attributes:
│ │ content: raw and processed data
│ │ comment: <extra info goes here>
│ │ type: container
│ ├── Group: /survey/data/raw_data
│ │ │ Dimensions: (index: 2000, hm_gate_times: 32, lm_gate_times: 28)
│ │ │ Coordinates:
│ │ │ * index (index) float64 16kB 0.0 1.0 2.0 ... 1.998e+03 1.999e+03
│ │ │ * hm_gate_times (hm_gate_times) float64 256B 2.886e-05 ... 0.003544
│ │ │ * lm_gate_times (lm_gate_times) float64 224B -1.135e-06 ... 0.001394
│ │ │ spatial_ref float64 8B ...
│ │ │ x (index) float64 16kB ...
│ │ │ y (index) float64 16kB ...
│ │ │ z (index) float64 16kB ...
│ │ │ t (index) float64 16kB ...
│ │ │ Data variables: (12/30)
│ │ │ _60hz_intensity (index) float64 16kB ...
│ │ │ alt (index) float64 16kB ...
│ │ │ anglex (index) float64 16kB ...
│ │ │ angley (index) float64 16kB ...
│ │ │ base_mag (index) float64 16kB ...
│ │ │ curr_hm (index) float64 16kB ...
│ │ │ ... ...
│ │ │ mag_filt (index) float64 16kB ...
│ │ │ mag_raw (index) float64 16kB ...
│ │ │ n_wgs84 (index) float64 16kB ...
│ │ │ rmf (index) float64 16kB ...
│ │ │ time (index) object 16kB ...
│ │ │ tmi (index) float64 16kB ...
│ │ │ Attributes:
│ │ │ content: raw data
│ │ │ comment: This dataset includes minimally processed (raw) AEM and raw/...
│ │ │ type: data
│ │ │ structure: tabular
│ │ │ mode: airborne
│ │ │ method: electromagnetic, time domain
│ │ │ instrument: skytem
│ │ ├── Group: /survey/data/raw_data/skytem_system
│ │ │ Dimensions: (gate_times: 22, nv: 2,
│ │ │ lm_gate_times: 28,
│ │ │ hm_gate_times: 32,
│ │ │ n_loop_vertices: 8, xyz: 3,
│ │ │ n_transmitter: 2,
│ │ │ transmitter_lm_waveform_time: 21,
│ │ │ transmitter_hm_waveform_time: 36,
│ │ │ n_receiver: 2, n_couplet: 4,
│ │ │ dim_0: 1)
│ │ │ Coordinates:
│ │ │ * gate_times (gate_times) float64 176B 5....
│ │ │ * nv (nv) float64 16B 0.0 1.0
│ │ │ * n_loop_vertices (n_loop_vertices) float64 64B ...
│ │ │ * xyz (xyz) float64 24B 0.0 1.0 2.0
│ │ │ * n_transmitter (n_transmitter) float64 16B ...
│ │ │ * transmitter_lm_waveform_time (transmitter_lm_waveform_time) float64 168B ...
│ │ │ * transmitter_hm_waveform_time (transmitter_hm_waveform_time) float64 288B ...
│ │ │ * n_receiver (n_receiver) float64 16B 0.0...
│ │ │ * n_couplet (n_couplet) float64 32B 0.0 ...
│ │ │ Dimensions without coordinates: dim_0
│ │ │ Data variables: (12/35)
│ │ │ gate_times_bnds (gate_times, nv) float64 352B ...
│ │ │ lm_gate_times_bnds (lm_gate_times, nv) float64 448B ...
│ │ │ hm_gate_times_bnds (hm_gate_times, nv) float64 512B ...
│ │ │ n_loop_vertices_bnds (n_loop_vertices, nv) float64 128B ...
│ │ │ xyz_bnds (xyz, nv) float64 48B ...
│ │ │ transmitter_label (n_transmitter) <U2 16B ...
│ │ │ ... ...
│ │ │ couplet_data_type (n_couplet) <U4 64B ...
│ │ │ couplet_gate_times (n_couplet) <U13 208B ...
│ │ │ data_normalized (dim_0) bool 1B ...
│ │ │ skytem_skb_gex_available (dim_0) bool 1B ...
│ │ │ reference_frame <U26 104B ...
│ │ │ coil_orientations <U4 16B ...
│ │ │ Attributes:
│ │ │ type: system
│ │ │ mode: airborne
│ │ │ method: electromagnetic, time domain
│ │ │ instrument: SkyTEM 304M
│ │ │ name: nominal_system
│ │ └── Group: /survey/data/raw_data/magnetic_system
│ │ Dimensions: (n_transmitter: 1, n_receiver: 1,
│ │ n_couplet: 1, n_base_magnetometer: 1,
│ │ base_mag_locations: 2)
│ │ Coordinates:
│ │ * n_transmitter (n_transmitter) float64 8B 0.0
│ │ * n_receiver (n_receiver) float64 8B 0.0
│ │ * n_couplet (n_couplet) float64 8B 0.0
│ │ * n_base_magnetometer (n_base_magnetometer) float64 8B 0.0
│ │ * base_mag_locations (base_mag_locations) float64 16B 1.0 2.0
│ │ Data variables: (12/28)
│ │ transmitter_label (n_transmitter) <U7 28B ...
│ │ transmitter_description (n_transmitter) <U142 568B ...
│ │ receiver_label (n_receiver) <U19 76B ...
│ │ receiver_sensor_type (n_receiver) <U23 92B ...
│ │ receiver_sensor_model (n_receiver) <U6 24B ...
│ │ receiver_sensor_manufacturer (n_receiver) <U10 40B ...
│ │ ... ...
│ │ diurnal_correction <U110 440B ...
│ │ tieline_levelling <U33 132B ...
│ │ microlevelling <U31 124B ...
│ │ igrf_model_date <U21 84B ...
│ │ igrf_model_location <U54 216B ...
│ │ igrf_model_height <U69 276B ...
│ │ Attributes:
│ │ type: system
│ │ mode: airborne
│ │ method: magnetic
│ │ instrument: Geometrics G-822A cesium‑vapor magnetometer
│ │ name: magnetic_system
│ ├── Group: /survey/data/processed_data
│ │ │ Dimensions: (index: 2000, lm_gate_times: 27, hm_gate_times: 22)
│ │ │ Coordinates:
│ │ │ * index (index) float64 16kB 0.0 1.0 2.0 ... 1.998e+03 1.999e+03
│ │ │ * lm_gate_times (lm_gate_times) float64 216B 3.65e-07 ... 0.001394
│ │ │ * hm_gate_times (hm_gate_times) float64 176B 5.636e-05 ... 0.003544
│ │ │ spatial_ref float64 8B ...
│ │ │ x (index) float64 16kB ...
│ │ │ y (index) float64 16kB ...
│ │ │ z (index) float64 16kB ...
│ │ │ t (index) float64 16kB ...
│ │ │ Data variables: (12/17)
│ │ │ pindex (index) float64 16kB ...
│ │ │ sline_no (index) float64 16kB ...
│ │ │ record (index) float64 16kB ...
│ │ │ alt (index) float64 16kB ...
│ │ │ numdata (index) float64 16kB ...
│ │ │ lm_data (index, lm_gate_times) float64 432kB ...
│ │ │ ... ...
│ │ │ rx_altitude (index) float64 16kB ...
│ │ │ rx_altitude_std (index) float64 16kB ...
│ │ │ txrx_dx (index) float64 16kB ...
│ │ │ txrx_dy (index) float64 16kB ...
│ │ │ txrx_dz (index) float64 16kB ...
│ │ │ line_no (index) float64 16kB ...
│ │ │ Attributes:
│ │ │ content: processed data
│ │ │ comment: This dataset includes processed AEM data produced by USGS
│ │ │ type: data
│ │ │ structure: tabular
│ │ │ mode: airborne
│ │ │ method: electromagnetic, time domain
│ │ │ instrument: skytem
│ │ ├── Group: /survey/data/processed_data/skytem_system
│ │ │ Dimensions: (gate_times: 22, nv: 2,
│ │ │ lm_gate_times: 27,
│ │ │ hm_gate_times: 22,
│ │ │ n_loop_vertices: 8, xyz: 3,
│ │ │ n_transmitter: 2,
│ │ │ transmitter_lm_waveform_time: 21,
│ │ │ transmitter_hm_waveform_time: 36,
│ │ │ n_receiver: 2, n_couplet: 4,
│ │ │ dim_0: 1)
│ │ │ Coordinates:
│ │ │ * gate_times (gate_times) float64 176B 5....
│ │ │ * nv (nv) float64 16B 0.0 1.0
│ │ │ * n_loop_vertices (n_loop_vertices) float64 64B ...
│ │ │ * xyz (xyz) float64 24B 0.0 1.0 2.0
│ │ │ * n_transmitter (n_transmitter) float64 16B ...
│ │ │ * transmitter_lm_waveform_time (transmitter_lm_waveform_time) float64 168B ...
│ │ │ * transmitter_hm_waveform_time (transmitter_hm_waveform_time) float64 288B ...
│ │ │ * n_receiver (n_receiver) float64 16B 0.0...
│ │ │ * n_couplet (n_couplet) float64 32B 0.0 ...
│ │ │ Dimensions without coordinates: dim_0
│ │ │ Data variables: (12/35)
│ │ │ gate_times_bnds (gate_times, nv) float64 352B ...
│ │ │ lm_gate_times_bnds (lm_gate_times, nv) float64 432B ...
│ │ │ hm_gate_times_bnds (hm_gate_times, nv) float64 352B ...
│ │ │ n_loop_vertices_bnds (n_loop_vertices, nv) float64 128B ...
│ │ │ xyz_bnds (xyz, nv) float64 48B ...
│ │ │ transmitter_label (n_transmitter) <U2 16B ...
│ │ │ ... ...
│ │ │ couplet_data_type (n_couplet) <U4 64B ...
│ │ │ couplet_gate_times (n_couplet) <U13 208B ...
│ │ │ data_normalized (dim_0) bool 1B ...
│ │ │ skytem_skb_gex_available (dim_0) bool 1B ...
│ │ │ reference_frame <U26 104B ...
│ │ │ coil_orientations <U4 16B ...
│ │ │ Attributes:
│ │ │ type: system
│ │ │ mode: airborne
│ │ │ method: electromagnetic, time domain
│ │ │ instrument: SkyTEM 304M
│ │ │ name: nominal_system
│ │ └── Group: /survey/data/processed_data/magnetic_system
│ │ Dimensions: (n_transmitter: 1, n_receiver: 1,
│ │ n_couplet: 1, n_base_magnetometer: 1,
│ │ base_mag_locations: 2)
│ │ Coordinates:
│ │ * n_transmitter (n_transmitter) float64 8B 0.0
│ │ * n_receiver (n_receiver) float64 8B 0.0
│ │ * n_couplet (n_couplet) float64 8B 0.0
│ │ * n_base_magnetometer (n_base_magnetometer) float64 8B 0.0
│ │ * base_mag_locations (base_mag_locations) float64 16B 1.0 2.0
│ │ Data variables: (12/28)
│ │ transmitter_label (n_transmitter) <U7 28B ...
│ │ transmitter_description (n_transmitter) <U142 568B ...
│ │ receiver_label (n_receiver) <U19 76B ...
│ │ receiver_sensor_type (n_receiver) <U23 92B ...
│ │ receiver_sensor_model (n_receiver) <U6 24B ...
│ │ receiver_sensor_manufacturer (n_receiver) <U10 40B ...
│ │ ... ...
│ │ diurnal_correction <U110 440B ...
│ │ tieline_levelling <U33 132B ...
│ │ microlevelling <U31 124B ...
│ │ igrf_model_date <U21 84B ...
│ │ igrf_model_location <U54 216B ...
│ │ igrf_model_height <U69 276B ...
│ │ Attributes:
│ │ type: system
│ │ mode: airborne
│ │ method: magnetic
│ │ instrument: Geometrics G-822A cesium‑vapor magnetometer
│ │ name: magnetic_system
│ └── Group: /survey/data/depth_to_bedrock
│ Dimensions: (index: 82864)
│ Coordinates:
│ * index (index) float64 663kB 0.0 1.0 2.0 ... 8.286e+04 8.286e+04
│ spatial_ref float64 8B ...
│ x (index) float64 663kB ...
│ y (index) float64 663kB ...
│ Data variables:
│ id (index) float64 663kB ...
│ br_elevation (index) float64 663kB ...
│ zstd (index) float64 663kB ...
│ origintype (index) float64 663kB ...
│ editdate (index) object 663kB ...
│ Attributes:
│ content: bedrock elevation points
│ comment: This dataset includes AEM-derived point estimates of the ele...
│ type: data
│ structure: tabular
│ mode: airborne
│ method: electromagnetic
│ instrument: skytem
├── Group: /survey/models
│ │ Dimensions: ()
│ │ Data variables:
│ │ spatial_ref float64 8B ...
│ │ Attributes:
│ │ content: Inverted models
│ │ comment: This is a test
│ │ type: container
│ └── Group: /survey/models/inverted_models
│ │ Dimensions: (layer_depth: 40, nv: 2, index: 2000)
│ │ Coordinates:
│ │ * layer_depth (layer_depth) float64 320B 0.375 1.16 2.02 ... 262.6 343.8
│ │ * nv (nv) float64 16B 0.0 1.0
│ │ * index (index) float64 16kB 0.0 1.0 2.0 ... 1.998e+03 1.999e+03
│ │ spatial_ref float64 8B ...
│ │ x (index) float64 16kB ...
│ │ y (index) float64 16kB ...
│ │ z (index) float64 16kB ...
│ │ t (index) float64 16kB ...
│ │ Data variables: (12/18)
│ │ layer_depth_bnds (layer_depth, nv) float64 640B ...
│ │ pindex (index) float64 16kB ...
│ │ sline_no (index) float64 16kB ...
│ │ record (index) float64 16kB ...
│ │ alt (index) float64 16kB ...
│ │ invalt (index) float64 16kB ...
│ │ ... ...
│ │ rho_i_std (index, layer_depth) float64 640kB ...
│ │ dep_top (index, layer_depth) float64 640kB ...
│ │ dep_bot (index, layer_depth) float64 640kB ...
│ │ doi_conservative (index) float64 16kB ...
│ │ doi_standard (index) float64 16kB ...
│ │ line_no (index) float64 16kB ...
│ │ Attributes:
│ │ content: inverted resistivity models
│ │ comment: This dataset includes inverted resistivity models derived fr...
│ │ type: model
│ │ structure: tabular
│ │ mode: airborne
│ │ method: electromagnetic, time domain
│ │ instrument: SkyTEM 304M
│ │ property: electrical resistivity
│ └── Group: /survey/models/inverted_models/inversion_parameters
│ Dimensions: ()
│ Data variables:
│ model_file <U33 132B ...
│ inversion_software <U16 64B ...
│ software_version <U9 36B ...
│ date <U17 68B ...
│ comment <U253 1kB ...
│ data_file <U32 128B ...
│ Attributes:
│ type: parameters
│ method: electromagnetic, time domain
│ instrument: RESOSkyTEM 304MLVE
│ mode: airborne
│ property: electrical resistivity
│ name: inversion_parameters
└── Group: /survey/derived_maps
│ Dimensions: ()
│ Data variables:
│ spatial_ref float64 8B ...
│ Attributes:
│ content: raster products derived from airborne data and models
│ type: container
└── Group: /survey/derived_maps/maps
Dimensions: (x: 799, nv: 2, y: 1155)
Coordinates:
* x (x) float64 6kB 6.551e+05 6.552e+05 ... 7.349e+05
* nv (nv) float64 16B 0.0 1.0
* y (y) float64 9kB 4.953e+05 4.952e+05 ... 3.799e+05
spatial_ref float64 8B ...
Data variables:
x_bnds (x, nv) float64 13kB ...
y_bnds (y, nv) float64 18kB ...
magnetic_tmi (y, x) float64 7MB ...
magnetic_rmf (y, x) float64 7MB ...
bedrock_top_elevation (y, x) float32 4MB ...
bedrock_depth (y, x) float32 4MB ...
Attributes:
content: gridded magnetic and bedrock maps
comment: This dataset includes AEM-derived estimates of the elevation...
type: data
structure: raster
mode: airborne
method: electromagnetic, time domain
instrument: skytem
property: ['total magnetic intensity', 'depth to bedrock']
Plotting Examples
plt.figure()
new_survey['data']['raw_data']['height'].plot()
plt.tight_layout()

pcd = new_survey['data']['processed_data']
plt.figure()
pcd['tx_altitude'].plot()
plt.tight_layout()

m = new_survey['derived_maps']['maps']
plt.figure()
m['magnetic_tmi'].plot(cmap='jet')
plt.tight_layout()
plt.show()

Total running time of the script: (0 minutes 1.498 seconds)