Beispiel #1
0
# # 
# icsd.wr=1 #weight regularization
# icsd.run_single()
# icsd.run_pareto()

# -----------------------------------#
# apply here a smallness contrainst to the regularisation
from icsd3d_class import iCSD3d_Class as i3d
from plotters import mpl_plot

# mpl_plot.showObs2d(path2files)


# import iCSD3d_Class as i3d

icsd=i3d(dirName=path2files)   
icsd.type='2d'
icsd.obs_err='sqrt' # choose between constant weight and w = 1/sqrt(abs(obs))
icsd.wr=1 #weight regularization
icsd.alphaSxy=True
icsd.x0_prior=True
icsd.x0_ini_guess=True # initial guess
icsd.icsd_init()


icsd.estimateM0(methodM0='F1',show=True)

# icsd.clim=[0,0.1]
# icsd.run_single()

sol= icsd.invert()
Beispiel #2
0
# maindir='E:/Padova/Software/SourceInversion/branch_icsd_dev/'
# os.chdir(maindir)


# -----------------------------------#
# Example time-lapse salt tracer
# show the importance of an anisotropic spatial regularisation
# -----------------------------------#
from icsd3d_class import iCSD3d as i3d
import pyvista as pv

tstep=1
path2files="./Salt_tracer/t"+str(tstep) +'/'

icsd_Salt=i3d(dirName=path2files)   
icsd_Salt.type='2d'
# icsd3d_Salt.sim="SMALMtimeReg"+str(tstep)+".txt"
# icsd3d_Salt.obs="OMALMtimeReg"+str(tstep)+"_synt.txt"
icsd_Salt.createSurvey(fname_obs="OMALMtimeReg"+str(tstep)+"_synt.txt",fname_sim="SMALMtimeReg"+str(tstep)+".txt")

icsd_Salt.coord_file="VRTeCoord.txt"
icsd_Salt.regMesh='strc'
icsd_Salt.x0_prior=False
icsd_Salt.x0_ini_guess=False # initial guess
# icsd3d_TL_RWU.wr=0
icsd_Salt.plotElecs=True
# icsd3d_Salt.clim=[0,0.1]

icsd_Salt.obs_err='sqrt' # choose between constant weight and w = 1/sqrt(abs(obs))
Beispiel #3
0
ZZ = -18.75
Rsoil = 1
SimName = 'MSoilR' + str(Rsoil) + 'AnoR1Z' + str(ZZ) + 'L10h2.5'

path2files = './' + SimName + '/Data/'

# -----------------------------------#
# Example block sensitivity analysis
# -----------------------------------#
from icsd3d_class import iCSD3d_Class as i3d

# import mpl_plot
import pyvista as pv

icsd3d_SensApriori = i3d(dirName=path2files)
icsd3d_SensApriori.type = '3d'
icsd3d_SensApriori.sim = 'SIM_sens3d.txt'
icsd3d_SensApriori.obs = 'OBS_sens3d.txt'

icsd3d_SensApriori.estimateM0(methodM0='F1', show=True)
icsd3d_SensApriori.estimateM0(methodM0='Pearson', show=True)

icsd3d_Sens = i3d(dirName=path2files)
icsd3d_Sens.type = '3d'
icsd3d_Sens.sim = 'SIM_sens3d.txt'
icsd3d_Sens.obs = 'OBS_sens3d.txt'
icsd3d_Sens.coord_file = 'VRTeCoord.txt'
icsd3d_Sens.regMesh = 'unstrc'
icsd3d_Sens.obs_err = 'sqrt'  # choose between constant weight and w = 1/sqrt(abs(obs))
Beispiel #4
0
# ------------------------------------------------#
# Example 2d simple synthetic sensitivity analysis
# ------------------------------------------------#
from icsd3d_class import iCSD3d_Class as i3d
from plotters import mpl_plot

SoilR=1
AnoR=1
AnoRstr = str(AnoR).replace(".", "")
CorERTBack=1
ertSchemeFull=0
SimName='M' + 'SoilR' + str(SoilR) + 'AnoR' + str(AnoRstr) +  'Cert' + str(CorERTBack==1)  + 'ERTscheme' + str(ertSchemeFull==1) + '/'


path2files= './' + SimName
icsd3d_Sens=i3d(dirName=path2files)   
icsd3d_Sens.type='2d'
icsd3d_Sens.sim='MSoilR'+ str(SoilR) + 'AnoR' + AnoRstr + 'Cert' + str(CorERTBack==1) + 'ERTscheme' + str(ertSchemeFull==1) + ".txt"
icsd3d_Sens.obs='OMSoilR'+ str(SoilR) +'AnoR'+AnoRstr + 'Cert' + str(CorERTBack==1) + 'ERTscheme' + str(ertSchemeFull==1) + "_synt.txt"

# show observation data
# mpl_plot.showObs2d(path2files,filename=icsd3d_Sens.obs)

# # Unconstrainsted current source densities inversion
# icsd3d_Sens.invert(regMesh='unstrc',wr=10,x0_prior=True)
 
# # Estimate initial model
# icsd3d_Sens.estimateM0(methodM0='F1', show=True)

