Ejemplo n.º 1
0
import numpy
from matplotlib import pyplot
from fatiando.ui.gui import BasinTri
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 = BasinTri(area, nodes, xp, zp)
app.run()
gz = app.get_data()
dens = app.densities[0]
model = Polygon(1000 * numpy.array(app.polygons[0]))
dm = basin2d.TriangularGzDM(xp, zp, gz, prop=dens, verts=nodes)
solver = gradient.levmarq(initial=(50000, 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')
pyplot.legend(loc='lower left', numpoints=1)
pyplot.ylabel("mGal")
pyplot.xlim(0, 100000)
pyplot.subplot(2, 1, 2)
Ejemplo n.º 2
0
import numpy
from fatiando.ui.gui import BasinTri
import cPickle as pickle

with open('exercicio6.pickle') as f:
    data = pickle.load(f)
    xp = data['xp']
    zp = data['zp']
    nodes = data['nodes'][0]
    gz = data['gz']
    density = data['density']

area = (0, 100000, 0, 5000)
xp = numpy.arange(0, 100000, 1000)
zp = numpy.zeros_like(xp)
app = BasinTri(area, nodes[0:2], xp, zp, gz)
app.densities[0] = density
app.run()

with open('exercicio6-modelo.pickle', 'w') as f:
    data = {
        'xp': xp,
        'zp': zp,
        'nodes': 1000 * numpy.array(app.polygons[0]),
        'gz': app.get_data(),
        'density': app.densities[0]
    }
    pickle.dump(data, f)