From e723b8c634efabb773f5ed0047aa50b44b10fb4c Mon Sep 17 00:00:00 2001 From: Lethycia Carvalho Date: Wed, 5 Jan 2022 13:01:05 -0300 Subject: [PATCH] Criado usando o Colaboratory --- tutorials/FITS-tables/FITS-tables_pt-br.ipynb | 679 ++++++++++++++++++ 1 file changed, 679 insertions(+) create mode 100644 tutorials/FITS-tables/FITS-tables_pt-br.ipynb diff --git a/tutorials/FITS-tables/FITS-tables_pt-br.ipynb b/tutorials/FITS-tables/FITS-tables_pt-br.ipynb new file mode 100644 index 00000000..1b56000c --- /dev/null +++ b/tutorials/FITS-tables/FITS-tables_pt-br.ipynb @@ -0,0 +1,679 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "RxmiCdE8m-Dn" + }, + "source": [ + "# Visualizando e manipulando dados de tabelas FITS\n", + "\n", + "## Autores\n", + "Lia Corrales, Kris Stern\n", + "\n", + "## Tradução\n", + "Lethycia Carvalho\n", + "\n", + "## Objetivos de Aprendizagem\n", + "* Descarregar um arquivo de tabela FITS de um endereço da web;\n", + "* Abrir um arquivo de tabela FITS e visualizar seu conteúdo;\n", + "* Produzir um histograma 2D com os dados da tabela;\n", + "* Fechar o arquivo FITS após o uso.\n", + "\n", + "## Palavras-chave\n", + "FITS, arquivo de entrada/saída, tabela, numpy, matplotlib, histograma.\n", + "\n", + "\n", + "## Sumário\n", + "\n", + "Este tutorial demonstra o uso do `astropy.utils.data` para descarregar um arquivo de dados de um endereço da web, e de `astropy.io.fits` and `astropy.table` para abrir o arquivo. Também demonstra como usar o `matplotlib` para visualizar estes dados em um histograma." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true, + "id": "otqGYBnom-Dr" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "from astropy.io import fits\n", + "from astropy.table import Table\n", + "from matplotlib.colors import LogNorm\n", + "\n", + "# Configurar matplotlib\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ZHuMGmsKm-Ds" + }, + "source": [ + "A linha seguinte é necessária para descarregarmos os arquivos FITS que serão usados de exemplo neste tutorial." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true, + "id": "fRJ9ZHfBm-Dt" + }, + "outputs": [], + "source": [ + "from astropy.utils.data import download_file" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9lRFp440m-Du" + }, + "source": [ + "Arquivos FITS, geralmente, contêm grandes quantidades de tabelas e dados multidimensionais.\n", + "\n", + "Neste exemplo particular, abriremos um arquivo FITS de uma observação do Centro Galáctico realizada pelo Chandra. O arquivo contém uma lista de eventos (EVENTS) com coordenadas x e y, energia e várias outras informações." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "id": "s_dtFP06m-Du" + }, + "outputs": [], + "source": [ + "event_filename = download_file('http://data.astropy.org/tutorials/FITS-tables/chandra_events.fits', \n", + " cache=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QuGuiHIdm-Dv" + }, + "source": [ + "## Abrindo o arquivo FITS e visualizando o conteúdo da tabela" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "xb80naZsm-Dw" + }, + "source": [ + "Já que o arquivo é grande, vamos abri-lo com o `memmap=True` para previnir problemas com o armazenamento da RAM." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true, + "id": "x6fb8IYZm-Dw" + }, + "outputs": [], + "source": [ + "hdu_list = fits.open(event_filename, memmap=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "id": "UNl1QLqam-Dy", + "outputId": "e494543f-20e7-45b9-c24a-d06c564f7e57", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Filename: /root/.astropy/cache/download/url/333246bccb141ea3b4e86c49e45bf8d6/contents\n", + "No. Name Ver Type Cards Dimensions Format\n", + " 0 PRIMARY 1 PrimaryHDU 30 () \n", + " 1 EVENTS 1 BinTableHDU 890 483964R x 19C [1D, 1I, 1I, 1J, 1I, 1I, 1I, 1I, 1E, 1E, 1E, 1E, 1J, 1J, 1E, 1J, 1I, 1I, 32X] \n", + " 2 GTI 3 BinTableHDU 28 1R x 2C [1D, 1D] \n", + " 3 GTI 2 BinTableHDU 28 1R x 2C [1D, 1D] \n", + " 4 GTI 1 BinTableHDU 28 1R x 2C [1D, 1D] \n", + " 5 GTI 0 BinTableHDU 28 1R x 2C [1D, 1D] \n", + " 6 GTI 6 BinTableHDU 28 1R x 2C [1D, 1D] \n" + ] + } + ], + "source": [ + "hdu_list.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "PKht71E6m-Dy" + }, + "source": [ + "Nesse caso, estamos interessados em ler a tabela EVENTS, que contém informações sobre cada fóton de raios-X que atingiu o detector." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FKPtH-c2m-Dz" + }, + "source": [ + "Para descobrirmos quais informações a tabela EVENTS contém, vamos imprimir os nomes das suas colunas." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "id": "dngNAXsTm-Dz", + "outputId": "f8f460df-604a-4dae-b617-33bcc1d533c4", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "ColDefs(\n", + " name = 'time'; format = '1D'; unit = 's'\n", + " name = 'ccd_id'; format = '1I'\n", + " name = 'node_id'; format = '1I'\n", + " name = 'expno'; format = '1J'\n", + " name = 'chipx'; format = '1I'; unit = 'pixel'; coord_type = 'CPCX'; coord_unit = 'mm'; coord_ref_point = 0.5; coord_ref_value = 0.0; coord_inc = 0.023987\n", + " name = 'chipy'; format = '1I'; unit = 'pixel'; coord_type = 'CPCY'; coord_unit = 'mm'; coord_ref_point = 0.5; coord_ref_value = 0.0; coord_inc = 0.023987\n", + " name = 'tdetx'; format = '1I'; unit = 'pixel'\n", + " name = 'tdety'; format = '1I'; unit = 'pixel'\n", + " name = 'detx'; format = '1E'; unit = 'pixel'; coord_type = 'LONG-TAN'; coord_unit = 'deg'; coord_ref_point = 4096.5; coord_ref_value = 0.0; coord_inc = 0.00013666666666667\n", + " name = 'dety'; format = '1E'; unit = 'pixel'; coord_type = 'NPOL-TAN'; coord_unit = 'deg'; coord_ref_point = 4096.5; coord_ref_value = 0.0; coord_inc = 0.00013666666666667\n", + " name = 'x'; format = '1E'; unit = 'pixel'; coord_type = 'RA---TAN'; coord_unit = 'deg'; coord_ref_point = 4096.5; coord_ref_value = 266.41519201128; coord_inc = -0.00013666666666667\n", + " name = 'y'; format = '1E'; unit = 'pixel'; coord_type = 'DEC--TAN'; coord_unit = 'deg'; coord_ref_point = 4096.5; coord_ref_value = -29.012248288366; coord_inc = 0.00013666666666667\n", + " name = 'pha'; format = '1J'; unit = 'adu'; null = 0\n", + " name = 'pha_ro'; format = '1J'; unit = 'adu'; null = 0\n", + " name = 'energy'; format = '1E'; unit = 'eV'\n", + " name = 'pi'; format = '1J'; unit = 'chan'; null = 0\n", + " name = 'fltgrade'; format = '1I'\n", + " name = 'grade'; format = '1I'\n", + " name = 'status'; format = '32X'\n", + ")\n" + ] + } + ], + "source": [ + "print(hdu_list[1].columns)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jggHCOJMm-D0" + }, + "source": [ + "Agora, converteremos estes dados em uma [tabela do astropy](http://docs.astropy.org/en/stable/table/). Embora seja possível acessar tabelas FITS diretamente com ``.data``, o uso de [Table](http://docs.astropy.org/en/stable/api/astropy.table.Table.html#astropy.table.Table) tende a tornar uma variedade de tarefas comuns mais convenientes." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": true, + "id": "yAon5Jdxm-D0" + }, + "outputs": [], + "source": [ + "evt_data = Table(hdu_list[1].data)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "BnWDdIdnm-D1" + }, + "source": [ + "Por exemplo, uma pré-visualização da tabela é facilmente obtida executando uma célula simples com o nome da tabela, definido na última linha:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "id": "GUC9H2jQm-D1", + "outputId": "ebbd7377-aaf3-4315-a06f-48c0b1391aba", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 913 + } + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
Table length=483964\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
timeccd_idnode_idexpnochipxchipytdetxtdetydetxdetyxyphapha_roenergypifltgradegradestatus [32]
float64int16int16int32int16int16int16int16float32float32float32float32int32int32float32int32int16int16bool
238623220.909358333689208512439815095.6414138.9954168.07235087.7723548353413874.715951164False .. False
238623220.90935833168437237489534984865.5674621.18263662.19684915.93366676292621.1938180642False .. False
238623220.90935833268719289484337804814.8354340.2543935.22074832.5523033287512119.01883183False .. False
238623220.90935833068103295483731644807.36434954.3853324.46444897.27548317733253.036422300False .. False
238623220.90935833168498314481835594788.9874560.32763713.63434832.7353612343914214.382974642False .. False
238623220.90935833368791469466338524635.45264268.0533985.84964645.935004381952.723913400False .. False
238623220.90935833368894839429339554266.6424165.32034044.54694267.6058357133267.533422400False .. False
238623220.90935833368857941419139184164.8154202.22563995.93534170.8189758043817.036626200False .. False
238623220.90935833368910959417339714146.99374149.3644046.33764146.91065764462252.729515500False .. False
238623220.90935833368961962417040224144.12844098.49764096.5154138.09157213546154.109442200False .. False
.........................................................
238672393.549719331315723933199493350404902.9073082.49565212.49954766.2295122211814819.828633100False .. False
238672393.549719331215723596412472047034691.513418.98934853.51174595.80373142302012536.866859106False .. False
238672393.5497193313157231000608452451074494.7133015.71855230.8864353.0186585852599.565217900False .. False
238672393.549719331115723270917421543774188.33253743.59574472.074134.2213861346315535.7681024164False .. False
238672393.549719331015723232988414443394117.61473781.87744425.754068.4873168014996653.081545600False .. False
238672393.590759340115723366103316447663140.90483356.32084733.68163048.56643621360214362.48298400False .. False
238672393.590759340315723937646370741953681.21223925.54524231.83543651.97243717348614653.954100483False .. False
238672393.590759340115723406687374847263723.40143396.2524762.4213631.7224167615366652.82745600False .. False
238672393.590759340115723354870393147783906.073344.7754834.993807.0835243621659672.882663164False .. False
238672393.631799346115723384821325925233230.92045596.84962519.22023401.03274913561875.935912900False .. False
" + ], + "text/plain": [ + "\n", + " time ccd_id node_id expno ... pi fltgrade grade status [32] \n", + " float64 int16 int16 int32 ... int32 int16 int16 bool \n", + "------------------ ------ ------- ----- ... ----- -------- ----- --------------\n", + " 238623220.9093583 3 3 68 ... 951 16 4 False .. False\n", + " 238623220.9093583 3 1 68 ... 180 64 2 False .. False\n", + " 238623220.9093583 3 2 68 ... 831 8 3 False .. False\n", + " 238623220.9093583 3 0 68 ... 223 0 0 False .. False\n", + " 238623220.9093583 3 1 68 ... 974 64 2 False .. False\n", + " 238623220.9093583 3 3 68 ... 134 0 0 False .. False\n", + " 238623220.9093583 3 3 68 ... 224 0 0 False .. False\n", + " 238623220.9093583 3 3 68 ... 262 0 0 False .. False\n", + " 238623220.9093583 3 3 68 ... 155 0 0 False .. False\n", + " 238623220.9093583 3 3 68 ... 422 0 0 False .. False\n", + " ... ... ... ... ... ... ... ... ...\n", + "238672393.54971933 1 3 15723 ... 331 0 0 False .. False\n", + "238672393.54971933 1 2 15723 ... 859 10 6 False .. False\n", + "238672393.54971933 1 3 15723 ... 179 0 0 False .. False\n", + "238672393.54971933 1 1 15723 ... 1024 16 4 False .. False\n", + "238672393.54971933 1 0 15723 ... 456 0 0 False .. False\n", + "238672393.59075934 0 1 15723 ... 984 0 0 False .. False\n", + "238672393.59075934 0 3 15723 ... 1004 8 3 False .. False\n", + "238672393.59075934 0 1 15723 ... 456 0 0 False .. False\n", + "238672393.59075934 0 1 15723 ... 663 16 4 False .. False\n", + "238672393.63179934 6 1 15723 ... 129 0 0 False .. False" + ] + }, + "metadata": {}, + "execution_count": 8 + } + ], + "source": [ + "evt_data" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "i5OZrYKJm-D2" + }, + "source": [ + "Podemos extrair dados da tabela referenciando o nome da coluna. Vamos tentar fazer um histograma para a energia de cada fóton, o que vai nos dar uma noção do espectro (dobrado com a eficiência do detector)." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "id": "5ts5Gq5Am-D2", + "outputId": "3af6a499-7557-414b-dae1-6ec389faa36a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 265 + } + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "energy_hist = plt.hist(evt_data['energy'], bins='auto')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "H73y5ih-m-D2" + }, + "source": [ + "## Construindo um histograma 2D com alguns dados da tabela" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7NSSd6rym-D2" + }, + "source": [ + "Construiremos uma imagem agrupando as coordenadas x e y dos eventos em um histograma 2D." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_ncNF3i1m-D3" + }, + "source": [ + "Esta observação particular abrange cinco chips CCD. Primeiro, nós determinamos os eventos que ocorreram apenas nos chips principais (ACIS-I), que possuem ids de número 0, 1, 2 e 3." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "id": "HiXx8lybm-D3", + "outputId": "db838bde-500a-431a-d855-8a7463796fcf", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "434858" + ] + }, + "metadata": {}, + "execution_count": 10 + } + ], + "source": [ + "ii = np.in1d(evt_data['ccd_id'], [0, 1, 2, 3])\n", + "np.sum(ii)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_O7ys-gsm-D4" + }, + "source": [ + "### Método 1: Use numpy para fazer um histograma 2D e imshow para exibi-lo" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9XFexYgQm-D4" + }, + "source": [ + "Este método nos permite criar uma imagem sem alongamento:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "id": "Yv_z36Ltm-D4", + "outputId": "dfaf4544-b14f-456c-8b03-180b8df42d0f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 296 + } + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Text(0, 0.5, 'y')" + ] + }, + "metadata": {}, + "execution_count": 11 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "NBINS = (100,100)\n", + "\n", + "img_zero, yedges, xedges = np.histogram2d(evt_data['x'][ii], evt_data['y'][ii], NBINS)\n", + "\n", + "extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]\n", + "\n", + "plt.imshow(img_zero, extent=extent, interpolation='nearest', cmap='gist_yarg', origin='lower')\n", + "\n", + "plt.xlabel('x')\n", + "plt.ylabel('y')\n", + "\n", + "# Para ver mais mapas de cores\n", + "# http://wiki.scipy.org/Cookbook/Matplotlib/Show_colormaps" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "5spmLMVDm-D5" + }, + "source": [ + "### Método 2: Use hist2d com um esquema de cores log-normal" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "id": "uj4ts7qpm-D5", + "outputId": "0af0a458-038d-4cea-ca9c-de27c35c7697", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 296 + } + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Text(0, 0.5, 'y')" + ] + }, + "metadata": {}, + "execution_count": 12 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "NBINS = (100,100)\n", + "img_zero_mpl = plt.hist2d(evt_data['x'][ii], evt_data['y'][ii], NBINS, \n", + " cmap='viridis', norm=LogNorm())\n", + "\n", + "cbar = plt.colorbar(ticks=[1.0,3.0,6.0])\n", + "cbar.ax.set_yticklabels(['1','3','6'])\n", + "\n", + "plt.xlabel('x')\n", + "plt.ylabel('y')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "K_HPE2RJm-D6" + }, + "source": [ + "## Fechando o arquivo FITS" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3Yt5jbfNm-D7" + }, + "source": [ + "Quando terminar de usar um arquivo FITS, geralmente é uma boa ideia fechá-lo. Dessa forma você pode ter certeza de que não continuará usando memória em excesso ou identificadores de arquivo em seu computador. (Isso acontece automaticamente quando você fecha o Python, mas você nunca sabe quanto tempo isso pode durar ...)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": true, + "id": "wOTzbjWCm-D7" + }, + "outputs": [], + "source": [ + "hdu_list.close()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dRl_8ioom-D7" + }, + "source": [ + "## Exercícios" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jsUCIUlMm-D8" + }, + "source": [ + "Faça um gráfico de dispersão dos mesmos dados do histograma acima. A função [plt.scatter](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.scatter) é sua amiga para isso. Quais são os prós e os contras de fazê-lo desta maneira?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "id": "gMXVgmCjm-D8" + }, + "outputs": [], + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jwZ_9PfNm-D8" + }, + "source": [ + "Tente o mesmo com a função de plotagem [plt.hexbin](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.hexbin). Qual parece melhor para este tipo de dados?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "id": "YfsTS3Xbm-D8" + }, + "outputs": [], + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vZQDx0q_m-D8" + }, + "source": [ + "Escolha uma faixa de energia para fazer uma fatia da tabela FITS e, a seguir, plote-a. Como a imagem muda com diferentes faixas de energia?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "id": "IIAYOjswm-D8" + }, + "outputs": [], + "source": [ + "" + ] + } + ], + "metadata": { + "astropy-tutorials": { + "author": "Lia R. Corrales ", + "date": "January 2014", + "description": "astropy.utils.data to download the file, astropy.io.fits to open and view the file, matplotlib for making both 1D and 2D histograms of the data.", + "link_name": "Viewing and manipulating data from FITS tables", + "name": "", + "published": true + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.9" + }, + "colab": { + "name": "FITS-tables.ipynb", + "provenance": [] + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file