def setup(): global model, x, y, z, inc, dec, struct_ind, field, xderiv, yderiv, \ zderiv, base, pos inc, dec = -30, 50 pos = np.array([1000, 1000, 200]) model = Sphere(pos[0], pos[1], pos[2], 1, {'magnetization': utils.ang2vec(10000, inc, dec)}) struct_ind = 3 shape = (128, 128) x, y, z = gridder.regular((0, 3000, 0, 3000), shape, z=-1) base = 10 field = utils.nt2si(sphere.tf(x, y, z, [model], inc, dec)) + base xderiv = fourier.derivx(x, y, field, shape) yderiv = fourier.derivy(x, y, field, shape) zderiv = fourier.derivz(x, y, field, shape)
""" from fatiando import mesher, gridder, utils from fatiando.gravmag import prism, transform from fatiando.vis import mpl model = [mesher.Prism(-100, 100, -100, 100, 0, 2000, {'magnetization': 10})] area = (-5000, 5000, -5000, 5000) shape = (100, 100) z0 = -500 x, y, z = gridder.regular(area, shape, z=z0) inc, dec = -30, 0 tf = utils.contaminate(prism.tf(x, y, z, model, inc, dec), 0.001, percent=True) # Need to convert gz to SI units so that the result is also in SI total_grad_amp = transform.tga(x, y, utils.nt2si(tf), shape) mpl.figure() mpl.subplot(1, 2, 1) mpl.title("Original total field anomaly") mpl.axis('scaled') mpl.contourf(y, x, tf, shape, 30, cmap=mpl.cm.RdBu_r) mpl.colorbar(orientation='horizontal').set_label('nT') mpl.m2km() mpl.subplot(1, 2, 2) mpl.title("Total Gradient Amplitude") mpl.axis('scaled') mpl.contourf(y, x, total_grad_amp, shape, 30, cmap=mpl.cm.RdBu_r) mpl.colorbar(orientation='horizontal').set_label('nT/m') mpl.m2km() mpl.show()
# The regional field inc, dec = -45, 0 # Make a model bounds = [-5000, 5000, -5000, 5000, 0, 5000] model = [ Prism(-1500, -500, -500, 500, 1000, 2000, {'magnetization': 2})] # Generate some data from the model shape = (200, 200) area = bounds[0:4] xp, yp, zp = gridder.regular(area, shape, z=-1) # Add a constant baselevel baselevel = 10 # Convert from nanoTesla to Tesla because euler and derivatives require things # in SI tf = (utils.nt2si(prism.tf(xp, yp, zp, model, inc, dec)) + baselevel) # Calculate the derivatives using FFT xderiv = fourier.derivx(xp, yp, tf, shape) yderiv = fourier.derivy(xp, yp, tf, shape) zderiv = fourier.derivz(xp, yp, tf, shape) mpl.figure() titles = ['Total field', 'x derivative', 'y derivative', 'z derivative'] for i, f in enumerate([tf, xderiv, yderiv, zderiv]): mpl.subplot(2, 2, i + 1) mpl.title(titles[i]) mpl.axis('scaled') mpl.contourf(yp, xp, f, shape, 50) mpl.colorbar() mpl.m2km() mpl.show()
""" from fatiando import mesher, gridder, utils from fatiando.gravmag import prism, fourier from fatiando.vis import mpl model = [mesher.Prism(-100,100,-100,100,0,2000,{'magnetization':10})] area = (-5000, 5000, -5000, 5000) shape = (100, 100) z0 = -500 xp, yp, zp = gridder.regular(area, shape, z=z0) inc, dec = -30, 0 tf = utils.contaminate(prism.tf(xp, yp, zp, model, inc, dec), 0.001, percent=True) # Need to convert gz to SI units so that the result is also in SI ansig = fourier.ansig(xp, yp, utils.nt2si(tf), shape) mpl.figure() mpl.subplot(1, 2, 1) mpl.title("Original total field anomaly") mpl.axis('scaled') mpl.contourf(yp, xp, tf, shape, 30) mpl.colorbar(orientation='horizontal') mpl.m2km() mpl.subplot(1, 2, 2) mpl.title("Analytic signal") mpl.axis('scaled') mpl.contourf(yp, xp, ansig, shape, 30) mpl.colorbar(orientation='horizontal') mpl.m2km() mpl.show()
# The regional field inc, dec = -45, 0 # Make a model bounds = [-5000, 5000, -5000, 5000, 0, 5000] model = [ mesher.Prism(-1500, -500, -500, 500, 1000, 2000, {'magnetization':2})] # Generate some data from the model shape = (200, 200) area = bounds[0:4] xp, yp, zp = gridder.regular(area, shape, z=-1) # Add a constant baselevel baselevel = 10 # Convert from nanoTesla to Tesla because euler and derivatives require things # in SI tf = (utils.nt2si(gravmag.prism.tf(xp, yp, zp, model, inc, dec)) + baselevel) # Calculate the derivatives using FFT xderiv = gravmag.fourier.derivx(xp, yp, tf, shape) yderiv = gravmag.fourier.derivy(xp, yp, tf, shape) zderiv = gravmag.fourier.derivz(xp, yp, tf, shape) mpl.figure() titles = ['Total field', 'x derivative', 'y derivative', 'z derivative'] for i, f in enumerate([tf, xderiv, yderiv, zderiv]): mpl.subplot(2, 2, i + 1) mpl.title(titles[i]) mpl.axis('scaled') mpl.contourf(yp, xp, f, shape, 50) mpl.colorbar() mpl.m2km() mpl.show()
# The regional field inc, dec = -45, 0 # Make a model bounds = [-5000, 5000, -5000, 5000, 0, 5000] model = [ mesher.Prism(-1500, -500, -1500, -500, 1000, 2000, {'magnetization':2}), mesher.Prism(500, 1500, 500, 2000, 1000, 2000, {'magnetization':2})] # Generate some data from the model shape = (100, 100) area = bounds[0:4] xp, yp, zp = gridder.regular(area, shape, z=-1) # Add a constant baselevel baselevel = 10 # Convert from nanoTesla to Tesla because euler and derivatives require things # in SI tf = (utils.nt2si(gravmag.prism.tf(xp, yp, zp, model, inc, dec)) + baselevel) # Calculate the derivatives using FFT xderiv = gravmag.fourier.derivx(xp, yp, tf, shape) yderiv = gravmag.fourier.derivy(xp, yp, tf, shape) zderiv = gravmag.fourier.derivz(xp, yp, tf, shape) mpl.figure() titles = ['Total field', 'x derivative', 'y derivative', 'z derivative'] for i, f in enumerate([tf, xderiv, yderiv, zderiv]): mpl.subplot(2, 2, i + 1) mpl.title(titles[i]) mpl.axis('scaled') mpl.contourf(yp, xp, f, shape, 50) mpl.colorbar() mpl.m2km()
log.info(logger.header()) # Make a model bounds = [-5000, 5000, -5000, 5000, 0, 5000] model = [ mesher.Prism(-1500, -500, -1500, -500, 1000, 2000, {'magnetization':2}), mesher.Prism(500, 1500, 500, 2000, 1000, 2000, {'magnetization':2})] # Generate some data from the model shape = (100, 100) area = bounds[0:4] xp, yp, zp = gridder.regular(area, shape, z=-1) # Add a constant baselevel baselevel = 10 # Convert from nanoTesla to Tesla because euler and derivatives require things # in SI tf = (utils.nt2si(gravmag.prism.tf(xp, yp, zp, model, inc=-45, dec=0)) + baselevel) # Calculate the derivatives using FFT xderiv = gravmag.fourier.derivx(xp, yp, tf, shape) yderiv = gravmag.fourier.derivy(xp, yp, tf, shape) zderiv = gravmag.fourier.derivz(xp, yp, tf, shape) mpl.figure() titles = ['Total field', 'x derivative', 'y derivative', 'z derivative'] for i, f in enumerate([tf, xderiv, yderiv, zderiv]): mpl.subplot(2, 2, i + 1) mpl.title(titles[i]) mpl.axis('scaled') mpl.contourf(yp, xp, f, shape, 50) mpl.colorbar() mpl.m2km()
""" from fatiando import mesher, gridder, utils, gravmag from fatiando.vis import mpl prisms = [mesher.Prism(-100, 100, -100, 100, 0, 2000, {'magnetization': 10})] area = (-5000, 5000, -5000, 5000) shape = (100, 100) z0 = -500 xp, yp, zp = gridder.regular(area, shape, z=z0) inc, dec = -30, 0 tf = utils.contaminate(gravmag.prism.tf(xp, yp, zp, prisms, inc, dec), 0.001, percent=True) # Need to convert gz to SI units so that the result is also in SI ansig = gravmag.fourier.ansig(xp, yp, utils.nt2si(tf), shape) mpl.figure() mpl.subplot(1, 2, 1) mpl.title("Original total field anomaly") mpl.axis('scaled') mpl.contourf(yp, xp, tf, shape, 30) mpl.colorbar(orientation='horizontal') mpl.m2km() mpl.subplot(1, 2, 2) mpl.title("Analytic signal") mpl.axis('scaled') mpl.contourf(yp, xp, ansig, shape, 30) mpl.colorbar(orientation='horizontal') mpl.m2km() mpl.show()
GravMag: Calculate the analytic signal of a total field anomaly using FFT """ from fatiando import mesher, gridder, utils, gravmag from fatiando.vis import mpl prisms = [mesher.Prism(-100,100,-100,100,0,2000,{'magnetization':10})] area = (-5000, 5000, -5000, 5000) shape = (100, 100) z0 = -500 xp, yp, zp = gridder.regular(area, shape, z=z0) inc, dec = -30, 0 tf = utils.contaminate(gravmag.prism.tf(xp, yp, zp, prisms, inc, dec), 0.001, percent=True) # Need to convert gz to SI units so that the result is also in SI ansig = gravmag.fourier.ansig(xp, yp, utils.nt2si(tf), shape) mpl.figure() mpl.subplot(1, 2, 1) mpl.title("Original total field anomaly") mpl.axis('scaled') mpl.contourf(yp, xp, tf, shape, 30) mpl.colorbar(orientation='horizontal') mpl.m2km() mpl.subplot(1, 2, 2) mpl.title("Analytic signal") mpl.axis('scaled') mpl.contourf(yp, xp, ansig, shape, 30) mpl.colorbar(orientation='horizontal') mpl.m2km() mpl.show()
from fatiando.vis import mpl, myv # The regional field inc, dec = 30, -15 # Make a model bounds = [-5000, 5000, -5000, 5000, 0, 5000] model = [mesher.Prism(-500, 500, -500, 500, 1000, 2000, {'magnetization': 2})] # Generate some data from the model shape = (100, 100) area = bounds[0:4] xp, yp, zp = gridder.regular(area, shape, z=-1) # Add a constant baselevel baselevel = 10 # Convert from nanoTesla to Tesla because euler and derivatives require things # in SI tf = (utils.contaminate(utils.nt2si( gravmag.prism.tf(xp, yp, zp, model, inc, dec)), 0.005, percent=True) + baselevel) # Calculate the derivatives using FFT xderiv = gravmag.fourier.derivx(xp, yp, tf, shape) yderiv = gravmag.fourier.derivy(xp, yp, tf, shape) zderiv = gravmag.fourier.derivz(xp, yp, tf, shape) mpl.figure() titles = ['Total field', 'x derivative', 'y derivative', 'z derivative'] for i, f in enumerate([tf, xderiv, yderiv, zderiv]): mpl.subplot(2, 2, i + 1) mpl.title(titles[i]) mpl.axis('scaled') mpl.contourf(yp, xp, f, shape, 50) mpl.colorbar()
GravMag: Calculate the analytic signal of a total field anomaly using FFT """ from fatiando import mesher, gridder, utils from fatiando.gravmag import prism, transform from fatiando.vis import mpl model = [mesher.Prism(-100, 100, -100, 100, 0, 2000, {'magnetization': 10})] area = (-5000, 5000, -5000, 5000) shape = (100, 100) z0 = -500 x, y, z = gridder.regular(area, shape, z=z0) inc, dec = -30, 0 tf = utils.contaminate(prism.tf(x, y, z, model, inc, dec), 0.001, percent=True) # Need to convert gz to SI units so that the result is also in SI total_grad_amp = transform.tga(x, y, utils.nt2si(tf), shape) mpl.figure() mpl.subplot(1, 2, 1) mpl.title("Original total field anomaly") mpl.axis('scaled') mpl.contourf(y, x, tf, shape, 30, cmap=mpl.cm.RdBu_r) mpl.colorbar(orientation='horizontal').set_label('nT') mpl.m2km() mpl.subplot(1, 2, 2) mpl.title("Total Gradient Amplitude") mpl.axis('scaled') mpl.contourf(y, x, total_grad_amp, shape, 30, cmap=mpl.cm.RdBu_r) mpl.colorbar(orientation='horizontal').set_label('nT/m') mpl.m2km() mpl.show()