# # Constrainsted current source densities inversion
# icsd3d_Sens.invert(wr=0.01,x0_prior=True,alphax0=1)
# a delineaer 
from icsd3d_class import iCSD3d as i3d
from plotters import mpl_plot

# No_hole Ano1_bh_lambda_1
path2files="./Landfill_3d/Ano_0_E13/" # Test elec outside landfill
# path2files="example_2add_later/Landfill_3d/Ano_0_E89/" # Test 2 elec outside landfill
# path2files="example_2add_later/Landfill_3d/Ano_0_EA/"  # Real A position without anomaly
# path2files="example_2add_later/Landfill_3d/Ano_1_BH_EA/"  # Real A position with big hole anomaly
path2files="./Landfill_3d/Ano_1_SH_EA/"  # Real A position  with small hole anomaly
# path2files="examples/Landfill_3d/RealData_Ano_0/"  # Real data / without anomaly
# path2files="examples/Landfill_3d/RealData_Ano_1_SH/"  # Real data / with (small) anomaly

# icsd3d_landfill.pareto

icsd3d_landfill=i3d(dirName=path2files)  
 

icsd3d_landfill.type='3d'
icsd3d_landfill.sim="SAno.txt" # or SNoAno / SAno
icsd3d_landfill.obs="OAno_synt.txt" # or ONoAno_synt / OAno_synt / Obs_real

test = icsd3d_landfill.createSurvey(icsd3d_landfill.obs, icsd3d_landfill.sim)


icsd3d_landfill.coord_file="VRTeCoord.txt"

# icsd3d_landfill.estimateM0(methodM0='Pearson',show=True)
icsd3d_landfill.invert(plotElecs=True,mesh='mesh3d_rhomap.vtk')

Beispiel #6
0
def icsd_TDIP_plant(icsdPath,inputfile,all_gates,IPcurves):
       
    #mpl_plot.showObs2d(path2files+'/')
    sep = '_'
    NameSave = 'O'+ os.path.basename(inputfile).split(sep, 1)[0] + '.txt'

    icsd=i3d(dirName=icsdPath +'/')   
    icsd.createSurvey(fname_obs=NameSave,fname_sim='VRTeSim.txt')
    icsd.regMesh='strc'
    icsd.type='2d'
    #icsd.mesh='invdir/fwd/forward_model.vtk'
    icsd.obs_err='const' # sqrt choose between constant weight and w = 1/sqrt(abs(obs))
    icsd.wr=1 #weight regularization
    icsd.alphaSxy=False
    icsd.x0_prior=False
    icsd.x0_ini_guess=False # initial guess
    # icsd.plotElecs=False
    icsd.method_m0='F1'
    m0 = icsd.estimateM0(method_m0='F1',show=True)

    # icsd.clim=[0,0.1]
    # icsd.run_single()
    icsd.alphax0=1
    
    sol= icsd.invert(wr=1)
    
    fig, ax = plt.subplots()
    icsd.showResults(ax=ax)
    plt.show()


    if all_gates:
        
        NameSave = 'O'+ os.path.basename(inputfile).split(sep, 1)[0] + '.txt'
        fig, ax = plt.subplots()
        icsd=i3d(dirName=icsdPath +'/')   
        icsd.createSurvey(fname_obs=NameSave,fname_sim='VRTeSim.txt')
        icsd.method_m0='F1'
        m0 = icsd.estimateM0(method_m0='F1',show=True,ax=ax)
        
        fig, ax = plt.subplots(nrows=1, ncols=3)
        for i, g in enumerate(range(1,20,8)):
            NameSave = 'O'+ os.path.basename(inputfile).split(sep, 1)[0] + 'M'+ str(g) + '.txt'
            print(NameSave)
            icsd=i3d(dirName=icsdPath +'/')   
            icsd.createSurvey(fname_obs=NameSave,fname_sim='VRTeSim.txt')
            m0 = icsd.estimateM0(method_m0='F1',show=True, ax=ax[i])
            ax[i].set_title('Gate t:' + str(IPcurves.t[g]) + 's')
            plt.tight_layout()
    
    
        fig, ax = plt.subplots(nrows=1, ncols=4)
        for i, g in enumerate(range(1,20,5)):
            NameSave = 'O'+ os.path.basename(inputfile).split(sep, 1)[0] + 'M'+ str(g) + '.txt'
            icsd=i3d(dirName=icsdPath +'/')   
            icsd.createSurvey(fname_obs=NameSave,fname_sim='VRTeSim.txt')
            sol= icsd.invert(wr=1)
            icsd.showResults(ax=ax[i])
            plt.show()
            ax[i].set_title('Gate t:' + str(IPcurves.t[g]) + 's')

        #    fig, ax = plt.subplots(nrows=1, ncols=4)
        #    icsd.createTimeLapseSurvey(fname_obs=NameSave+'M'+str(g),fname_sim='VRTeSim.txt')
        #    for i, g in enumerate(range(1,20,5)):
        #        icsd=i3d(dirName=path2files +'/')   
        #        icsd.icsd_init(icsd)
        #        sol= icsd.invert(wr=1)
        #        icsd.showResults(ax=ax[i])
        #        plt.show()
        #        ax[i].set_title('Gate t:' + str(IPcurves.t[g]) + 's')