Note
Go to the end to download the full example code.
Loupe to NetCDF
import matplotlib.pyplot as plt
from os.path import join
import numpy as np
import gspy
Convert the Loupe csv data to NetCDF
Initialize the Survey
# Path to example files
data_path = '../data_files/loupe'
# Survey metadata file
metadata = join(data_path, "data//LoupeEM_survey_md.yml")
# Establish the Survey
survey = gspy.Survey.from_dict(metadata)
data_container = survey.gs.add_container('data')
data = join(data_path, 'data//Kankakee.dat')
metadata = join(data_path, 'data//Loupe_data_metadata.yml')
data_container.gs.add(key='raw_data', data_filename=data, metadata_file=metadata, file_type='loupe')
<xarray.DatasetView> Size: 2MB
Dimensions: (index: 2474, gate_times: 23)
Coordinates:
spatial_ref float64 8B 0.0
* index (index) int32 10kB 0 1 2 3 4 5 ... 2469 2470 2471 2472 2473
x (index) float64 20kB 5.248e+05 5.248e+05 ... 5.246e+05
y (index) float64 20kB 4.583e+06 4.583e+06 ... 4.583e+06
z (index) float64 20kB 211.5 211.5 211.5 ... 211.0 211.1 211.1
* gate_times (gate_times) float64 184B 1.297e-05 1.495e-05 ... 0.002183
Data variables: (12/45)
fid (index) object 20kB '1' '2' '3' '4' ... '2961' '2962' '2963'
acq (index) float64 20kB 1.0 1.0 1.0 1.0 1.0 ... 6.0 6.0 6.0 6.0
acq_rdg (index) float64 20kB 0.0 1.0 2.0 3.0 ... 424.0 425.0 426.0
acq_time (index) object 20kB '20230808T175252.504075397Z' ... '20230...
time (index) object 20kB '20230808T175253.000000000Z' ... '20230...
ts (index) float64 20kB 1.692e+09 1.692e+09 ... 1.692e+09
... ...
y_powerphase (index) float64 20kB 1.006 1.07 1.008 ... -2.718 -2.558 -2.693
z_powerphase (index) float64 20kB 1.663 1.679 1.748 ... 1.081 0.9304 0.8736
X_CH (index, gate_times) float64 455kB 491.5 357.4 ... 0.001494
Y_CH (index, gate_times) float64 455kB -6.219 6.26 ... -0.0268
Z_CH (index, gate_times) float64 455kB 499.8 434.7 ... 0.01253
line (index) int64 20kB 1 1 1 1 1 1 1 1 1 1 ... 6 6 6 6 6 6 6 6 6 6
Attributes:
content: raw data
comment: This dataset includes minimally processed (raw) AEM data
type: data
method: electromagnetic
instrument: loupexarray.DataTree
<xarray.DatasetView> Size: 12kB Dimensions: (index: 2474, gate_times: 23, nv: 2, n_loop_vertices: 8, xyz: 3, n_transmitter: 1, waveform_time: 4, n_receiver: 3, n_component: 3) Coordinates: * index (index) int32 10kB 0 1 2 ... 2472 2473 * gate_times (gate_times) float64 184B 1.297e-05 ... * nv (nv) int64 16B 0 1 * n_loop_vertices (n_loop_vertices) int64 64B 0 1 ... 6 7 * xyz (xyz) int64 24B 0 1 2 * n_transmitter (n_transmitter) int64 8B 0 * waveform_time (waveform_time) <U32 512B '-0.002777... * n_receiver (n_receiver) int64 24B 0 1 2 * n_component (n_component) int64 24B 0 1 2 Data variables: (12/35) gate_times_bnds (gate_times, nv) float64 368B 1.098e... n_loop_vertices_bnds (n_loop_vertices, nv) float64 128B -... xyz_bnds (xyz, nv) float64 48B -0.5 0.5 ... 2.5 transmitter_label (n_transmitter) <U1 4B 'z' transmitter_number_of_turns (n_transmitter) int64 8B 13 transmitter_coordinates (n_transmitter, n_loop_vertices, xyz) float64 192B ... ... ... component_txrx_dx (n_component) float64 24B -10.0 ... ... component_txrx_dy (n_component) float64 24B 0.0 0.0 0.0 component_txrx_dz (n_component) float64 24B -0.75 ... ... component_data_type (n_component) <U4 48B 'dBdt' ... 'dBdt' component_gate_times (n_component) <U10 120B 'gate_times'... sample_rate object 8B None Attributes: type: system mode: ground method: electromagnetic submethod: time domain instrument: loupe name: loupe_system data_normalized: True reference_frame: right-handed positive down sample_rate: 0.1 digitization_frequency: 504000.0 stacks: 360 powerline_frequency: 60.0loupe_system- index: 2474
- gate_times: 23
- nv: 2
- n_loop_vertices: 8
- xyz: 3
- n_transmitter: 1
- waveform_time: 4
- n_receiver: 3
- n_component: 3
- nv(nv)int640 1
- standard_name :
- nv
- long_name :
- Number of vertices for bounding variables
- units :
- not_defined
- null_value :
- not_defined
- valid_range :
- [0. 1.]
- grid_mapping :
- spatial_ref
array([0, 1])
- n_loop_vertices(n_loop_vertices)int640 1 2 3 4 5 6 7
- standard_name :
- n_loop_vertices
- long_name :
- number of loop vertices
- units :
- not_defined
- null_value :
- not_defined
- valid_range :
- [0. 7.]
- grid_mapping :
- spatial_ref
- bounds :
- n_loop_vertices_bnds
array([0, 1, 2, 3, 4, 5, 6, 7])
- xyz(xyz)int640 1 2
- standard_name :
- xyz
- long_name :
- coordinates of the loop vertices
- units :
- not_defined
- null_value :
- not_defined
- valid_range :
- [0. 2.]
- grid_mapping :
- spatial_ref
- bounds :
- xyz_bnds
array([0, 1, 2])
- n_transmitter(n_transmitter)int640
- standard_name :
- n_transmitter
- long_name :
- Number of transmitters
- units :
- not_defined
- null_value :
- not_defined
- valid_range :
- [0. 0.]
- grid_mapping :
- spatial_ref
array([0])
- waveform_time(waveform_time)<U32'-0.00277778' ... '9e-06'
- label :
- ['z']
- prefix :
- transmitter
- long_name :
- waveform time
- null_value :
- not_defined
- units :
- s
- standard_name :
- waveform_time
- valid_range :
- [-2.77778e-03 9.00000e-06]
- grid_mapping :
- spatial_ref
array(['-0.00277778', '-0.00276878', '0.0', '9e-06'], dtype='<U32')
- n_receiver(n_receiver)int640 1 2
- standard_name :
- n_receiver
- long_name :
- Number of receivers
- units :
- not_defined
- null_value :
- not_defined
- valid_range :
- [0. 2.]
- grid_mapping :
- spatial_ref
array([0, 1, 2])
- n_component(n_component)int640 1 2
- standard_name :
- n_component
- long_name :
- Number of components
- units :
- not_defined
- null_value :
- not_defined
- valid_range :
- [0. 2.]
- grid_mapping :
- spatial_ref
array([0, 1, 2])
- gate_times_bnds(gate_times, nv)float641.098e-05 1.495e-05 ... 0.002557
- standard_name :
- gate_times_bounds
- long_name :
- receiver gate times cell boundaries
- units :
- seconds
- null_value :
- not_defined
- valid_range :
- [1.09800e-05 2.55662e-03]
- grid_mapping :
- spatial_ref
array([[1.09800e-05, 1.49500e-05], [1.29700e-05, 1.69400e-05], [1.49500e-05, 1.89200e-05], [1.69400e-05, 2.09000e-05], [1.89200e-05, 2.28900e-05], [2.09000e-05, 2.88400e-05], [2.68600e-05, 3.47900e-05], [3.28100e-05, 4.47100e-05], [4.07500e-05, 5.66200e-05], [5.26500e-05, 7.24900e-05], [6.65400e-05, 9.03500e-05], [8.63800e-05, 1.18130e-04], [1.12170e-04, 1.55830e-04], [1.45900e-04, 2.01460e-04], [1.91540e-04, 2.66940e-04], [2.53050e-04, 3.52250e-04], [3.32410e-04, 4.67330e-04], [4.39560e-04, 6.22100e-04], [5.82410e-04, 8.22490e-04], [7.72890e-04, 1.09233e-03], [1.02487e-03, 1.44948e-03], [1.36019e-03, 1.92567e-03], [1.80860e-03, 2.55662e-03]]) - n_loop_vertices_bnds(n_loop_vertices, nv)float64-0.5 0.5 0.5 1.5 ... 6.5 6.5 7.5
- standard_name :
- n_loop_vertices_bounds
- long_name :
- number of loop vertices cell boundaries
- units :
- not_defined
- null_value :
- not_defined
- valid_range :
- [-0.5 7.5]
- grid_mapping :
- spatial_ref
array([[-0.5, 0.5], [ 0.5, 1.5], [ 1.5, 2.5], [ 2.5, 3.5], [ 3.5, 4.5], [ 4.5, 5.5], [ 5.5, 6.5], [ 6.5, 7.5]]) - xyz_bnds(xyz, nv)float64-0.5 0.5 0.5 1.5 1.5 2.5
- standard_name :
- xyz_bounds
- long_name :
- coordinates of the loop vertices cell boundaries
- units :
- not_defined
- null_value :
- not_defined
- valid_range :
- [-0.5 2.5]
- grid_mapping :
- spatial_ref
array([[-0.5, 0.5], [ 0.5, 1.5], [ 1.5, 2.5]]) - transmitter_label(n_transmitter)<U1'z'
- grid_mapping :
- spatial_ref
array(['z'], dtype='<U1')
- transmitter_number_of_turns(n_transmitter)int6413
- valid_range :
- [13. 13.]
- grid_mapping :
- spatial_ref
array([13])
- transmitter_coordinates(n_transmitter, n_loop_vertices, xyz)float640.33 0.14 0.0 ... 0.33 -0.14 0.0
- valid_range :
- [-0.33 0.33]
- grid_mapping :
- spatial_ref
array([[[ 0.33, 0.14, 0. ], [ 0.14, 0.33, 0. ], [-0.14, 0.33, 0. ], [-0.33, 0.14, 0. ], [-0.33, -0.14, 0. ], [-0.14, -0.33, 0. ], [ 0.14, -0.33, 0. ], [ 0.33, -0.14, 0. ]]]) - transmitter_area()objectNone
- units :
- m^2
- grid_mapping :
- spatial_ref
array(None, dtype=object)
- transmitter_waveform_type(n_transmitter)<U9'trapezoid'
- grid_mapping :
- spatial_ref
array(['trapezoid'], dtype='<U9')
- transmitter_waveform_current(waveform_time)float640.0 1.0 1.0 0.0
- valid_range :
- [0. 1.]
- grid_mapping :
- spatial_ref
array([0., 1., 1., 0.])
- transmitter_current_scale_factor(n_transmitter)float641.0
- valid_range :
- [1. 1.]
- grid_mapping :
- spatial_ref
array([1.])
- transmitter_peak_current(n_transmitter)float6420.0
- valid_range :
- [20. 20.]
- grid_mapping :
- spatial_ref
array([20.])
- transmitter_moment(n_transmitter)float6494.42
- valid_range :
- [94.42 94.42]
- grid_mapping :
- spatial_ref
array([94.42])
- transmitter_base_frequency(n_transmitter)float6490.0
- valid_range :
- [90. 90.]
- grid_mapping :
- spatial_ref
array([90.])
- transmitter_on_time(n_transmitter)float640.002769
- valid_range :
- [0.00276878 0.00276878]
- grid_mapping :
- spatial_ref
array([0.00276878])
- transmitter_off_time(n_transmitter)float640.002787
- valid_range :
- [0.00278678 0.00278678]
- grid_mapping :
- spatial_ref
array([0.00278678])
- transmitter_orientation(n_transmitter)<U1'z'
- grid_mapping :
- spatial_ref
array(['z'], dtype='<U1')
- transmitter_height(n_transmitter)float641.0
- valid_range :
- [1. 1.]
- grid_mapping :
- spatial_ref
array([1.])
- receiver_label(n_receiver)<U1'x' 'y' 'z'
- grid_mapping :
- spatial_ref
array(['x', 'y', 'z'], dtype='<U1')
- receiver_orientation(n_receiver)<U1'x' 'y' 'z'
- grid_mapping :
- spatial_ref
array(['x', 'y', 'z'], dtype='<U1')
- receiver_coil_low_pass_filter(n_receiver)float641e+05 1e+05 1e+05
- valid_range :
- [100000. 100000.]
- grid_mapping :
- spatial_ref
array([100000., 100000., 100000.])
- receiver_instrument_low_pass_filter(n_receiver)float642.5e+05 2.5e+05 2.5e+05
- valid_range :
- [250000. 250000.]
- grid_mapping :
- spatial_ref
array([250000., 250000., 250000.])
- receiver_area(n_receiver)float64200.0 200.0 200.0
- valid_range :
- [200. 200.]
- grid_mapping :
- spatial_ref
array([200., 200., 200.])
- receiver_delay_time(n_receiver)float644.58e-06 4.58e-06 4.58e-06
- valid_range :
- [4.58e-06 4.58e-06]
- grid_mapping :
- spatial_ref
array([4.58e-06, 4.58e-06, 4.58e-06])
- receiver_height(n_receiver)float641.75 1.75 1.75
- valid_range :
- [1.75 1.75]
- grid_mapping :
- spatial_ref
array([1.75, 1.75, 1.75])
- receiver_gain(n_receiver)int6410 10 10
- valid_range :
- [10. 10.]
- grid_mapping :
- spatial_ref
array([10, 10, 10])
- component_label(n_component)<U3'z_x' 'z_y' 'z_z'
- grid_mapping :
- spatial_ref
array(['z_x', 'z_y', 'z_z'], dtype='<U3')
- component_transmitters(n_component)<U1'z' 'z' 'z'
- grid_mapping :
- spatial_ref
array(['z', 'z', 'z'], dtype='<U1')
- component_receivers(n_component)<U1'x' 'y' 'z'
- grid_mapping :
- spatial_ref
array(['x', 'y', 'z'], dtype='<U1')
- component_sample_rate(n_component)float641.0 1.0 1.0
- valid_range :
- [1. 1.]
- grid_mapping :
- spatial_ref
array([1., 1., 1.])
- component_txrx_dx(n_component)float64-10.0 -10.0 -10.0
- valid_range :
- [-10. -10.]
- grid_mapping :
- spatial_ref
array([-10., -10., -10.])
- component_txrx_dy(n_component)float640.0 0.0 0.0
- valid_range :
- [0. 0.]
- grid_mapping :
- spatial_ref
array([0., 0., 0.])
- component_txrx_dz(n_component)float64-0.75 -0.75 -0.75
- valid_range :
- [-0.75 -0.75]
- grid_mapping :
- spatial_ref
array([-0.75, -0.75, -0.75])
- component_data_type(n_component)<U4'dBdt' 'dBdt' 'dBdt'
- grid_mapping :
- spatial_ref
array(['dBdt', 'dBdt', 'dBdt'], dtype='<U4')
- component_gate_times(n_component)<U10'gate_times' ... 'gate_times'
- grid_mapping :
- spatial_ref
array(['gate_times', 'gate_times', 'gate_times'], dtype='<U10')
- sample_rate()objectNone
- units :
- s
- grid_mapping :
- spatial_ref
array(None, dtype=object)
- type :
- system
- mode :
- ground
- method :
- electromagnetic
- submethod :
- time domain
- instrument :
- loupe
- name :
- loupe_system
- data_normalized :
- True
- reference_frame :
- right-handed positive down
- sample_rate :
- 0.1
- digitization_frequency :
- 504000.0
- stacks :
- 360
- powerline_frequency :
- 60.0
- index: 2474
- gate_times: 23
- spatial_ref()float640.0
- crs_wkt :
- PROJCRS["WGS 84 / UTM zone 16N",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["UTM zone 16N",METHOD["Transverse Mercator",ID["EPSG",9807]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",-87,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["Scale factor at natural origin",0.9996,SCALEUNIT["unity",1],ID["EPSG",8805]],PARAMETER["False easting",500000,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Navigation and medium accuracy spatial referencing."],AREA["Between 90°W and 84°W, northern hemisphere between equator and 84°N, onshore and offshore. Belize. Canada - Manitoba; Nunavut; Ontario. Costa Rica. Cuba. Ecuador - Galapagos. El Salvador. Guatemala. Honduras. Mexico. Nicaragua. United States (USA)."],BBOX[0,-90,84,-84]],ID["EPSG",32616]]
- semi_major_axis :
- 6378137.0
- semi_minor_axis :
- 6356752.314245179
- inverse_flattening :
- 298.257223563
- reference_ellipsoid_name :
- WGS 84
- longitude_of_prime_meridian :
- 0.0
- prime_meridian_name :
- Greenwich
- geographic_crs_name :
- WGS 84
- horizontal_datum_name :
- World Geodetic System 1984 ensemble
- projected_crs_name :
- WGS 84 / UTM zone 16N
- grid_mapping_name :
- transverse_mercator
- latitude_of_projection_origin :
- 0.0
- longitude_of_central_meridian :
- -87.0
- false_easting :
- 500000.0
- false_northing :
- 0.0
- scale_factor_at_central_meridian :
- 0.9996
- authority :
- EPSG
- wkid :
- 32616
array(0.)
- index(index)int320 1 2 3 4 ... 2470 2471 2472 2473
- standard_name :
- index
- long_name :
- Index of individual data points
- units :
- not_defined
- null_value :
- not_defined
- valid_range :
- [ 0. 2473.]
- grid_mapping :
- spatial_ref
array([ 0, 1, 2, ..., 2471, 2472, 2473], shape=(2474,), dtype=int32)
- x(index)float645.248e+05 5.248e+05 ... 5.246e+05
- standard_name :
- projection_x_coordinate
- long_name :
- (m) Calculated reading position easting (in selected GRID)
- null_value :
- not_defined
- units :
- not_defined
- axis :
- X
- valid_range :
- [524640.4 524825.1]
- grid_mapping :
- spatial_ref
array([524825.1, 524825. , 524825. , ..., 524644.4, 524644.6, 524644.8], shape=(2474,)) - y(index)float644.583e+06 4.583e+06 ... 4.583e+06
- standard_name :
- projection_y_coordinate
- long_name :
- (m) Calculated reading position northing (in selected GRID)
- null_value :
- not_defined
- units :
- not_defined
- axis :
- Y
- valid_range :
- [4582888.5 4583204.6]
- grid_mapping :
- spatial_ref
array([4583153. , 4583153. , 4583153. , ..., 4583202.7, 4583203.7, 4583204.6], shape=(2474,)) - z(index)float64211.5 211.5 211.5 ... 211.1 211.1
- standard_name :
- z
- long_name :
- (m) Calculated reading position height above MSL (in selected GRID)
- null_value :
- not_defined
- units :
- not_defined
- axis :
- Z
- positive :
- up
- datum :
- ground_surface
- valid_range :
- [210.1 215.1]
- grid_mapping :
- spatial_ref
array([211.5, 211.5, 211.5, ..., 211. , 211.1, 211.1], shape=(2474,))
- gate_times(gate_times)float641.297e-05 1.495e-05 ... 0.002183
- standard_name :
- gate_times
- long_name :
- receiver gate times
- units :
- seconds
- null_value :
- not_defined
- valid_range :
- [1.2965e-05 2.1826e-03]
- grid_mapping :
- spatial_ref
- bounds :
- gate_times_bnds
array([1.2965e-05, 1.4955e-05, 1.6935e-05, 1.8920e-05, 2.0905e-05, 2.4870e-05, 3.0825e-05, 3.8760e-05, 4.8685e-05, 6.2570e-05, 7.8445e-05, 1.0226e-04, 1.3400e-04, 1.7368e-04, 2.2924e-04, 3.0265e-04, 3.9987e-04, 5.3083e-04, 7.0245e-04, 9.3261e-04, 1.2372e-03, 1.6429e-03, 2.1826e-03])
- fid(index)object'1' '2' '3' ... '2962' '2963'
- standard_name :
- fid
- long_name :
- Unique reading identifier
- null_value :
- not_defined
- units :
- not_defined
- grid_mapping :
- spatial_ref
array(['1', '2', '3', ..., '2961', '2962', '2963'], shape=(2474,), dtype=object) - acq(index)float641.0 1.0 1.0 1.0 ... 6.0 6.0 6.0 6.0
- standard_name :
- acq
- long_name :
- Acquire index, this is incremented each time the user presses the acquire button
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [1. 6.]
- grid_mapping :
- spatial_ref
array([1., 1., 1., ..., 6., 6., 6.], shape=(2474,))
- acq_rdg(index)float640.0 1.0 2.0 ... 424.0 425.0 426.0
- standard_name :
- acq_rdg
- long_name :
- Reading index, for a particular acquire, reset to 0 for each acquire
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [ 0. 508.]
- grid_mapping :
- spatial_ref
array([ 0., 1., 2., ..., 424., 425., 426.], shape=(2474,))
- acq_time(index)object'20230808T175252.504075397Z' ......
- standard_name :
- acq_time
- long_name :
- (UTC ISO-8601) Time for when the raw data started to be acquired, matches raw file name
- null_value :
- not_defined
- units :
- not_defined
- grid_mapping :
- spatial_ref
array(['20230808T175252.504075397Z', '20230808T175252.504075397Z', '20230808T175252.504075397Z', ..., '20230808T184718.299388889Z', '20230808T184718.299388889Z', '20230808T184718.299388889Z'], shape=(2474,), dtype=object) - time(index)object'20230808T175253.000000000Z' ......
- standard_name :
- time
- long_name :
- (UTC ISO-8601) Time of the first sample in the stack
- null_value :
- not_defined
- units :
- not_defined
- grid_mapping :
- spatial_ref
array(['20230808T175253.000000000Z', '20230808T175254.000000000Z', '20230808T175255.000000000Z', ..., '20230808T185423.000000000Z', '20230808T185424.000000000Z', '20230808T185425.000000000Z'], shape=(2474,), dtype=object) - ts(index)float641.692e+09 1.692e+09 ... 1.692e+09
- standard_name :
- ts
- long_name :
- (UTC Linux) Time of the first sample in the stack
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [1.69151717e+09 1.69152086e+09]
- grid_mapping :
- spatial_ref
array([1.69151717e+09, 1.69151717e+09, 1.69151718e+09, ..., 1.69152086e+09, 1.69152086e+09, 1.69152086e+09], shape=(2474,)) - east(index)float645.248e+05 5.248e+05 ... 5.246e+05
- standard_name :
- east
- long_name :
- (m) Calculated reading position easting (in selected GRID)
- null_value :
- not_defined
- units :
- not_defined
- axis :
- x
- valid_range :
- [524640.4 524825.1]
- grid_mapping :
- spatial_ref
array([524825.1, 524825. , 524825. , ..., 524644.4, 524644.6, 524644.8], shape=(2474,)) - north(index)float644.583e+06 4.583e+06 ... 4.583e+06
- standard_name :
- north
- long_name :
- (m) Calculated reading position northing (in selected GRID)
- null_value :
- not_defined
- units :
- not_defined
- axis :
- y
- valid_range :
- [4582888.5 4583204.6]
- grid_mapping :
- spatial_ref
array([4583153. , 4583153. , 4583153. , ..., 4583202.7, 4583203.7, 4583204.6], shape=(2474,)) - height(index)float64211.5 211.5 211.5 ... 211.1 211.1
- standard_name :
- height
- long_name :
- (m) Calculated reading position height above MSL (in selected GRID)
- null_value :
- not_defined
- units :
- not_defined
- axis :
- z
- positive :
- up
- datum :
- ground_surface
- valid_range :
- [210.1 215.1]
- grid_mapping :
- spatial_ref
array([211.5, 211.5, 211.5, ..., 211. , 211.1, 211.1], shape=(2474,))
- gps_time(index)object'20230808T175254.000000000Z' ......
- standard_name :
- gps_time
- long_name :
- (UTC ISO-8601) Timestamp of GPS antenna position
- null_value :
- not_defined
- units :
- not_defined
- grid_mapping :
- spatial_ref
array(['20230808T175254.000000000Z', '20230808T175255.000000000Z', '20230808T175256.000000000Z', ..., '20230808T185424.000000000Z', '20230808T185425.000000000Z', '20230808T185426.000000000Z'], shape=(2474,), dtype=object) - gps_east(index)float645.248e+05 5.248e+05 ... 5.246e+05
- standard_name :
- gps_east
- long_name :
- (m) GPS antenna position easting (in selected GRID)
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [524639.3 524822.2]
- grid_mapping :
- spatial_ref
array([524822.2, 524822.1, 524822. , ..., 524645.7, 524646. , 524646.3], shape=(2474,)) - gps_north(index)float644.583e+06 4.583e+06 ... 4.583e+06
- standard_name :
- gps_north
- long_name :
- (m) GPS antenna position northing (in selected GRID)
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [4582886.5 4583209.9]
- grid_mapping :
- spatial_ref
array([4583149. , 4583148.9, 4583148.9, ..., 4583208. , 4583209. , 4583209.9], shape=(2474,)) - gps_height(index)float64213.8 213.9 213.9 ... 211.6 211.6
- standard_name :
- gps_height
- long_name :
- (m) GPS antenna position height above MSL (in selected GRID)
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [210.6 216.1]
- grid_mapping :
- spatial_ref
array([213.8, 213.9, 213.9, ..., 211.6, 211.6, 211.6], shape=(2474,))
- tx_east(index)float645.248e+05 5.248e+05 ... 5.246e+05
- standard_name :
- tx_east
- long_name :
- (m) Calculated TX centre position easting (in selected GRID)
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [524639.3 524822.5]
- grid_mapping :
- spatial_ref
array([524822.5, 524822.5, 524822.4, ..., 524645.6, 524645.8, 524646.1], shape=(2474,)) - tx_north(index)float644.583e+06 4.583e+06 ... 4.583e+06
- standard_name :
- tx_north
- long_name :
- (m) Calculated TX centre position northing (in selected GRID)
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [4582887. 4583209.4]
- grid_mapping :
- spatial_ref
array([4583149. , 4583149. , 4583149. , ..., 4583207.5, 4583208.5, 4583209.4], shape=(2474,)) - tx_height(index)float64213.5 213.4 213.3 ... 210.8 210.8
- standard_name :
- tx_height
- long_name :
- (m) Calculated TX centre position height above MSL (in selected GRID)
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [209.8 215.3]
- grid_mapping :
- spatial_ref
array([213.5, 213.4, 213.3, ..., 210.8, 210.8, 210.8], shape=(2474,))
- rx_east(index)float645.248e+05 5.248e+05 ... 5.246e+05
- standard_name :
- rx_east
- long_name :
- (m) Calculated RX centre position easting (in selected GRID)
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [524639.4 524827.7]
- grid_mapping :
- spatial_ref
array([524827.7, 524827.6, 524827.6, ..., 524643.3, 524643.4, 524643.5], shape=(2474,)) - rx_north(index)float644.583e+06 4.583e+06 ... 4.583e+06
- standard_name :
- rx_north
- long_name :
- (m) Calculated RX centre position northing (in selected GRID)
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [4582883.8 4583199.8]
- grid_mapping :
- spatial_ref
array([4583157. , 4583156.9, 4583156.9, ..., 4583197.8, 4583198.8, 4583199.8], shape=(2474,)) - rx_height(index)float64209.6 209.6 209.6 ... 211.4 211.4
- standard_name :
- rx_height
- long_name :
- (m) Calculated RX centre position height above MSL (in selected GRID)
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [209.6 215.5]
- grid_mapping :
- spatial_ref
array([209.6, 209.6, 209.6, ..., 211.3, 211.4, 211.4], shape=(2474,))
- x_adc(index)float641.1 1.1 1.1 1.1 ... 1.1 1.1 1.1 1.1
- standard_name :
- x_adc
- long_name :
- (group.channel) Receiver hardware channel identification
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [1.1 1.1]
- grid_mapping :
- spatial_ref
array([1.1, 1.1, 1.1, ..., 1.1, 1.1, 1.1], shape=(2474,))
- y_adc(index)float641.2 1.2 1.2 1.2 ... 1.2 1.2 1.2 1.2
- standard_name :
- y_adc
- long_name :
- (group.channel) Receiver hardware channel identification
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [1.2 1.2]
- grid_mapping :
- spatial_ref
array([1.2, 1.2, 1.2, ..., 1.2, 1.2, 1.2], shape=(2474,))
- z_adc(index)float641.3 1.3 1.3 1.3 ... 1.3 1.3 1.3 1.3
- standard_name :
- z_adc
- long_name :
- (group.channel) Receiver hardware channel identification
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [1.3 1.3]
- grid_mapping :
- spatial_ref
array([1.3, 1.3, 1.3, ..., 1.3, 1.3, 1.3], shape=(2474,))
- x_c(index)object'X' 'X' 'X' 'X' ... 'X' 'X' 'X' 'X'
- standard_name :
- x_c
- long_name :
- Sensor axis component
- null_value :
- not_defined
- units :
- not_defined
- grid_mapping :
- spatial_ref
array(['X', 'X', 'X', ..., 'X', 'X', 'X'], shape=(2474,), dtype=object)
- y_c(index)object'Y' 'Y' 'Y' 'Y' ... 'Y' 'Y' 'Y' 'Y'
- standard_name :
- y_c
- long_name :
- Sensor axis component
- null_value :
- not_defined
- units :
- not_defined
- grid_mapping :
- spatial_ref
array(['Y', 'Y', 'Y', ..., 'Y', 'Y', 'Y'], shape=(2474,), dtype=object)
- z_c(index)object'Z' 'Z' 'Z' 'Z' ... 'Z' 'Z' 'Z' 'Z'
- standard_name :
- z_c
- long_name :
- Sensor axis component
- null_value :
- not_defined
- units :
- not_defined
- grid_mapping :
- spatial_ref
array(['Z', 'Z', 'Z', ..., 'Z', 'Z', 'Z'], shape=(2474,), dtype=object)
- vlf_filter(index)object'NML4,NAA,NLK' ... 'NML4,NAA,NLK'
- standard_name :
- vlf_filter
- long_name :
- List of VLF filters applied to the data
- null_value :
- not_defined
- units :
- not_defined
- grid_mapping :
- spatial_ref
array(['NML4,NAA,NLK', 'NML4,NAA,NLK', 'NML4,NAA,NLK', ..., 'NML4,NAA,NLK', 'NML4,NAA,NLK', 'NML4,NAA,NLK'], shape=(2474,), dtype=object) - x_dc_offset(index)float640.0001225 -6.476e-05 ... 0.0003983
- standard_name :
- x_dc_offset
- long_name :
- (V) Measured DC voltage offset of the receiver hardware channel
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [-0.00424875 0.00582003]
- grid_mapping :
- spatial_ref
array([ 1.22502012e-04, -6.47628917e-05, 3.71596925e-05, ..., -5.24712125e-04, 1.85908540e-05, 3.98293323e-04], shape=(2474,)) - y_dc_offset(index)float64-0.001267 -0.001414 ... -0.002835
- standard_name :
- y_dc_offset
- long_name :
- (V) Measured DC voltage offset of the receiver hardware channel
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [-0.00596561 0.00258175]
- grid_mapping :
- spatial_ref
array([-0.00126698, -0.00141366, -0.00140542, ..., -0.00254054, -0.00226911, -0.00283487], shape=(2474,)) - z_dc_offset(index)float640.001206 0.001324 ... 0.00212
- standard_name :
- z_dc_offset
- long_name :
- (V) Measured DC voltage offset of the receiver hardware channel
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [-0.00133355 0.0054299 ]
- grid_mapping :
- spatial_ref
array([0.00120597, 0.0013237 , 0.00127483, ..., 0.00178339, 0.00204642, 0.0021202 ], shape=(2474,)) - x_primary(index)float645.749e+03 5.066e+03 ... 1.862e+03
- standard_name :
- x_primary
- long_name :
- (UNITS) Calculated primary field from the stack
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [-7340.56369004 38197.63482305]
- grid_mapping :
- spatial_ref
array([5748.6329444 , 5065.67632182, 4567.6176848 , ..., 1686.41533602, 1577.76982472, 1862.37963227], shape=(2474,)) - y_primary(index)float64-1.073e+03 -340.6 ... 733.2 884.4
- standard_name :
- y_primary
- long_name :
- (UNITS) Calculated primary field from the stack
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [-8408.70352847 48999.10690608]
- grid_mapping :
- spatial_ref
array([-1072.76504299, -340.64204659, -154.80896945, ..., 959.27368163, 733.2011728 , 884.36768078], shape=(2474,)) - z_primary(index)float64-1.035e+04 ... -9.573e+03
- standard_name :
- z_primary
- long_name :
- (UNITS) Calculated primary field from the stack
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [-50720.92069094 -7060.07734103]
- grid_mapping :
- spatial_ref
array([-10354.9061196 , -10658.4502775 , -10871.73142006, ..., -8946.93568754, -9249.66406757, -9572.54815111], shape=(2474,)) - x_noise(index)float641.925e-05 1.718e-05 ... 1.131e-05
- standard_name :
- x_noise
- long_name :
- (UNITS) Calculated offtime standard deviation amplitude
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [8.53896293e-06 1.30758177e-04]
- grid_mapping :
- spatial_ref
array([1.92478441e-05, 1.71837894e-05, 1.20049866e-05, ..., 1.48871272e-05, 1.28631911e-05, 1.13137058e-05], shape=(2474,)) - y_noise(index)float643.761e-05 3.352e-05 ... 2.042e-05
- standard_name :
- y_noise
- long_name :
- (UNITS) Calculated offtime standard deviation amplitude
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [7.81948493e-06 1.43676881e-04]
- grid_mapping :
- spatial_ref
array([3.76140510e-05, 3.35244652e-05, 1.38487194e-05, ..., 2.73998294e-05, 2.93794713e-05, 2.04197631e-05], shape=(2474,)) - z_noise(index)float647.735e-06 7.632e-06 ... 7.101e-06
- standard_name :
- z_noise
- long_name :
- (UNITS) Calculated offtime standard deviation amplitude
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [5.66649012e-06 2.19859912e-05]
- grid_mapping :
- spatial_ref
array([7.73491566e-06, 7.63164543e-06, 6.24645382e-06, ..., 8.04470222e-06, 7.81372909e-06, 7.10093547e-06], shape=(2474,)) - x_powerampl(index)float644.447e-05 4.847e-05 ... 6.736e-05
- standard_name :
- x_powerampl
- long_name :
- (UNITS) Calculated power line amplitude
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [7.16398081e-07 1.21668703e-04]
- grid_mapping :
- spatial_ref
array([4.44674749e-05, 4.84675737e-05, 4.43066532e-05, ..., 6.98973325e-05, 6.25726466e-05, 6.73598241e-05], shape=(2474,)) - y_powerampl(index)float643.528e-05 4.035e-05 ... 4.107e-05
- standard_name :
- y_powerampl
- long_name :
- (UNITS) Calculated power line amplitude
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [8.72665759e-07 1.21092706e-04]
- grid_mapping :
- spatial_ref
array([3.52802470e-05, 4.03539295e-05, 3.59883594e-05, ..., 4.08483026e-05, 4.45154243e-05, 4.10658183e-05], shape=(2474,)) - z_powerampl(index)float644.411e-05 4.739e-05 ... 6.548e-05
- standard_name :
- z_powerampl
- long_name :
- (UNITS) Calculated power line amplitude
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [1.59290256e-05 1.00851298e-04]
- grid_mapping :
- spatial_ref
array([4.41124453e-05, 4.73859296e-05, 4.45698238e-05, ..., 6.25196446e-05, 6.30792217e-05, 6.54775984e-05], shape=(2474,)) - x_powerphase(index)float64-2.384 -2.266 ... 0.6481 0.6069
- standard_name :
- x_powerphase
- long_name :
- (rad) Calculated power line phase
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [-3.13952093 3.14062356]
- grid_mapping :
- spatial_ref
array([-2.38386775, -2.26609236, -2.2974812 , ..., 0.82708581, 0.64807687, 0.60691115], shape=(2474,)) - y_powerphase(index)float641.006 1.07 1.008 ... -2.558 -2.693
- standard_name :
- y_powerphase
- long_name :
- (rad) Calculated power line phase
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [-3.13653464 3.13973981]
- grid_mapping :
- spatial_ref
array([ 1.0058089 , 1.06951257, 1.0079169 , ..., -2.71774442, -2.55791329, -2.69273716], shape=(2474,)) - z_powerphase(index)float641.663 1.679 1.748 ... 0.9304 0.8736
- standard_name :
- z_powerphase
- long_name :
- (rad) Calculated power line phase
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [-3.1374438 3.13980209]
- grid_mapping :
- spatial_ref
array([1.66258522, 1.67912437, 1.74751758, ..., 1.08099645, 0.93041364, 0.87356582], shape=(2474,)) - X_CH(index, gate_times)float64491.5 357.4 ... 0.01203 0.001494
- standard_name :
- x_ch
- long_name :
- (UNITS) Time channel windows data
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [-232.45210445 1342.5416746 ]
- grid_mapping :
- spatial_ref
array([[ 4.91452149e+02, 3.57444735e+02, 1.70748835e+02, ..., -1.63840100e-02, 9.59741855e-03, -4.61576917e-04], [ 4.84119969e+02, 3.50174919e+02, 1.65863356e+02, ..., -7.89618854e-03, -1.75374306e-04, 8.77812550e-03], [ 4.89865435e+02, 3.54931726e+02, 1.68517334e+02, ..., 2.00930978e-02, 1.20076114e-02, 1.21367096e-02], ..., [ 6.06350715e+02, 4.69221895e+02, 2.35733369e+02, ..., -1.88727018e-02, 2.19282732e-02, -1.12125068e-02], [ 6.28190885e+02, 4.89688176e+02, 2.49615215e+02, ..., -3.40853044e-03, -9.14057373e-03, 8.78813646e-04], [ 6.20494158e+02, 4.79895816e+02, 2.42782373e+02, ..., -1.01020753e-02, 1.20319373e-02, 1.49391277e-03]], shape=(2474, 23)) - Y_CH(index, gate_times)float64-6.219 6.26 ... 0.02448 -0.0268
- standard_name :
- y_ch
- long_name :
- (UNITS) Time channel windows data
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [-671.69123565 3745.61482216]
- grid_mapping :
- spatial_ref
array([[-6.21863076e+00, 6.25999264e+00, 9.56963428e+00, ..., 2.97073856e-02, 3.83601715e-02, 1.62472346e-02], [-2.51476677e+00, 8.29366205e+00, 9.96589274e+00, ..., 2.91719560e-02, 6.02595529e-02, 1.57731374e-02], [-4.74262943e+00, 5.24536477e+00, 7.75696030e+00, ..., -8.35364178e-03, 3.39979473e-02, 2.60233977e-02], ..., [ 3.09063349e+01, -2.39323686e+01, -2.19494663e+01, ..., -1.87308078e-02, 8.83365510e-02, 1.65316913e-02], [ 5.61396173e+01, -4.98772404e+00, -1.28747873e+01, ..., -3.12896972e-02, -1.36777100e-02, -3.16649451e-03], [ 5.14997597e+01, -6.53499680e+00, -1.35259271e+01, ..., -5.36811706e-02, 2.44820150e-02, -2.67986952e-02]], shape=(2474, 23)) - Z_CH(index, gate_times)float64499.8 434.7 ... 0.01548 0.01253
- standard_name :
- z_ch
- long_name :
- (UNITS) Time channel windows data
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [-17020.57927343 1260.66757955]
- grid_mapping :
- spatial_ref
array([[ 4.99768836e+02, 4.34719896e+02, 2.69763029e+02, ..., 2.04351268e-03, -4.22064192e-03, 2.66078607e-03], [ 5.27219757e+02, 4.54222803e+02, 2.78963512e+02, ..., -6.16011541e-03, -4.98895610e-03, 1.09400172e-02], [ 5.28663002e+02, 4.56264082e+02, 2.80124553e+02, ..., 1.49719267e-02, 3.57381153e-04, 2.50150137e-02], ..., [ 6.31191702e+02, 5.94172502e+02, 3.72933693e+02, ..., -6.57088371e-04, -5.55307094e-03, -6.70596632e-03], [ 6.01306744e+02, 5.68467074e+02, 3.59779858e+02, ..., 1.66703024e-02, -8.36090578e-03, 4.76010970e-04], [ 6.15910524e+02, 5.77090899e+02, 3.64394331e+02, ..., 9.67030048e-03, 1.54826824e-02, 1.25302578e-02]], shape=(2474, 23)) - line(index)int641 1 1 1 1 1 1 1 ... 6 6 6 6 6 6 6 6
- standard_name :
- not_defined
- long_name :
- not_defined
- null_value :
- not_defined
- units :
- not_defined
- valid_range :
- [1. 6.]
- grid_mapping :
- spatial_ref
array([1, 1, 1, ..., 6, 6, 6], shape=(2474,))
- content :
- raw data
- comment :
- This dataset includes minimally processed (raw) AEM data
- type :
- data
- method :
- electromagnetic
- instrument :
- loupe
Save to NetCDF file
d_out = join(data_path, 'Loupe.nc')
survey.gs.to_netcdf(d_out)
Reading back in
new_survey = gspy.open_datatree(d_out)['survey']
Plotting
plt.figure()
new_survey['data/raw_data']['height'].plot(label='height')
new_survey['data/raw_data']['tx_height'].plot(label='tx_height')
new_survey['data/raw_data']['rx_height'].plot(label='rx_height')
plt.tight_layout()
plt.legend()
plt.show()

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