{ "metadata": { "name": "", "signature": "sha256:1a419017753e6d4a27bc71c1329eb17df16ff31e162cd630066792d9f94dcf8a" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Astropy Introduction" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "A brief history of the Astropy project" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " - Started about 4 years ago\n", " - Goal to standardize on core set of astronomical libraries\n", " - And to foster use of standard libraries in Python application and library packages\n", " - STScI has migrated its standard libraries to astropy and is transitioning to use it for all its released software\n", " - Very active community\n", " - Much effort going into consistency and testing\n", " - Testing against existing coordinate conversion libraries, for example" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Table of Contents" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [What Astropy is](#What-Astropy-is)\n", " * [Some things Astropy is not](#Some-things-Astropy-is-not)\n", "* [Units](#Units)\n", "* [Tables](#Tables)\n", "* [FITS](#Doing-more-with-FITS-files)\n", "* [Coordinates](#Coordinates)" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "What Astropy is" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Open source project intended from the beginning to be maintained by a community of astronomers, astrophysicists, software developers, and any other interested parties\n", " - Not tied to any single institution\n", "- An effort to lower the barrier of entry to new contributors with good ideas; lots of documentation for new (and existing) developers for how to contribute\n", "- Code, documentation, and tests that keep pace with the latest best practices of the Python community at large--strong emphasis on stylistic consistency and quality\n", "- Most importantly, provides easy (hopefully) to use interfaces for common procedures needed to write astronomy software\n", " - Units and constants\n", " - Coordinate conversions\n", " - Time conversions\n", " - Tables\n", " - Convolution and filtering\n", " - Modeling and fitting\n", " - Statistics\n", " - VO services\n", " - File formats (FITS, ASCII tables, VOTable, HDF5)\n", " - And other sundry utilities\n", "- Some functionality may be too special-purpose to go into the \"core\" package routines, but instead can be released as an Astropy Affiliated Package. Some affiliated packages include photutils (photometry), specutils (spectroscopy), gammapy (gamma-ray data analysis), ccdproc (CCD data reduction), etc...\n", " - Affiliated packages may in some case also be test-beds for features to be integrated into the core package.\n", " " ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Some things Astropy is not" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- An \"IRAF replacement\"\n", " - Astropy does not provide a complete data reduction and analysis environment--it is a library on which data analysis tools\n", " and other more specialized libraries can be built. By using the interfaces provided by Astropy, however, all tools built\n", " with it attain a high degree of interoperability (especially important in areas like coordinates and units!)\n", "- An \"IDL replacement\"\n", " - Not exactly a grab bag of single-purposes functions, and more of a framework--highly object-oriented. Not all IDL\n", " routines have an exact equivalent in Astropy, though most of them could be reproduced fairly easily\n", " - That said, efforts are being made to make it easier to find out how to do specific tasks, and people have also been\n", " compiling lists of documentation for how to recreate popular IDL routines and IRAF tasks using Astropy (and affiliated\n", " packages)\n", "- A small library\n", " - We barely have time to scratch the surface today of what capabilities are available through Astropy\n", "- Unwieldy\n", " - By using it in one's day to day coding tasks one can get quite comfortable and efficient at using the parts of Astropy that they need" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Units" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One of the most powerful, central features of Astropy is the unit conversion library, and the `Quantity` object that associates numerical values (and arrays) with units. Effort is made to integrate units throughout Astropy so it is important to understand their usage.\n", "\n", "Since we may want to use a number of units in expressions, it is easiest and\n", "most concise to import the units module with:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from astropy import units as u" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 190 }, { "cell_type": "markdown", "metadata": {}, "source": [ "though note that this will conflict with any variable called ``u``.\n", "\n", "Units can then be accessed with:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "u.m" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$\\mathrm{m}$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 194, "text": [ "Unit(\"m\")" ] } ], "prompt_number": 194 }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the notebook this just displays a LaTeX representation of the unit:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "u.Angstrom" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$\\mathrm{\\overset{\\circ}{A}}$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 195, "text": [ "Unit(\"Angstrom\")" ] } ], "prompt_number": 195 }, { "cell_type": "markdown", "metadata": {}, "source": [ "They all have a docstring defining them:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print(u.m.__doc__)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "meter: base unit of length in SI\n" ] } ], "prompt_number": 196 }, { "cell_type": "markdown", "metadata": {}, "source": [ "An associated physical type:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print(u.m.physical_type)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "length\n" ] } ], "prompt_number": 197 }, { "cell_type": "code", "collapsed": false, "input": [ "print(u.Angstrom.physical_type)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "length\n" ] } ], "prompt_number": 198 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And other various associated information that can be explored through the [full documentation](http://docs.astropy.org/en/stable/units/index.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To create a *quantity* we just multiply a value by a unit. The value can be either a scalar or a Numpy array (or an object that can be converted to an array, like a Python list):" ] }, { "cell_type": "code", "collapsed": false, "input": [ "1.0 * u.m" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$1 \\; \\mathrm{m}$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 199, "text": [ "" ] } ], "prompt_number": 199 }, { "cell_type": "code", "collapsed": false, "input": [ "[1.0, 2.0, 3.0] * u.m" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 200, "text": [ "" ] } ], "prompt_number": 200 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since `u.m` and `u.Angstrom` have the same physical type we can convert a quantity in meters to a quantity in Angstroms:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "q = [1.0, 2.0, 3.0] * u.m\n", "q.to(u.Angstrom)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 201, "text": [ "" ] } ], "prompt_number": 201 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Quantities can then be combined:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "q1 = 3. * u.m" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 202 }, { "cell_type": "code", "collapsed": false, "input": [ "q1" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$3 \\; \\mathrm{m}$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 204, "text": [ "" ] } ], "prompt_number": 204 }, { "cell_type": "code", "collapsed": false, "input": [ "q2 = 5. * u.cm / u.s / u.g**2" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 203 }, { "cell_type": "code", "collapsed": false, "input": [ "q2" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$5 \\; \\mathrm{\\frac{cm}{s\\,g^{2}}}$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 205, "text": [ "" ] } ], "prompt_number": 205 }, { "cell_type": "code", "collapsed": false, "input": [ "q1 * q2" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$15 \\; \\mathrm{\\frac{cm\\,m}{s\\,g^{2}}}$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 206, "text": [ "" ] } ], "prompt_number": 206 }, { "cell_type": "markdown", "metadata": {}, "source": [ "and converted to different units:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "(q1 * q2).to(u.m**2 / u.kg**2 / u.s)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$150000 \\; \\mathrm{\\frac{m^{2}}{s\\,kg^{2}}}$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 207, "text": [ "" ] } ], "prompt_number": 207 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also incorporate physical constants from the [`astropy.constants`](http://docs.astropy.org/en/stable/constants/index.html) library. For example, ff we want to compute\n", "the Gravitational force felt by a 100. kg space probe by the Sun, at a distance of 3.2au, we can do:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from astropy.constants import G" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 208 }, { "cell_type": "code", "collapsed": false, "input": [ "print repr(G)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 210 }, { "cell_type": "code", "collapsed": false, "input": [ "F = (G * 1. * u.M_sun * 100. * u.kg) / (3.2 * u.au)**2" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 211 }, { "cell_type": "code", "collapsed": false, "input": [ "F.unit.find_equivalent_units()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 215, "text": [ " Primary name | Unit definition | Aliases \n", "[\n", " N | kg m / s2 | Newton, newton ,\n", " dyn | 1e-05 kg m / s2 | dyne ,\n", "]" ] } ], "prompt_number": 215 }, { "cell_type": "code", "collapsed": false, "input": [ "F.to(u.N)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$0.0579271 \\; \\mathrm{N}$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 213, "text": [ "" ] } ], "prompt_number": 213 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Units don't necessarily *have* to have the same physical type to be converted between each other. Astropy includes a number of unit equivalencies that can be enabled (with the possibility of defining your own). For example, without equivalencies the following fails:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "(450. * u.nm).to(u.GHz)" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "UnitsError", "evalue": "'nm' (length) and 'GHz' (frequency) are not convertible", "output_type": "pyerr", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mUnitsError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;33m(\u001b[0m\u001b[1;36m450.\u001b[0m \u001b[1;33m*\u001b[0m \u001b[0mu\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnm\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mto\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mu\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mGHz\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/astropy/units/quantity.pyc\u001b[0m in \u001b[0;36mto\u001b[1;34m(self, unit, equivalencies)\u001b[0m\n\u001b[0;32m 575\u001b[0m \u001b[0munit\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mUnit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0munit\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 576\u001b[0m new_val = np.asarray(\n\u001b[1;32m--> 577\u001b[1;33m self.unit.to(unit, self.value, equivalencies=equivalencies))\n\u001b[0m\u001b[0;32m 578\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_new_view\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnew_val\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0munit\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 579\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/astropy/units/core.pyc\u001b[0m in \u001b[0;36mto\u001b[1;34m(self, other, value, equivalencies)\u001b[0m\n\u001b[0;32m 910\u001b[0m \u001b[0mIf\u001b[0m \u001b[0munits\u001b[0m \u001b[0mare\u001b[0m \u001b[0minconsistent\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 911\u001b[0m \"\"\"\n\u001b[1;32m--> 912\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_converter\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mother\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mequivalencies\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mequivalencies\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 913\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 914\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0min_units\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mother\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1.0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mequivalencies\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/astropy/units/core.pyc\u001b[0m in \u001b[0;36mget_converter\u001b[1;34m(self, other, equivalencies)\u001b[0m\n\u001b[0;32m 846\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mUnitsError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 847\u001b[0m return self._apply_equivalences(\n\u001b[1;32m--> 848\u001b[1;33m self, other, self._normalize_equivalencies(equivalencies))\n\u001b[0m\u001b[0;32m 849\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[1;32mlambda\u001b[0m \u001b[0mval\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mscale\u001b[0m \u001b[1;33m*\u001b[0m \u001b[0m_condition_arg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mval\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 850\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m/usr/local/lib/python2.7/dist-packages/astropy/units/core.pyc\u001b[0m in \u001b[0;36m_apply_equivalences\u001b[1;34m(self, unit, other, equivalencies)\u001b[0m\n\u001b[0;32m 809\u001b[0m raise UnitsError(\n\u001b[0;32m 810\u001b[0m \"{0} and {1} are not convertible\".format(\n\u001b[1;32m--> 811\u001b[1;33m unit_str, other_str))\n\u001b[0m\u001b[0;32m 812\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 813\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mget_converter\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mother\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mequivalencies\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mUnitsError\u001b[0m: 'nm' (length) and 'GHz' (frequency) are not convertible" ] } ], "prompt_number": 216 }, { "cell_type": "markdown", "metadata": {}, "source": [ "But with the spectral equivalency:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "(450. * u.nm).to(u.GHz, equivalencies=u.spectral())" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$666205 \\; \\mathrm{GHz}$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 217, "text": [ "" ] } ], "prompt_number": 217 }, { "cell_type": "code", "collapsed": false, "input": [ "(450. * u.eV).to(u.nm, equivalencies=u.spectral())" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$2.7552 \\; \\mathrm{nm}$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 218, "text": [ "" ] } ], "prompt_number": 218 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Most of the Numpy functions also understand Astropy quantities (with some notable exceptions you can find in the documentation). For example, by default `np.sin` takes input in radians:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "np.sin(90)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 219, "text": [ "0.89399666360055785" ] } ], "prompt_number": 219 }, { "cell_type": "markdown", "metadata": {}, "source": [ "But if we pass in a quantity in degrees:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "np.sin(90 * u.degree)" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$1 \\; \\mathrm{}$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 220, "text": [ "" ] } ], "prompt_number": 220 }, { "cell_type": "markdown", "metadata": {}, "source": [ "More examples and exercises with units in [this notebook](http://astropy4scipy2014.readthedocs.org/en/latest/_static/notebooks/02_Unit_Conversion.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[^Back to top](#Table-of-Contents)" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Tables" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The astropy [Table](http://docs.astropy.org/en/stable/table/index.html) class provides an extension of NumPy structured arrays for storing and manipulating heterogeneous tables of data. A few notable features of this package are:\n", "\n", "- Initialize a table from a wide variety of input data structures and types.\n", "- Modify a table by adding or removing columns, changing column names, or adding new rows of data.\n", "- Handle tables containing missing values.\n", "- Include table and column metadata as flexible data structures.\n", "- Specify a description, units and output formatting for columns.\n", "- Perform operations like database joins, concatenation, and grouping.\n", "- Manipulate multidimensional columns.\n", "- Methods for Reading and writing Table objects to files\n", "- Integration with Astropy [Units and Quantities](http://astropy.readthedocs.org/en/stable/units/index.html)\n", "- And still more capabilities there won't be time to demonstrate today..." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from astropy.table import Table\n", "import numpy as np" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 221 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Creating tables" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There is great deal of flexibility in the way that a table can be initially constructed:\n", "\n", "- Read an existing table from a file or web URL\n", "- Add columns of data one by one\n", "- Add rows of data one by one\n", "- From an existing data structure in memory:\n", "\n", " - List of data columns\n", " - Dict of data columns\n", " - List of row dicts\n", " - Numpy homgeneous array or structured array\n", " - List of row records (new in 0.4)\n", " \n", "See the documentation section on [Constructing a table](http://astropy.readthedocs.org/en/stable/table/construct_table.html) for the gory details and plenty of examples.\n", "\n", "The easiest (though maybe not always most useful in practice) way is to just create an empty table object and add columns to it by assigning arrays to column names, in a syntax reminiscent on dictionaries:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "t = Table()\n", "t['name'] = ['source 1', 'source 2', 'source 3', 'source 4']\n", "t['flux'] = [1.2, 2.2, 3.1, 4.3]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 222 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tables have numerous useful attributes for introspection. Just a couple examples are:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "t.colnames" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 223, "text": [ "['name', 'flux']" ] } ], "prompt_number": 223 }, { "cell_type": "code", "collapsed": false, "input": [ "t.dtype" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 224, "text": [ "dtype([('name', '|S8'), ('flux', 'namefluxsource 11.2source 22.2source 33.1source 44.3" ], "metadata": {}, "output_type": "pyout", "prompt_number": 225, "text": [ "\n", "array([('source 1', 1.2), ('source 2', 2.2), ('source 3', 3.1),\n", " ('source 4', 4.3)], \n", " dtype=[('name', '|S8'), ('flux', '', mode 'w+b' at 0x529b300>" ] } ], "prompt_number": 226 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can access single rows of columns, single columns, or selection sof multiple rows/columns:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "t['flux']" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 227, "text": [ "\n", "array([ 1.2, 2.2, 3.1, 4.3])" ] } ], "prompt_number": 227 }, { "cell_type": "code", "collapsed": false, "input": [ "t[1]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 228, "text": [ "" ] } ], "prompt_number": 228 }, { "cell_type": "code", "collapsed": false, "input": [ "t[1:3]" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
nameflux
source 22.2
source 33.1
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 229, "text": [ "\n", "array([('source 2', 2.2), ('source 3', 3.1)], \n", " dtype=[('name', '|S8'), ('flux', '
namevalue
x1.1
y2.2
z3.3
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 230, "text": [ "\n", "masked_array(data = [('x', 1.1) ('y', 2.2) ('z', 3.3)],\n", " mask = [(False, False) (False, False) (False, False)],\n", " fill_value = ('N', 1e+20),\n", " dtype = [('name', '|S1'), ('value', '
namevalue
x1.1
y--
z3.3
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 232, "text": [ "\n", "masked_array(data = [('x', 1.1) ('y', --) ('z', 3.3)],\n", " mask = [(False, False) (False, True) (False, False)],\n", " fill_value = ('N', 1e+20),\n", " dtype = [('name', '|S1'), ('value', '
namevalue
x1.1
y-99.0
z3.3
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 236, "text": [ "\n", "array([('x', 1.1), ('y', -99.0), ('z', 3.3)], \n", " dtype=[('name', '|S1'), ('value', '
nameflux
source 11.2
source 22.2
source 33.1
source 44.3
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 237, "text": [ "\n", "array([('source 1', 1.2), ('source 2', 2.2), ('source 3', 3.1),\n", " ('source 4', 4.3)], \n", " dtype=[('name', '|S8'), ('flux', '
namefluxflux2
source 11.21.4
source 22.2--
source 33.13.5
source 44.3--
source 8--8.6
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 239, "text": [ "\n", "masked_array(data = [('source 1', 1.2, 1.4) ('source 2', 2.2, --) ('source 3', 3.1, 3.5)\n", " ('source 4', 4.3, --) ('source 8', --, 8.6)],\n", " mask = [(False, False, False) (False, False, True) (False, False, False)\n", " (False, False, True) (False, True, False)],\n", " fill_value = ('N/A', 1e+20, 1e+20),\n", " dtype = [('name', '|S8'), ('flux', '
namefluxflux2
source 11.21.4
source 33.13.5
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 240, "text": [ "\n", "array([('source 1', 1.2, 1.4), ('source 3', 3.1, 3.5)], \n", " dtype=[('name', '|S8'), ('flux', '
namefluxflux2
source 11.21.4
source 33.13.5
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 243, "text": [ "\n", "array([('source 1', 1.2, 1.4), ('source 3', 3.1, 3.5)], \n", " dtype=[('name', '|S8'), ('flux', '>f8'), ('flux2', '>f8')])" ] } ], "prompt_number": 243 }, { "cell_type": "code", "collapsed": false, "input": [ "t4.write('example.vot', format='votable', overwrite=True)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 244 }, { "cell_type": "code", "collapsed": false, "input": [ "!cat example.vot" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\r\n", "\r\n", "\r\n", " \r\n", "
\r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", "
source 11.21.3999999999999999
source 33.10000000000000013.5
\r\n", " \r\n", "\r\n" ] } ], "prompt_number": 245 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tables can also be written to a variety of ASCII formats, including custom formats. Before trying to hack together a hand-written table reader/writer look into what is possible with the [`astropy.io.ascii`](http://docs.astropy.org/en/stable/io/ascii/index.html).\n", "\n", "There is also an API for developing new table readers/writers for other formats, though the built-in formats cover much of the existing data out there." ] }, { "cell_type": "code", "collapsed": false, "input": [ "t = Table()\n", "t['name'] = ['source 1', 'source 2', 'source 3', 'source 4']\n", "t['flux'] = [1.2, 2.2, 3.1, 4.3]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 274 }, { "cell_type": "code", "collapsed": false, "input": [ "t" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
nameflux
source 11.2
source 22.2
source 33.1
source 44.3
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 275, "text": [ "\n", "array([('source 1', 1.2), ('source 2', 2.2), ('source 3', 3.1),\n", " ('source 4', 4.3)], \n", " dtype=[('name', '|S8'), ('flux', '
nameflux
source 11.2
source 22.2
source 33.1
source 44.3
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 281, "text": [ "\n", "array([('source 1', 1.2), ('source 2', 2.2), ('source 3', 3.1),\n", " ('source 4', 4.3)], \n", " dtype=[('name', '|S8'), ('flux', '" ] } ], "prompt_number": 277 }, { "cell_type": "markdown", "metadata": {}, "source": [ "[^Back to top](#Table-of-Contents)" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Doing more with FITS files" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We briefly saw how to save and load binary tables from FITS files, but that was through a high-level interface that does not give us a great deal of access to the lower-level details of FITS files. We would also in many cases like to be able to manipulate the contents of FITS headers and the arrangement of HDUs.\n", "\n", "And although there is a high-level generic interface for tabular data in the `Table` class, the equivalent for gridded data like images is still under development (see: `NDData`).\n", "\n", "The full interface to FITS images that allows direct access to their image arrays and headers is via the [`astropy.io.fits`](http://docs.astropy.org/en/stable/io/fits/index.html) package. If you have ever used the venerable [PyFITS](http://www.stsci.edu/institute/software_hardware/pyfits) library, then you have already used `astropy.io.fits`, which is just an import of PyFITS into Astropy. By moving PyFITS into Astropy it is able to evolve new capabilities, such as the improved table interface, and improved support for units.\n", "\n", "To open a FITS file import the `fits` package and use the `fits.open` function:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from astropy.io import fits" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 246 }, { "cell_type": "code", "collapsed": false, "input": [ "# The following FITS file lives in the lesson repository, relative\n", "# to this file. However, if you get a \"file not found\" error you can download and open the file\n", "# by uncommenting these lines (and commenting the last line)\n", "\n", "# from astropy.utils import download_file\n", "# filename = download_file('https://github.com/abostroem/2015-01-03-aas/raw/gh-pages/intermediate/astropy/data/gll_iem_v02_P6_V11_DIFFUSE.fit')\n", "# hdulist = fits.open(filename)\n", "hdulist = fits.open('data/gll_iem_v02_P6_V11_DIFFUSE.fit')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 247 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The returned object, ``hdulist``, (an instance of the [HDUList class](http://docs.astropy.org/en/stable/io/fits/api/hdulists.html#hdulist)) behaves like a Python list, and each element\n", "maps to a Header-Data Unit (HDU) in the FITS file. You can view more\n", "information about the FITS file with:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "hdulist.info()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Filename: data/gll_iem_v02_P6_V11_DIFFUSE.fit\n", "No. Name Type Cards Dimensions Format\n", "0 PRIMARY PrimaryHDU 34 (720, 360, 30) float32 \n", "1 ENERGIES BinTableHDU 19 30R x 1C [D] \n" ] } ], "prompt_number": 248 }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we can see, this file contains two HDUs. The first contains an image cube, the second a table with one column of double-precision floating point values. To access the primary HDU, which contains the main data, you can then do:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "primary_hdu = hdulist[0]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 249 }, { "cell_type": "code", "collapsed": false, "input": [ "primary_hdu = hdulist['PRIMARY']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 250 }, { "cell_type": "markdown", "metadata": {}, "source": [ "To access the header use the `.header` attribute:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "primary_hdu.header" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 251, "text": [ "SIMPLE = T / Written by IDL: Thu Jan 20 07:19:05 2011 \n", "BITPIX = -32 / \n", "NAXIS = 3 / number of data axes \n", "NAXIS1 = 720 / length of data axis 1 \n", "NAXIS2 = 360 / length of data axis 2 \n", "NAXIS3 = 30 / length of data axis 3 \n", "EXTEND = T / FITS dataset may contain extensions \n", "COMMENT FITS (Flexible Image Transport System) format is defined in 'Astronomy\n", "COMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H \n", "FLUX = 8.42259635886 / \n", "CRVAL1 = 0. / Value of longitude in pixel CRPIX1 \n", "CDELT1 = 0.5 / Step size in longitude \n", "CRPIX1 = 360.5 / Pixel that has value CRVAL1 \n", "CTYPE1 = 'GLON-CAR' / The type of parameter 1 (Galactic longitude in \n", "CUNIT1 = 'deg ' / The unit of parameter 1 \n", "CRVAL2 = 0. / Value of latitude in pixel CRPIX2 \n", "CDELT2 = 0.5 / Step size in latitude \n", "CRPIX2 = 180.5 / Pixel that has value CRVAL2 \n", "CTYPE2 = 'GLAT-CAR' / The type of parameter 2 (Galactic latitude in C\n", "CUNIT2 = 'deg ' / The unit of parameter 2 \n", "CRVAL3 = 50. / Energy of pixel CRPIX3 \n", "CDELT3 = 0.113828620540137 / log10 of step size in energy (if it is logarith\n", "CRPIX3 = 1. / Pixel that has value CRVAL3 \n", "CTYPE3 = 'photon energy' / Axis 3 is the spectra \n", "CUNIT3 = 'MeV ' / The unit of axis 3 \n", "CHECKSUM= '3fdO3caL3caL3caL' / HDU checksum updated 2009-07-07T22:31:18 \n", "DATASUM = '2184619035' / data unit checksum updated 2009-07-07T22:31:18 \n", "DATE = '2009-07-07' / \n", "FILENAME= '$TEMPDIR/diffuse/gll_iem_v02.fit' /File name with version number \n", "TELESCOP= 'GLAST ' / \n", "INSTRUME= 'LAT ' / \n", "ORIGIN = 'LISOC ' /LAT team product delivered from the LISOC \n", "OBSERVER= 'MICHELSON' /Instrument PI \n", "HISTORY Scaled version of gll_iem_v02.fit for use with P6_V11_DIFFUSE " ] } ], "prompt_number": 251 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The [`Header`](http://docs.astropy.org/en/stable/io/fits/usage/headers.html) object works very similarly to the Python `dict` type--the values for individual keywords can be looked up like so:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "primary_hdu.header['OBSERVER']" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 252, "text": [ "'MICHELSON'" ] } ], "prompt_number": 252 }, { "cell_type": "code", "collapsed": false, "input": [ "primary_hdu.header['DATE']" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 253, "text": [ "'2009-07-07'" ] } ], "prompt_number": 253 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `Header` interface has a wealth of other capabilities that can be read about in the full documentation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The array data associated with an HDU can be accessed via the `.data` attribute, which returns a view of the data as a Numpy array. In this example the data is an image cube for a series of wavelengths. To display the first one:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "from matplotlib.pyplot import imshow\n", "\n", "imshow(primary_hdu.data[0], origin='lower')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 254, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nfP+CBQsObtmy5QsT+e5cx1133fXNurq6viuuuOJnPPf2229feMMNNzy3cOHCA2vWrNl9/Pjxmbz2\n8MMPP7BgwYKDl19++f5nn312bSnz/sYbb8y7/vrr9zQ3N/9i6dKlP3/kkUf+uBLyf+bMmdqVK1f+\nePny5e1LlizpuP/++zdXQr71GB4ermppadn30Y9+9LuVkvf3vve9XcuWLXutpaVl3/vf//62Ssl3\nJpPB8ePHZ956663/snjx4l8uWbKk40c/+tHV5Z73/fv3X97S0rKPxwUXXHDykUce+eNi5ntCO/xl\nl132emdnZ9Pg4GBq+fLl7R0dHUtK2Sn0ePHFF6979dVXW5XI77vvvi9/6Utf+rNMJoMtW7Z84Qtf\n+MKWTCaDX/ziF83Lly9vHxwcTHV2djZddtllr4+MjCRLlffDhw/P2bdvX0smk8G77747bdGiRb/q\n6OhYUgn5P3Xq1JRMJoOhoaHqq6+++kcvvfTStZWQbx5f+cpX7v3EJz7xzx/72Md2VEqfaWpq6nz7\n7bcv1HOVkO9MJoM777xz6+OPP/5J9pkTJ07MqJS8ZzIZjIyMJOfMmXP4jTfemFfMfE9YAX74wx/+\nbzfeeOMu/t68efP9mzdvvr+UlWoenZ2dTUrkl19++f4jR47UZzIeWV5++eX7MxlPWuqM4sYbb9z1\nH//xH9eUOv88br755meee+65Gyop/6dOnZqyYsWKn/z85z9fWin57u7ubly9evXz3//+91dRI6+E\nvDc1NXUePXr0Ij1XCfk+ceLEjPnz5//aPF8Jeefx7LPPrr322mtfKna+J2yvFVuMeW9vb8NEvb8Q\n9PX11dfX1/cBQH19fV9fX189ABw6dOgSjcYpp7J0dXU17du3r/Xqq6/+cSXkP51OJ1taWtrr6+v7\nVq1atWfp0qW/qIR8A8Cf/umffu2v/uqv7ksmk2meq4S8JxKJzA033PD8ihUrXvm7v/u7T1dKvjs7\nO+fPnj37rbvuuusf3ve+97366U9/+u9OnTo1tRLyTmzbtu32jRs3PgEUt84njMjjxJiXMxKJRCaq\nDOVQvv7+/mm33nrrdx555JE/mT59+rt6rVzzn0wm0+3t7S09PT2NL7744gf37NmzysxXOeb7X//1\nXz9aV1f3Zmtr675MyNqIcs37D37wg9/Zt29f686dOz/yN3/zN//nSy+9dJ2Zr3LM9/DwcPWrr776\nvnvuuefRV1999X1Tp049tWXLlvvNvJVj3gFgcHCw5rvf/e7Hfu/3fu9/mtfGmu8JI/JKjDGvr6/v\nO3LkyBwAOHz48Ny6uro3gdFl6enpaWxoaOgtVT4BYGhoKHXrrbd+54477vj2+vXrnwEqK/8zZsw4\nedNNN/3bT3/606sqId8//OEPP7Bjx4518+fP79y4ceMT3//+93/3jjvu+HYl5H3u3LmHAWD27Nlv\n3XLLLU+3tbWtrIR8NzY29jQ2Nva8//3v/wkAfPzjH/+XV1999X1z5sw5Uu55B4CdO3d+5Kqrrvrp\n7Nmz3wKKPD4nyjY0NDRUfemll/5XZ2dn08DAQE25OTszmdE28vvuu+/LtFVt3rz5ftMZMTAwUPPr\nX/96/qWXXvpf6XQ6Uap8p9PpxB133PGtz33uc1/T8+We/7feeutieupPnz49+brrrnvx+eefX13u\n+TaPvXv3fog28nLP+6lTp6a888470zOZDPr7+6d+4AMf+MGzzz67ttzzzeO666578Ve/+tWiTCaD\nL37xiw/ed999X66UvN92223b/vEf/3ETfxcz3xNakH//93//yKJFi3512WWXvf7www8/UKoKtR23\n3377E3Pnzj2USqUGGxsbu7/5zW/e9fbbb1+4evXq523hQX/5l3/555dddtnrl19++f5du3bdWMq8\nv/TSS9cmEon08uXL2xnitHPnzg+Xe/5fe+21Za2tra8uX768fdmyZa99+ctfvi+T8ULhyjnf5rF3\n794PMWql3PP+61//ev7y5cvbly9f3r506dKfcxyWe755tLe3L1+xYsVPrrzyyv+85ZZb/teJEydm\nVELe+/v7p1500UVHKUSLXeeJTKbkpl0HBwcHhzHAfSHIwcHBocLhiNzBwcGhwuGI3MHBwaHC4Yjc\nwcHBocLhiNzBwcGhwuGI3MHBwaHC8f8DMt9BLdL3GCYAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 254 }, { "cell_type": "code", "collapsed": false, "input": [ "from aplpy import FITSFigure\n", "\n", "fig = FITSFigure('data/gll_iem_v02_P6_V11_DIFFUSE.fit', slices=[0])\n", "fig.show_colorscale()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stderr", "text": [ "INFO:astropy:Auto-setting vmin to -1.114e-06\n" ] }, { "output_type": "stream", "stream": "stderr", "text": [ "INFO:astropy:Auto-setting vmax to 1.337e-05\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "INFO: Auto-setting vmin to -1.114e-06 [aplpy.core]\n", "INFO: Auto-setting vmax to 1.337e-05 [aplpy.core]\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nIzQiaB28rMbU1FTdQw89dPW11177XQBYs2bNvo6OjqMAsGrVqp7x8fG5k5OT0574sccee/8NN9yw\nEwBuuOGGnY888siVAPDoo49+4Nprr/1ufX39ZFdX16Hly5cf3L1790VvvPHGW0ZGRlrWr1//HABc\nf/31/0RxeFpXXXXV959++umLAWDOnDmnM5lMYy6XS54+fTrA+pGN6LZhozzxmQxO04Ndo/ycMaKF\nuK/YIwhCyFGr5EVumHPzHHEfCxeqeTFGpefC0HwE7U6x/vd///ffa29vH1i2bNmr8t73v//9q9at\nW7envr5+Wi0MDAy0t7e3DwBAe3v7wMDAQDsA9Pf3L96wYcOzFK6zs/NIX1/fkvr6+snOzs4jdH3J\nkiV9fX19SwCgr69vydKlSw8DQDKZzC1YsODE8ePHFy5cuPD42rVr965fv/65O+64405V+fkr5jjK\nXzfn5pyvmXQcgZ2PhOnmhVrY5BHDHYJqT5VWOay8oorYtdsdvBKNsKwUteiPGfYcpWqjWqqfICGt\nb06w6mvjxkTxlXISTq+YC1yibNiw4dlsNpsaHR1tPn78+ELyA7zrrrtu27x585MA8N3vfvfaj33s\nY/9Xxv3lL3/5jttvv337U089dalTPnV1dVN2Wkc/2LJly1e3bNnyVd39bduGFVfrxTeBBr5Tg84k\nMsihI3W6553pk/hMRaXOljSZJGbyQsKLyFbFyfksx2yfrP2gFupMJ7M5gniOeA7wD6sOu7snmSLK\nHQIngs8+++wGAOju7t5433333XjvvffexO/ncrnkD37wgw++8MILF/DrR44c6fzQhz70z/fff/91\nZ5999muqtNvb2weOHj3a0dHRcfSNN954y6JFi44Blqbv8OHDS3lanZ2dR5YsWdJ35MiRTnmd4vzm\nN7956+LFi/tzuVzyxIkTCxYuXHjc7CndaPt092pBGAQFN8/KiXPUBIKbMvlt36g9e9R2mUetfiqF\nHIIR20n4J4PAzCaEM/nZ7FDtsTXb6jsI+FMkheYjqDMN/+QnP7nk7W9/+68WL17cT9eGh4fT73vf\n+/7lrrvuuu1d73rXf+rSfP/73//Yzp07bwCAnTt33nDllVc+QtcfeOCBj05MTDS89tprZ/f29q5Y\nv379cx0dHUfnz59/cvfu3RdNTU3V3X///dd94AMfeFSm9fDDD3/44osvfjrI57dHtQda1KHaoFJt\n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\nijXJZBJHjx495eqrr74vmUzi05/+9G8Gui4Lpe0WLFiwYf369UuSySSeeuqpv1u4cOELyWQS999/\n/xeXL1/+SDKZRGdn54i6urq9f/3rXz8Utd3AfxKJRMmZZ565Z+/evXU9PT2ls2bN2r5jx46puraw\niRt2W95zzz3/c8OGDQvefvvtM775zW9+f6DrrFA/fX19w6qrqw++8847tc8888xiko8333zzqqj9\nCuPz+9///oJt27Y1Tp8+/TV+/Z133qldsmTJ+rq6ur2HDx8ey+9ddtllv162bNmjP/jBD76hSjOS\nm9mfSCNYRKiurm6dPXv2dgCoqKjomDp16s4DBw5MmjJlyq6zzjrrLRn+mWeeuWjmzJmv0krq1FNP\nfX/YsGEnZbgnnnji0pUrVz4IACtXrnxw7dq1SwFg3bp1n1qxYsUjpaWlvXV1dc319fV7Nm/ePO/g\nwYMTjx07Nnru3LlbAOCqq656iOLwtC677LLHn3/++UUAMGzYsJNdXV3liUQifvLkySHX71Rtt3//\n/skTJ048SJqH9vb2ysmTJ+8HgIkTJx48fvz4qL6+vpLjx4+PGj58eM8pp5zS7yXXUdvlH1u2bJlb\nX1+/p66urrm0tLR3+fLla9auXbtU1xZucdetW/cpINy2LCkp6evo6Kjo6OioKC0tHWqHzVnjueee\nu/DMM898u7a2dt/ixYufJfk4b968zS0tLTUyfNR++ccFF1zw4qmnnvq+vP6P//iP/++dd975LXl9\n7dq1S88444y/TJs2bYcuzUhuZiM6ULpI0dzcXNfU1NQ4b968zbowu3fvbojFYsmLL754/XvvvXfa\n8uXL19x0003fl+Ha2tqqqqqq2gCgqqqqra2trQoADhw4MGn+/PmbKFxNTU3L/v37J5eWlvbW1NS0\n0PXJkyfv379//2QA2L9//+Ta2tp9ABCPxxNjxow5euTIkbFjx4490tjY2DR37twt3/72t28PryaK\nD9R28+fP39TQ0LD7/PPPf+mb3/zmD06ePDnsj3/8498AwJIlS57+xS9+8YWJEyce7OzsHPnv//7v\nX6+srGyXaUVtl3/wegKcut20adN8XVu4xd28efM8INy2vPLKK3+5fPnyNd3d3WUPP/zw58OvhcGB\nNWvWLP/c5z73X/L6fffdd82KFSsekdej9isMrFu37lM1NTUtM2fOfJVf7+joqLjzzju/9dxzz134\n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\n", "text": [ "" ] } ], "prompt_number": 255 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will use this for a brief demonstration of how to write a new FITS file. Say we wanted to save just this slice to a file. We can create a new primary HDU with this data like so:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "new_hdu = fits.PrimaryHDU(data=primary_hdu.data[0], header=primary_hdu.header)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 256 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This copies over the header from the original file, but some of the keywords are no longer applicable, such as the WCS for the spectral axis, or the filename keyword:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "del new_hdu.header['FILENAME']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 257 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use a wildcard expression to take care of the WCS:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "del new_hdu.header['C*3']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 258 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note, however, that we did not have to fuss around with keywords related to the basic structure of the file, such as BITPIX or the NAXIS keywords. It is not necessary to manipulate such basic structural keywords by hand--their consistency with the data is managed automatically (in the future there will be further enhancements to make WCS manipulation more transparent too):" ] }, { "cell_type": "code", "collapsed": false, "input": [ "new_hdu.header" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 259, "text": [ "SIMPLE = T / conforms to FITS standard \n", "BITPIX = -32 / array data type \n", "NAXIS = 2 / number of array dimensions \n", "NAXIS1 = 720 \n", "NAXIS2 = 360 \n", "COMMENT FITS (Flexible Image Transport System) format is defined in 'Astronomy\n", "COMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H \n", "FLUX = 8.42259635886 / \n", "CRVAL1 = 0. / Value of longitude in pixel CRPIX1 \n", "CDELT1 = 0.5 / Step size in longitude \n", "CRPIX1 = 360.5 / Pixel that has value CRVAL1 \n", "CTYPE1 = 'GLON-CAR' / The type of parameter 1 (Galactic longitude in \n", "CUNIT1 = 'deg ' / The unit of parameter 1 \n", "CRVAL2 = 0. / Value of latitude in pixel CRPIX2 \n", "CDELT2 = 0.5 / Step size in latitude \n", "CRPIX2 = 180.5 / Pixel that has value CRVAL2 \n", "CTYPE2 = 'GLAT-CAR' / The type of parameter 2 (Galactic latitude in C\n", "CUNIT2 = 'deg ' / The unit of parameter 2 \n", "CHECKSUM= '3fdO3caL3caL3caL' / HDU checksum updated 2009-07-07T22:31:18 \n", "DATASUM = '2184619035' / data unit checksum updated 2009-07-07T22:31:18 \n", "DATE = '2009-07-07' / \n", "TELESCOP= 'GLAST ' / \n", "INSTRUME= 'LAT ' / \n", "ORIGIN = 'LISOC ' /LAT team product delivered from the LISOC \n", "OBSERVER= 'MICHELSON' /Instrument PI \n", "HISTORY Scaled version of gll_iem_v02.fit for use with P6_V11_DIFFUSE " ] } ], "prompt_number": 259 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Writing the file out with the `checksum=True` option will also update the `CHECKSUM` and `DATASUM` keywords:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "new_hdu.writeto('lat_background_model_slice.fits', checksum=True,\n", " clobber=True)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stderr", "text": [ "WARNING: Overwriting existing file 'lat_background_model_slice.fits'. [astropy.io.fits.file]\n", "WARNING:astropy:Overwriting existing file 'lat_background_model_slice.fits'.\n" ] } ], "prompt_number": 261 }, { "cell_type": "markdown", "metadata": {}, "source": [ "[^Back to top](#Table-of-Contents)" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Coordinates" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is a good place for a brief mention of the [`coordinates`](http://docs.astropy.org/en/stable/coordinates/index.html) interface; specifically the `SkyCoord` object, a high level interface for representation and manipulation of celestial coordinates. Astropy 0.4 only includes a few common coordinate systems (ICRS, FK4, FK5, and Galactic), but future versions will include more built-in coordinate systems, and users can already define their own systems.\n", "\n", "Creating coordinate objects is straightforward. We use units--often `u.deg` (a shorthand for `u.degree`) to specify the units of the angles:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from astropy.coordinates import SkyCoord\n", "from astropy import units as u" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 262 }, { "cell_type": "code", "collapsed": false, "input": [ "SkyCoord(ra=10.68458 * u.deg, dec=41.26917 * u.deg, frame='icrs')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 263, "text": [ "" ] } ], "prompt_number": 263 }, { "cell_type": "markdown", "metadata": {}, "source": [ "In addition to passing angular Quantity objects, the SkyCoord class can parse coordinate strings (this can be used to pass initialize a `SkyCoord` object from, say, a column of coordinates read from an ASCII table with the `Table` interface):" ] }, { "cell_type": "code", "collapsed": false, "input": [ "c = SkyCoord('00h42m44.3s +41d16m9s', frame='icrs')\n", "c" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 264, "text": [ "" ] } ], "prompt_number": 264 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can access the different components as [`Angle`](http://docs.astropy.org/en/stable/api/astropy.coordinates.Angle.html#astropy.coordinates.Angle) objects and convert them to other units:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "c.ra" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$10^\\circ41{}^\\prime04.5{}^{\\prime\\prime}$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 265, "text": [ "" ] } ], "prompt_number": 265 }, { "cell_type": "code", "collapsed": false, "input": [ "c.ra.hour" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 266, "text": [ "0.7123055555555556" ] } ], "prompt_number": 266 }, { "cell_type": "markdown", "metadata": {}, "source": [ "...and so on.\n", "\n", "It is also possible to convert our `SkyCoord` object to other coordinate frames:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "c.galactic" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 267, "text": [ "" ] } ], "prompt_number": 267 }, { "cell_type": "code", "collapsed": false, "input": [ "c.transform_to('galactic')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 268, "text": [ "" ] } ], "prompt_number": 268 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or we can create custom coordinate frames in order to adjust other parameters, such as the equinox:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from astropy.coordinates import FK5" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 269 }, { "cell_type": "code", "collapsed": false, "input": [ "FK5?" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 271 }, { "cell_type": "code", "collapsed": false, "input": [ "frame = FK5(equinox='J2010')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 272 }, { "cell_type": "code", "collapsed": false, "input": [ "c.transform_to(frame)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 273, "text": [ "" ] } ], "prompt_number": 273 }, { "cell_type": "markdown", "metadata": {}, "source": [ "[^Back to top](#Table-of-Contents)" ] } ], "metadata": {} } ] }