{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "**Course website**: http://www.leouieda.com/geofisica1\n", "\n", "**Note**: This notebook is part of the course \"Geofísica 1\" of Geology program of the \n", "[Universidade do Estado do Rio de Janeiro](http://www.uerj.br/). \n", "All content can be freely used and adapted under the terms of the \n", "[Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/).\n", "\n", "![Creative Commons License](https://i.creativecommons.org/l/by/4.0/88x31.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Esse documento que você está usando é um [Jupyter notebook](http://jupyter.org/). É um documento interativo que mistura texto (como esse), código (como abaixo), e o resultado de executar o código (números, texto, figuras, videos, etc)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Prática 3 - Gravimetria - Isostasia e anomalia Bouguer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Objetivos\n", "\n", "* Entender os mecanismos de compensação isostática de Airy e Pratt\n", "* Cacular e visualizar a anomalia Bouguer para o mundo todo\n", "* Verificar a relação entre a anomalia Bouguer, topografia e equilíbrio isostático" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Instruções\n", "\n", "O notebook te fornecerá exemplos interativos que trabalham os temas abordados no questionário. Utilize esses exemplos para responder as perguntas.\n", "\n", "As células com números ao lado, como `In [1]:`, são código [Python](http://python.org/). Algumas dessas células não produzem resultado e servem de preparação para os exemplos interativos. Outras, produzem gráficos interativos. **Você deve executar todas as células, uma de cada vez**, mesmo as que não produzem gráficos.\n", "\n", "Para executar uma célula, clique em cima dela e aperte `Shift + Enter`. O foco (contorno verde ou cinza em torno da célula) deverá passar para a célula abaixo. Para rodá-la, aperte `Shift + Enter` novamente e assim por diante. Você pode executar células de texto que não acontecerá nada." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Preparação\n", "\n", "Exectute as células abaixo para carregar as componentes necessárias para nossa prática. Vamos utilizar várias *bibliotecas*, inclusive uma de geofísica chamada [Fatiando a Terra](http://www.fatiando.org)." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline\n", "from __future__ import division\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from mpl_toolkits.basemap import Basemap\n", "import ipywidgets as widgets\n", "from IPython.display import display\n", "import seaborn\n", "import fatiando\n", "from icgem import load_icgem_gdf" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "print(\"Usando a versão do Fatiando: {}\".format(fatiando.__version__))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Anomalia Bouguer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Na prática passada, vocês calcularam o distúrbio da gravidade ($\\delta$) removendo a gravidade da Terra Normal calculada no ponto de observação ($\\gamma_P$). Vimos que o distúrbio nos indica o estado de equilíbrio isostático da região: se $\\delta$ for pequeno e positivo a região encontra-se em equilíbro, caso contrário não está. A falta de equilíbrio isostático sugere que existem forças externas erguendo ou abaixando a topografia.\n", "\n", "Se quisermos ver o efeito gravitacional de coisas abaixo da topografia (Moho, bacias sedimentares e outras heterogeneidades), precisamos **remover o efeito gravitacional da topografia** do distúrbio. Para isso, precisamos calcular a atração gravitacional da massa topográfica (vamos chamar isso de $g_t$). A **anomalia Bouguer** é o distúrbio da gravidade menos o efeito da topografia:\n", "\n", "$$\\Delta g_{bg} = \\delta - g_t$$\n", "\n", "Um jeito simples de calcular $g_t$ é através de uma aproximação. Nesse caso, vamos aproximar toda a massa topográfica em baixo do ponto onde medimos a gravidade (P) por um platô infinito (o *platô de Bouguer*). Se a topografia abaixo do ponto P tem $H$ metros de **altitude em relação ao elipsóide**, podemos aproximar $g_t$ por:\n", "\n", "$$g_t \\approx 2 \\pi G \\rho H$$\n", "\n", "em que $\\rho$ é a densidade da topografia e $G$ é a contante gravitacional.\n", "\n", "Nos oceanos, não temos topografia acima do elipsóide. Porém, temos uma camada de água que não foi removida devidamente com a Terra Normal ($\\gamma_P$). Podemos utilizar a aproximação do platô de Bouguer para calcular o efeito gravitacional da camada de água e removê-la do distúrbio. Assim, teremos a anomalia Bouguer para regiões continentais e oceânicas." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculando a anomalia Bouguer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Vocês devem calcular a anomalia Bouguer para o mundo todo utilizando o LibreOffice Calc. \n", "Utilize a **planilha que vocês fizeram na aula passada**. Essa planilha deve conter os dados de gravidade e seu cálculo do distúrbio da gravidade. Nessa prática, vamos adicionar o cálculo da anomalia Bouguer a essa planilha.\n", "\n", "Caso tenha perdido a planilha, abra novamente os dados e salve como uma planilha no formato ODS. Utilize a fórmula abaixo para calcular $\\gamma$ (note que ainda falta a correção de ar-livre):\n", "\n", " =100000*(6378137*9.7803253359*cos(pi()*B2/180)^2 + 6356752.3142*9.8321849378*sin(pi()*B2/180)^2)/sqrt(6378137^2*cos(pi()*B2/180)^2 + 6356752.3142^2*sin(pi()*B2/180)^2)\n", "\n", "Para fazer os cálculos, vamos precisar o valor da altitude topográfica. Nos continentes, essa altitude é a mesma da altitude na qual os dados foram medidos. Já nos oceanos, a altitude de medição é zero (superfície da água). O que precisamos realmente é da batimetria nos oceanos. Por sorte, existem modelos digitais de terreno, como o [ETOPO1](http://www.ngdc.noaa.gov/mgg/global/global.html) que nos dão topografia nos continentes e batimetria nos oceanos. O arquivo `data/etopo1-0_5-mundo.gdf` contem os dados de topografia do ETOPO1 calculado nos mesmo pontos em que a gravidade foi medida.\n", "\n", "**Primeiro**: Abra a planilha. Antes de calcular o efeito da topografia, precisamos dos dados de topografia que estão no arquivo `data/etopo1-0_5-mundo.gdf`. Abra o arquivo com o Calc e copie a coluna de topografia para a planilha do distúrbio. \n", "\n", "**Segundo**: Calcule o efeito gravitacional da topografia utilizando o platô de Bouguer.\n", "\n", "* Utilize a densidade $\\rho_c = 2670\\ kg/m^3$ para a topografia. \n", "* Nos oceanos, utilize a densidade $\\rho_c$ para a crosta do elipsóide e $\\rho_a = 1040\\ kg/m^3$ para a água do mar.\n", "* Para obter o valor absoluto (módulo) de um valor no Calc, utilize a função `abs`. Ex: `=abs(A2)`\n", "* Para utilizar fórmulas diferentes dependendo de uma determinada condição, utilize a função `if`. Ex: `=if(A2 > 0, A2*2*PI(), abs(A2)*(3 - 5))`. Se a condição for verdadeira, a primeira fórmula é executada.\n", "* Utilize o valor de $G = 0.00000000006673\\ m^3 kg^{-1} s^{-1}$\n", "* O valor calculado estará em m/s². Converta para mGal = 100000 m/s²\n", "\n", "**Terceiro**: Calcule a anomalia Bouguer. Salve uma cópia da planilha em formato CSV." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Carregando os dados e fazendo um mapa\n", "\n", "Depois de calcular os valores acima, precisamos carregá-los aqui no notebook para gerarmos os mapas.\n", "\n", "Primeiro, coloque o nome do seu arquivo `.csv` abaixo e execute a célula. **O nome deve ser exato**. Dica: apague o nome do arquivo e aperte Tab." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "arquivo_dados = '../data/disturbio-mundo-{nome do aluno}.csv'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Agora, execute as células abaixo para carregar os dados e gerar um mapa com os valores que você calculou." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "lon, lat, bouguer = np.loadtxt(arquivo_dados, delimiter=',', unpack=True, skiprows=1, usecols=[0, 1, -1])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "bm = Basemap(projection='moll', lon_0=0, resolution='c')\n", "x, y = bm(lon, lat)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "plt.figure(figsize=(18, 10))\n", "ranges = np.abs([bouguer.min(), bouguer.max()]).max()\n", "tmp = bm.contourf(x, y, bouguer, 100, tri=True, cmap='RdBu_r', vmin=-ranges, vmax=ranges)\n", "plt.colorbar(orientation='horizontal', pad=0.01, aspect=50, shrink=0.5).set_label('mGal')\n", "plt.title(r\"Anomalia Bouguer\", fontsize=16)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Isostasia segundo o modelo de Airy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A condição para que haja equilíbrio isostático em uma região é que a massa de blocos adjancentes seja igual.\n", "\n", "\n", "\n", "Se considerarmos blocos (paralelepípedos) com área unitária na figura acima, chegamos que as raízes $r_1$ e $r_2$ devem ser:\n", "\n", "$$r_1 = \\frac{h\\rho_c}{\\rho_m - \\rho_c}$$\n", "\n", "e\n", "\n", "$$r_2 = \\frac{d(\\rho_c - \\rho_a)}{\\rho_m - \\rho_c}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Bouguer vs Topografia" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "topo = np.loadtxt('../data/etopo1-0_5-mundo.gdf', skiprows=30, usecols=[-1])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "with seaborn.plotting_context('talk'):\n", " plt.figure(figsize=(15, 10))\n", " plt.plot(topo, bouguer, '.k')\n", " plt.xlabel('Topografia (m)')\n", " plt.ylabel('Anomalia Bouguer (mGal)')\n", " plt.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[]()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" } }, "nbformat": 4, "nbformat_minor": 0 }