from fatiando.potential import basin2d from fatiando.inversion import gradient from fatiando.mesher.dd import Polygon from fatiando import vis area = (0, 100000, 0, 5000) xp = numpy.arange(0, 100000, 1000) zp = numpy.zeros_like(xp) nodes = [[20000, 1], [80000, 1]] app = BasinTrap(area, nodes, xp, zp) app.run() gz = app.get_data() dens = app.densities[0] model = Polygon(1000 * numpy.array(app.polygons[0])) dm = basin2d.TrapezoidalGzDM(xp, zp, gz, prop=dens, verts=nodes) solver = gradient.levmarq(initial=(2500, 2500)) p, residuals = basin2d.trapezoidal([dm], solver) estimate = Polygon( [nodes[0], nodes[1], [nodes[1][0], p[0]], [nodes[0][0], p[1]]]) pyplot.figure() pyplot.subplot(2, 1, 1) pyplot.title("Anomalia de gravidade") pyplot.plot(xp, gz, 'ok', label='Observada') pyplot.plot(xp, gz - residuals[0], '-r', linewidth=2, label='Predita') leg = pyplot.legend(loc='lower left', numpoints=1) leg.get_frame().set_alpha(0.5) pyplot.ylabel("mGal") pyplot.xlim(0, 100000) pyplot.subplot(2, 1, 2) vis.map.polygon(estimate,
from matplotlib import pyplot import numpy from fatiando.heat import climatesignal from fatiando.inversion.gradient import levmarq from fatiando import vis, utils params = __import__('exercicio3e4_entrada') zp = numpy.arange(0, 100, 1) temp, error = utils.contaminate(climatesignal.linear(params.amplitude, params.idade, zp), params.ruido, percent=True, return_stddev=True) solver = levmarq(initial=params.inicial) p, residuals = climatesignal.invert_linear(temp, zp, solver) est_amp, est_age = p pyplot.figure(figsize=(12, 5)) pyplot.subplot(1, 2, 1) pyplot.title("Sinal climatico") pyplot.plot(temp, zp, 'ok', label='Observado') pyplot.plot(temp - residuals, zp, '--r', linewidth=3, label='Predito') pyplot.legend(loc='lower right', numpoints=1) pyplot.xlabel("Temperatura (C)") pyplot.ylabel("Z") pyplot.ylim(100, 0) ax = pyplot.subplot(1, 2, 2) ax2 = pyplot.twinx() pyplot.title("Idade e amplitude") width = 0.3 ax.bar([1 - width], [params.idade], width, color='b', label="Verdadeiro")
from fatiando.potential import basin2d from fatiando.inversion import gradient from fatiando.mesher.dd import Polygon from fatiando import vis area = (0, 100000, 0, 5000) with open('exercicio5e6.pickle') as f: data = pickle.load(f) xp = data['xp'] zp = data['zp'] nodes = data['nodes'][0] gz = data['gz'] dens = data['density'] model = Polygon(nodes) dm = basin2d.TriangularGzDM(xp, zp, gz, prop=dens, verts=nodes[0:2]) solver = gradient.levmarq(initial=(2500, 2500)) p, residuals = basin2d.triangular([dm], solver) estimate = Polygon([nodes[0], nodes[1], p]) pyplot.figure() pyplot.subplot(2, 1, 1) pyplot.title("Anomalia de gravidade") pyplot.plot(xp, gz, 'ok', label='Observada') pyplot.plot(xp, gz - residuals[0], '-r', linewidth=2, label='Predita') leg = pyplot.legend(loc='lower left', numpoints=1) leg.get_frame().set_alpha(0.5) pyplot.ylabel("mGal") pyplot.xlim(0, 100000) pyplot.subplot(2, 1, 2) vis.map.polygon(estimate, 'o-r', linewidth=2, fill='r', alpha=0.3, label='Estimado')
from matplotlib import pyplot import numpy import cPickle as pickle from fatiando.heat import climatesignal from fatiando.inversion.gradient import levmarq from fatiando import vis, utils params = __import__('exercicio5_entrada') with open('exercicio5.pickle') as f: zp, temp = pickle.load(f) solver = levmarq(initial=params.inicial) p, resabr = climatesignal.invert_abrupt(temp, zp, solver) ampabr, ageabr = p solver = levmarq(initial=params.inicial) p, reslin = climatesignal.invert_linear(temp, zp, solver) amplin, agelin = p pyplot.figure(figsize=(12,5)) pyplot.subplot(1, 2, 1) pyplot.title("Sinal climatico") pyplot.plot(temp, zp, 'ok', label='Observado') pyplot.plot(temp - reslin, zp, '-b', linewidth=3, label='Linear') pyplot.plot(temp - resabr, zp, '-r', linewidth=3, label='Abrupto') pyplot.legend(loc='lower right', numpoints=1) pyplot.xlabel("Temperatura (C)") pyplot.ylabel("Z") pyplot.ylim(110, 10) ax = pyplot.subplot(1, 2, 2) ax2 = pyplot.twinx() pyplot.title("Idade e amplitude") width = 0.3
from fatiando.seismic import profile from fatiando.inversion import gradient from fatiando import vis, utils, ui import cPickle as pickle params = __import__('exercicio4_entrada') with open(params.dados) as f: zp, tts, thickness, velocity = pickle.load(f) mu = params.variacao_total beta = params.beta area = (0, 10000, 0, 600) vmin, vmax, zmin, zmax = area thick = float(sum(thickness)) / float(params.camadas) model = params.camadas * [thick] solver = gradient.levmarq(initial=0.000001 * numpy.ones(len(model))) p, residuals = profile.invert_vertical(tts, zp, model, solver, sharp=mu, beta=beta) pyplot.figure(figsize=(12, 5)) pyplot.subplot(1, 2, 1) pyplot.grid() pyplot.title("Perfilagem sismica vertical") pyplot.plot(tts, zp, 'ok', label='Observado') pyplot.plot(tts - residuals, zp, '-r', label='Predito') leg = pyplot.legend(loc='lower left', numpoints=1) leg.get_frame().set_alpha(0.5)
from fatiando.seismic import profile from fatiando.inversion import gradient from fatiando import vis, utils, ui import cPickle as pickle params = __import__('exercicio4_entrada') with open(params.dados) as f: zp, tts, thickness, velocity = pickle.load(f) mu = params.variacao_total beta = params.beta area = (0, 10000, 0, 600) vmin, vmax, zmin, zmax = area thick = float(sum(thickness))/float(params.camadas) model = params.camadas*[thick] solver = gradient.levmarq(initial=0.000001*numpy.ones(len(model))) p, residuals = profile.invert_vertical(tts, zp, model, solver, sharp=mu, beta=beta) pyplot.figure(figsize=(12,5)) pyplot.subplot(1, 2, 1) pyplot.grid() pyplot.title("Perfilagem sismica vertical") pyplot.plot(tts, zp, 'ok', label='Observado') pyplot.plot(tts - residuals, zp, '-r', label='Predito') leg = pyplot.legend(loc='lower left', numpoints=1) leg.get_frame().set_alpha(0.5) pyplot.xlabel("Tempo de chegada (s)") pyplot.ylabel("Profundidade (m)") pyplot.ylim(sum(thickness), 0) pyplot.subplot(1, 2, 2) pyplot.grid()