Exemple #1
0
    working_dir=main_dir,
    data_dir=data_dir,
    mesh_dir=mesh_dir,
    iso_dir=iso_dir,
    ref_dir=ref_dir,
    start_dir=start_dir,
    crtomo_exe=crtomo_exe_name,
    mesh_exe=mesh_exe_name,
)

# %%  Generating the mesh

# Data file name A B M N in meters

df = jp(data_dir, "demo_elecs.dat")  # Path to electrode configuration file
dat = datread(df)  # Use built-in function to extract data (optional)

# Electrode spacing in meters
es = 5

#  Electrodes elevation
# Data elevation file name X Z in meters
ef = jp(data_dir, "demo_elevation.dat")
elev = datread(ef)  # Use built-in function to extract data (optional)

# %% Build the mesh

# The following command generates the mesh in the folder indicated previously.

# It requires 3 arguments:
# the numpy array of electrodes position of shape (n, 4) (required)
    aspect=1.5,
    cbpos=0.2,
    folder=result_folder,
    figname="sens",
)
plt.show()

# %% Plot pseudosections

#  Open data file
os.chdir(cwd)
sub_folder_name = "paper"
data_dir = jp(cwd, "data", sub_folder_name)  # Data files directory
data_file = jp(data_dir, "field_data.dat")

data = crc.datread(data_file, start=1)

a = data[:, 0] * 5
b = data[:, 1] * 5
m = data[:, 2] * 5
n = data[:, 3] * 5

xy = np.column_stack([(m + n) / 2, -np.min(
    ((m + n) / 2 - a, b - (m + n) / 2), axis=0) / 3])

fig, ax = plt.subplots()
ax.plot(xy[:, 0], xy[:, 1], "k+", markersize=4)
ax.set_xlabel("X(m)", fontsize=12)
ax.set_ylabel("Pseudo depth(m)", fontsize=12)
ax.grid(alpha=0.7)
ax.set_aspect(aspect=7)
from tomopal.geoview.diavatly import model_map

# Directories
cwd = os.getcwd()  # Current working directory
sub_folder_name = "paper"
mesh_dir = jp(cwd, "mesh", sub_folder_name)  # Mesh files directory

labelsize = 12
bpos = 0.38

# %% MODEL MISFIT
true_model = jp("/Users/robin/PycharmProjects/MGS",
                "data/paper/models/forwardscenario.dat")

# Load true model
resmod = crc.datread(true_model, start=1)[:, 2]
ipmod = crc.datread(true_model, start=1)[:, 3]
m2p = -1.234598

mshf = "/Users/robin/PycharmProjects/MGS/mesh/paper/Mesh.dat"
ncol, nlin, nelem, blocks, centerxy, nodes = crc.mesh_geometry(mshf)

res_levels = 10**np.linspace(min(resmod), max(resmod), 10)
ip_levels = np.linspace(min(ipmod / m2p), 150, 7)

result_folder = "/Users/robin/PycharmProjects/MGS/results/paper/scenario"

