# # # 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()
# 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))
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))
# ------------------------------------------------# # 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')
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')