no2xy = ms['node'] el2no = ms['element'] # report the status of the 2D mesh quality.fstats(no2xy, el2no) """ 1. FEM forward simulations """ # setup EIT scan conditions elDist, step = 7, 1 exMtx = eit_scan_lines(16, elDist) # calculate simulated data fwd = forward(ms, elPos) # in python, index start from 0 exLine = exMtx[1].ravel() # change alpha anomaly = [{'x': 0.40, 'y': 0.40, 'z': 0.0, 'd': 0.30, 'alpha': 100.0}] ms_test = mesh.set_alpha(ms, anom=anomaly, background=1.0) tri_perm = ms_test['alpha'] node_perm = pdeprtni(no2xy, el2no, np.real(tri_perm)) # solving once using fem f, _ = fwd.solve_once(exLine, tri_perm) f = np.real(f) # mplot.tetplot(p, t, edge_color=(0.2, 0.2, 1.0, 1.0), alpha=0.01) mplot.tetplot(no2xy, el2no, vertex_color=f, alpha=1.0)
plt.show() """ 2. FEM forward simulations """ # setup EIT scan conditions elDist, step = 1, 1 exMtx = eit_scan_lines(16, elDist) # calculate simulated data fwd = forward(ms, elPos) f0 = fwd.solve(exMtx, step=step, perm=ms['alpha']) f1 = fwd.solve(exMtx, step=step, perm=ms1['alpha']) """ 3. naive inverse solver using back-projection """ eit = bp.BP(ms, elPos, exMtx, step=1, parser='std', weight='none') ds = eit.solve(f1.v, f0.v) ds = 10000. * pdeprtni(no2xy, el2no, ds) # plot fig = plt.figure() ax1 = fig.add_subplot(111) im = ax1.tripcolor(no2xy[:, 0], no2xy[:, 1], el2no, ds, cmap=plt.cm.viridis) ax1.set_title(r'$\Delta$ Conductivities') ax1.axis('equal') fig.colorbar(im) """ for production figures, use dpi=300 or render pdf """ fig.set_size_inches(6, 4) # fig.savefig('../figs/demo_bp.png', dpi=96) plt.show()
alpha = np.real(ms1['alpha'] - ms0['alpha']) """ ax1. FEM forward simulations """ # setup EIT scan conditions elDist, step = 1, 1 exMtx = eit_scan_lines(16, elDist) # calculate simulated data fwd = forward(ms, elPos) f0 = fwd.solve(exMtx, step=step, perm=ms0['alpha']) f1 = fwd.solve(exMtx, step=step, perm=ms1['alpha']) """ ax2. BP """ eit = bp.BP(ms, elPos, exMtx, step=1, parser='std') ds = eit.solve(f1.v, f0.v, normalize=True) ds_bp = pdeprtni(no2xy, el2no, ds) """ ax3. JAC """ eit = jac.JAC(ms, elPos, exMtx=exMtx, step=step, perm=1., parser='std', p=0.2, lamb=0.001, method='kotre') # parameter tuning is needed for better display ds = eit.solve(f1.v, f0.v) ds_jac = pdeprtni(no2xy, el2no, ds) """ ax4. GREIT """ eit = greit.GREIT(ms, elPos, exMtx=exMtx, step=step, parser='std') ds = eit.solve(f1.v, f0.v) x, y, ds_greit = eit.mask_value(ds, mask_value=np.NAN) """ build for EIT2016b (orig: 300p x 300p, 150dpi) """