model_map(
    polygons=blocks,
    vals=10**resmod,
    log=1,
Exemple #4
0
myinv = crc.Crtomo(
    working_dir=cwd,
    data_dir=data_dir,
    mesh_dir=mesh_dir,
    iso_dir=iso_dir,
    ref_dir=ref_dir,
    start_dir=start_dir,
    crtomo_exe=crtomo_exe_name,
    mesh_exe=mesh_exe_name,
)

# %%  Generating the mesh
# Data file name A B M N R
df = jp(data_dir, "elecs.dat")
dat = crc.datread(df)

# Electrode spacing
es = 5

#  Electrodes elevation
ef = jp(data_dir, "field_data_elevation.dat")  # Data elevation file name X Z
elev = crc.datread(ef)

# %% Make the mesh
mshf = jp(mesh_dir, "Mesh.dat")

if not os.path.exists(mshf):
    myinv.meshmaker(abmn=dat[:, [0, 1, 2, 3]],
                    electrode_spacing=es,
                    elevation_data=elev)
Exemple #5
0
from tomopal.crtomopy.crtomo import crc
from tomopal.geoview.diavatly import model_map
from tomopal.model.mohinh import ModelMaker

cwd = os.getcwd()  # Current working directory
sub_folder_name = "paper"
mesh_dir = jp(cwd, "mesh", sub_folder_name)  # Mesh files directory
mshf = jp(mesh_dir, "Mesh.dat")
iso_dir = jp(cwd, "iso", sub_folder_name)  # ISO file dir

ncol, nlin, nelem, blocks, centerxy = crc.mesh_geometry(mshf)

iso_file1 = jp(iso_dir, "iso_iso.dat")
start_dir = jp(cwd, "start", sub_folder_name)
starting_model_file = jp(start_dir, "rho07.dat")

dm = crc.datread(starting_model_file, start=1)[:, 0]
isom = ModelMaker(blocks=blocks, values=dm, values_log=1, bck=1)
#
with open(iso_file1, "w") as rw:
    rw.write(str(nelem) + "\n")
    for val in isom.final_results:
        if val > 1:
            rw.write("{} {}".format(str(val), str(1)) + "\n")
        if val < 1:
            rw.write("{} {}".format(str(1), str(1 / val)) + "\n")
        if val == 1.0:
            rw.write("{} {}".format(str(1), str(1)) + "\n")
    rw.close()
# Directories
cwd = os.getcwd()  # Current working directory
sub_folder_name = "paper"
mesh_dir = jp(cwd, "mesh", sub_folder_name)  # Mesh files directory

labelsize = 12
bpos = 0.38

mshf = jp(mesh_dir, "Mesh.dat")
ncol, nlin, nelem, blocks, centerxy, nodes = crc.mesh_geometry(mshf)

# %% MODEL MISFIT
true_model = jp(cwd, "data", sub_folder_name, "models", "forwardscenario.dat")

# Load true model
resmod = crc.datread(true_model, start=1)[:, 2]
ipmod = crc.datread(true_model, start=1)[:, 3]
m2p = -1.234598

res_levels = 10**np.linspace(min(resmod), max(resmod), 10)
ip_levels = np.linspace(min(ipmod / m2p), 150, 10)

true_data = crc.datread(jp(cwd, "data", "paper", "field_data.dat"), start=1)
a = true_data[:, 0] * 5
b = true_data[:, 1] * 5
m = true_data[:, 2] * 5
n = true_data[:, 3] * 5

xy = np.column_stack([(m + n) / 2, -np.min(
    ((m + n) / 2 - a, b - (m + n) / 2), axis=0) / 3])
cwd = os.getcwd()  # Current working directory
sub_folder_name = "paper"
mesh_dir = jp(cwd, "mesh", sub_folder_name)  # Mesh files directory
mshf = "mesh/paper/Mesh.dat"

# Mesh
ncol, nlin, nelem, blocks, centerxy, nodes = crc.mesh_geometry(mshf)

# IP conversion factor
m2p = -1.234598  # crc.mtophase(ncycles=1, pulse_l=3.5, tmin=0.02, tmax=2.83)

# %% MODEL MISFIT
result_folder = "results/paper/FM1B/config"
true_model = jp(result_folder, "fm1b_model.dat")
# Load true model
resmod = crc.datread(true_model, start=1)[:, 2]
# res_levels = 10 ** np.linspace(min(resmod), max(resmod), 7)
# res_levels = 10**np.array([0]+sorted(set(resmod)))
res_levels = 10**np.linspace(min(resmod), max(resmod), 8)

model_map(
    polygons=blocks,
    vals=10**resmod,
    log=1,
    cbpos=0.35,
    levels=res_levels,
    binned=False,
    folder=result_folder,
    fontsize=10,
    labelsize=12,
    figname="res_mod",