Note
Go to the end to download the full example code.
CSV to NetCDF
This example demonstrates how to convert comma-separated values (CSV) data to the GS NetCDF format. Specifically this example includes:
Raw AEM data, from the Resolve system
Inverted resistivity models
Dataset Reference: Burton, B.L., Minsley, B.J., Bloss, B.R., and Kress, W.H., 2021, Airborne electromagnetic, magnetic, and radiometric survey of the Mississippi Alluvial Plain, November 2018 - February 2019: U.S. Geological Survey data release, https://doi.org/10.5066/P9XBBBUU.
import matplotlib.pyplot as plt
from os.path import join
import gspy
Convert the resolve csv data to NetCDF
Initialize the Survey
# Path to example files
data_path = '..//data_files//resolve'
# Survey metadata file
metadata = join(data_path, "data//Resolve_survey_md.yml")
# Establish the Survey
survey = gspy.Survey.from_dict(metadata)
Import raw AEM data from CSV-format.
data_container = survey.gs.add_container('data', **dict(content = "raw and processed data"))
# Define input data file and associated metadata file
d_data = join(data_path, 'data//Resolve.csv')
d_supp = join(data_path, 'data//Resolve_data_md.yml')
# Add the raw AEM data as a tabular dataset
data_container.gs.add(key='raw_data', data_filename=d_data, metadata_file=d_supp)
Import inverted AEM models from CSV-format.
model_container = survey.gs.add_container('models', **dict(content = "inverted models"))
# Define input model file and associated metadata file
m_data = join(data_path, 'model//Resolve_model.csv')
m_supp = join(data_path, 'model//Resolve_model_md.yml')
# Add the inverted AEM models as a tabular dataset
model_container.gs.add(key="model", data_filename=m_data, metadata_file=m_supp)
Save to NetCDF file
d_out = join(data_path, 'Resolve.nc')
survey.gs.to_netcdf(d_out)
uuid
title
institution
source
history
references
comment
content
conventions
created_by
type
_FillValue
contractor_project_number
contractor
client
survey_type
survey_area_name
state
country
acquisition_start
acquisition_end
dataset_created
coordinates
_FillValue
time
area
distance
line_direction
frequency
electromagnetic_moment
electromagnetic_secondary_field
spectrometer_volume
coordinates
_FillValue
traverse_line_spacing
traverse_line_direction
tie_line_spacing
tie_line_direction
nominal_terrain_clearance
final_line_kilometers
traverse_line_numbers
tie_line_numbers
coordinates
_FillValue
aircraft
aircraft_registration
aircraft_operator
magnetometer
magnetometer_installation
spectrometer_system
spectrometer_installation
radar_altimeter_system
laser_altimeter_system
navigation_system
acquisition_system
electromagnetic_system
electromagnetic_installation
coordinates
_FillValue
crs_wkt
semi_major_axis
semi_minor_axis
inverse_flattening
reference_ellipsoid_name
longitude_of_prime_meridian
prime_meridian_name
geographic_crs_name
horizontal_datum_name
projected_crs_name
grid_mapping_name
standard_parallel
latitude_of_projection_origin
longitude_of_central_meridian
false_easting
false_northing
authority
wkid
content
type
_FillValue
crs_wkt
semi_major_axis
semi_minor_axis
inverse_flattening
reference_ellipsoid_name
longitude_of_prime_meridian
prime_meridian_name
geographic_crs_name
horizontal_datum_name
projected_crs_name
grid_mapping_name
standard_parallel
latitude_of_projection_origin
longitude_of_central_meridian
false_easting
false_northing
authority
wkid
content
type
_FillValue
crs_wkt
semi_major_axis
semi_minor_axis
inverse_flattening
reference_ellipsoid_name
longitude_of_prime_meridian
prime_meridian_name
geographic_crs_name
horizontal_datum_name
projected_crs_name
grid_mapping_name
standard_parallel
latitude_of_projection_origin
longitude_of_central_meridian
false_easting
false_northing
authority
wkid
uuid
content
comment
type
method
instrument
_FillValue
standard_name
long_name
null_value
datum
valid_range
grid_mapping
coordinates
standard_name
long_name
units
null_value
dtype
valid_range
grid_mapping
coordinates
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
axis
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
axis
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
axis
positive
datum
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
raw_data_columns
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
raw_data_columns
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
raw_data_columns
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
raw_data_columns
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
raw_data_columns
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
raw_data_columns
valid_range
grid_mapping
coordinates
_FillValue
crs_wkt
semi_major_axis
semi_minor_axis
inverse_flattening
reference_ellipsoid_name
longitude_of_prime_meridian
prime_meridian_name
geographic_crs_name
horizontal_datum_name
projected_crs_name
grid_mapping_name
standard_parallel
latitude_of_projection_origin
longitude_of_central_meridian
false_easting
false_northing
authority
wkid
standard_name
long_name
units
null_value
valid_range
grid_mapping
_FillValue
standard_name
long_name
units
null_value
axis
positive
datum
valid_range
grid_mapping
bounds
standard_name
long_name
units
null_value
valid_range
grid_mapping
_FillValue
standard_name
long_name
units
null_value
axis
valid_range
grid_mapping
_FillValue
standard_name
long_name
units
null_value
axis
valid_range
grid_mapping
_FillValue
standard_name
long_name
units
null_value
axis
positive
datum
valid_range
grid_mapping
standard_name
long_name
units
null_value
valid_range
grid_mapping
standard_name
long_name
units
null_value
valid_range
grid_mapping
uuid
content
comment
_FillValue
standard_name
long_name
null_value
valid_range
grid_mapping
coordinates
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
axis
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
axis
valid_range
grid_mapping
coordinates
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
axis
positive
datum
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
coordinates
_FillValue
crs_wkt
semi_major_axis
semi_minor_axis
inverse_flattening
reference_ellipsoid_name
longitude_of_prime_meridian
prime_meridian_name
geographic_crs_name
horizontal_datum_name
projected_crs_name
grid_mapping_name
standard_parallel
latitude_of_projection_origin
longitude_of_central_meridian
false_easting
false_northing
authority
wkid
standard_name
long_name
units
null_value
valid_range
grid_mapping
_FillValue
standard_name
long_name
units
null_value
valid_range
grid_mapping
bounds
standard_name
long_name
units
null_value
valid_range
grid_mapping
_FillValue
standard_name
long_name
units
null_value
axis
valid_range
grid_mapping
_FillValue
standard_name
long_name
units
null_value
axis
valid_range
grid_mapping
_FillValue
standard_name
long_name
units
null_value
axis
positive
datum
valid_range
grid_mapping
type
mode
method
submethod
instrument
uuid
name
data_normalized
output_data_type
reference_frame
output_sample_frequency
valid_range
grid_mapping
grid_mapping
valid_range
grid_mapping
valid_range
grid_mapping
grid_mapping
grid_mapping
grid_mapping
valid_range
grid_mapping
grid_mapping
_FillValue
valid_range
grid_mapping
valid_range
grid_mapping
valid_range
grid_mapping
grid_mapping
standard_name
long_name
units
null_value
valid_range
grid_mapping
standard_name
long_name
units
null_value
valid_range
grid_mapping
standard_name
long_name
units
null_value
valid_range
grid_mapping
type
mode
method
submethod
instrument
name
sample_frequency
sensitivity
type
mode
method
submethod
instrument
name
crystal_type
sample_frequency
downward_volume
upward_volume
Reading back in the GS NetCDF file
new_survey = gspy.open_datatree(d_out)['survey']
# Check the Survey information
Plotting
# Make a scatter plot of a specific data variable, using GSPy's plotter
plt.figure()
new_survey['data/raw_data'].gs.scatter(hue='dtm', vmin=30, vmax=50)
# Subsetting by line number, and plotting by distance along that line
tmp = new_survey['data/raw_data'].gs.subset('line', 10010)
# tmp = new_survey['data'].where(new_survey['data'].dataset['line']==10010)
plt.figure()
# plt.subplot(121)
# tmp.gs_tabular.plot(hue='DTM')
# plt.subplot(122)
# tmp.gs_tabular.scatter(x='x', y='DTM')
tmp.gs.scatter(y='dtm')
#IF YOU SPECIFY HUE ITS A 2D COLOUR Plot
#OTHERWISE ITS JUST A PLOT (LINE POINTS ETC)
# Make a scatter plot of a specific model variable, using GSPy's plotter
plt.figure()
new_survey['models/model'].gs.scatter(hue='doi_standard')
plt.show()
Total running time of the script: (0 minutes 0.786 seconds)


