Note
Go to the end to download the full example code
Reading and Plotting data with DC.IO class#
The DC.IO class is a convenient way to handle DC data and carry inversions within a same class. It also has several plotting utils such as pseudosections. We show here an example of plotting DC data based on a demonstration dataset.
import numpy as np
import pandas as pd
import shutil
import os
import matplotlib.pyplot as plt
from SimPEG.electromagnetics.static import resistivity as DC
from SimPEG import Report
from SimPEG.utils.io_utils import download
Download an example DC data csv file#
# file origina and name
url = "https://storage.googleapis.com/simpeg/examples/dc_data.csv"
fname = download(url, folder="./test_url", overwrite=True)
# read csv using pandas
df = pd.read_csv(fname)
# header for ABMN locations
header_loc = ["Spa." + str(i + 1) for i in range(4)]
# Apparent resistivity
header_apprho = df.keys()[6]
Downloading https://storage.googleapis.com/simpeg/examples/dc_data.csv
saved to: /home/vsts/work/1/s/examples/04-dcip/test_url/dc_data.csv
Download completed!
Convert file to DC.IO object#
# Number of the data
ndata = df[header_loc[0]].values.size
# ABMN locations
a = np.c_[df[header_loc[0]].values, np.zeros(ndata)]
b = np.c_[df[header_loc[1]].values, np.zeros(ndata)]
m = np.c_[df[header_loc[2]].values, np.zeros(ndata)]
n = np.c_[df[header_loc[3]].values, np.zeros(ndata)]
# Apparent resistivity
apprho = df[header_apprho].values
# Create DC.IO survey Object object
IO = DC.IO()
# Generate DC survey using IO object
dc_survey = IO.from_abmn_locations_to_survey(
a,
b,
m,
n,
survey_type="dipole-dipole",
data_dc=apprho,
data_dc_type="apparent_resistivity",
)
/home/vsts/work/1/s/examples/04-dcip/plot_read_DC_data_with_IO_class.py:53: UserWarning:
code under construction - API might change in the future
Plot#
fig, ax = plt.subplots(1, 1, figsize=(10, 3))
IO.plotPseudoSection(
data_type="apparent_resistivity", scale="linear", clim=(0, 1000), ncontour=3, ax=ax
)
plt.show()
# clean up
shutil.rmtree(os.path.expanduser("./test_url"))
Print the version of SimPEG and dependencies#
Report()
Moving Forward#
If you have suggestions for improving this example, please create a pull request on the example in SimPEG
- You might try:
changing the contour levels
try with you own dataset
create a mask for negative apparent resistivities
…
Total running time of the script: (0 minutes 1.789 seconds)
Estimated memory usage: 9 MB