""" Meshing: Make and plot a tesseroid mesh with topography """ from fatiando import gridder, utils, mesher from fatiando.vis import myv w, e = -2, 2 s, n = -2, 2 bounds = (w, e, s, n, 500000, 0) x, y = gridder.regular((w, e, s, n), (50, 50)) height = (250000 + -100000*utils.gaussian2d(x, y, 1, 5, x0=-1, y0=-1, angle=-60) + 250000*utils.gaussian2d(x, y, 1, 1, x0=0.8, y0=1.7)) mesh = mesher.TesseroidMesh(bounds, (20, 50, 50)) mesh.carvetopo(x, y, height) scene = myv.figure(zdown=False) myv.tesseroids(mesh) myv.earth(opacity=0.3) myv.continents() scene.scene.camera.position = [21592740.078245595, 22628783.944262519, -28903782.916664094] scene.scene.camera.focal_point = [5405474.2152075395, -1711034.715136874, 2155879.3486608281] scene.scene.camera.view_angle = 1.6492674416639987 scene.scene.camera.view_up = [0.91713422625547714, -0.1284658947859818, 0.37730799740742887] scene.scene.camera.clipping_range = [20169510.286021926, 69721043.718536735] scene.scene.camera.compute_view_plane_normal() scene.scene.render() myv.show()
from fatiando.vis import mpl, myv log = logger.get() log.info(logger.header()) # Get the data from their website and convert it to tesseroids # Will download the archive and save it with the default name log.info("Fetching CRUST2.0 model") archive = io.fetch_crust2() log.info("Converting to tesseroids") model = io.crust2_to_tesseroids(archive) log.info(' model size: %d' % (len(model))) # Plot the tesseroid model myv.figure(zdown=False) myv.tesseroids(model, 'density') myv.continents(linewidth=3) myv.show() # Make the computation grid area = (-180, 180, -80, 80) shape = (100, 100) lons, lats, heights = gridder.regular(area, shape, z=250000) # Divide the model into nproc slices and calculate them in parallel log.info('Calculating...') def calculate(chunk): return gravmag.tesseroid.gz(lons, lats, heights, chunk) def split(model, nproc): chunksize = len(model)/nproc for i in xrange(nproc - 1):
""" GravMag: Forward modeling of the gravitational potential and its derivatives using tesseroids """ import time from fatiando import gravmag, gridder, utils from fatiando.mesher import Tesseroid from fatiando.vis import mpl, myv model = [ Tesseroid(-60, -55, -30, -27, 0, -500000, props={'density': 200}), Tesseroid(-66, -62, -18, -12, 0, -300000, props={'density': -500}) ] # Show the model before calculating scene = myv.figure(zdown=False) myv.tesseroids(model, 'density') myv.continents(linewidth=2) myv.earth(opacity=0.8) myv.meridians(range(0, 360, 45), opacity=0.2) myv.parallels(range(-90, 90, 45), opacity=0.2) scene.scene.camera.position = [ 23175275.131412581, -16937347.013663091, -4924328.2822419703 ] scene.scene.camera.focal_point = [0.0, 0.0, 0.0] scene.scene.camera.view_angle = 30.0 scene.scene.camera.view_up = [ 0.083030001958377356, -0.17178720527713925, 0.98162883763562181 ] scene.scene.camera.clipping_range = [9229054.5133903362, 54238225.321054712] scene.scene.camera.compute_view_plane_normal() scene.scene.render()
tesseroid = Tesseroid(10, 20, 50, 60, 10**6, 0) red, green, blue = (1, 0, 0), (0, 1, 0), (0, 0, 1) white, black = (1, 1, 1), (0, 0, 0), myv.figure() # Make the prism red with blue edges, despite its density myv.prisms([prism], 'density', color=red, edgecolor=blue) # and the polyprism green with blue edges myv.title('Body + edge colors') myv.figure() # For wireframes, color is usually set by the density. # Overwrite this by setting *color* # *edgecolor* is ignored myv.polyprisms([polyprism], 'density', style='wireframe', color=green, edgecolor=red, linewidth=2) myv.title('Wireframe colors') # Black background, white lines, green tesseroid myv.figure(zdown=False, color=black) myv.earth() myv.continents(color=white) myv.tesseroids([tesseroid], color=green, edgecolor=white) myv.title('Black background', color=white) myv.show()
""" Meshing: Make and plot a tesseroid mesh """ from fatiando import mesher from fatiando.vis import myv mesh = mesher.TesseroidMesh((-60, 60, -30, 30, 100000, -500000), (10, 10, 10)) myv.figure(zdown=False) myv.tesseroids(mesh) myv.earth(opacity=0.3) myv.continents() myv.meridians(range(-180, 180, 30)) myv.parallels(range(-90, 90, 30)) myv.show()
""" Meshing: Make and plot a tesseroid with the Earth """ from fatiando import mesher from fatiando.vis import myv model = mesher.Tesseroid(-10, 10, 50, 60, 500000, 0) myv.figure(zdown=False) myv.tesseroids([model]) myv.earth() myv.continents() myv.meridians(range(-180, 180, 10)) myv.parallels(range(-90, 90, 10)) myv.show()
from fatiando.vis import myv prism = Prism(1, 2, 1, 2, 0, 1, {'density': 1}) polyprism = PolygonalPrism([[3, 1], [4, 2], [5, 1]], -1, 2, {'density': 2}) tesseroid = Tesseroid(10, 20, 50, 60, 10 ** 6, 0) red, green, blue = (1, 0, 0), (0, 1, 0), (0, 0, 1) white, black = (1, 1, 1), (0, 0, 0), myv.figure() # Make the prism red with blue edges, despite its density myv.prisms([prism], 'density', color=red, edgecolor=blue) # and the polyprism green with blue edges myv.title('Body + edge colors') myv.figure() # For wireframes, color is usually set by the density. # Overwrite this by setting *color* # *edgecolor* is ignored myv.polyprisms([polyprism], 'density', style='wireframe', color=green, edgecolor=red, linewidth=2) myv.title('Wireframe colors') # Black background, white lines, green tesseroid myv.figure(zdown=False, color=black) myv.earth() myv.continents(color=white) myv.tesseroids([tesseroid], color=green, edgecolor=white) myv.title('Black background', color=white) myv.show()