CHANGES
--------

0.9.9 (2013-04-25)
------------------

    The main change in this version is that APLpy is now an Astropy-affiliated
    package. This means that the Astropy core package is now required, but
    PyFITS and PyWCS are no longer required as dependencies.

    This release is now no longer compatible with python-montage, and users
    should use the montage-wrapper package instead:

       http://www.astropy.org/montage-wrapper/

    Similarly, PyAVM 0.9.1 or later is now required, and APLpy cannot use
    earlier versions:

      http://astrofrog.github.io/pyavm/

    This release is also the first release fully compatible with Python 3.

    New features
    ~~~~~~~~~~~~

    - file-like objects can now be passed to ``FITSFigure.save()``

    - the subplot= argument to ``FITSFigure`` can now take the tuple syntax
      ``(2, 2, 1)`` instead of the full axes box, e.g. ``[0.1, 0.1, 0.9,
      0.9]`` (thanks to Anika Schmiedeke for a patch).

    - a colorbar label can now be set (thanks to Daniel Goering for a patch).

    API changes
    ~~~~~~~~~~~

    - the ``smooth`` argument used for images and contours can no longer take
      a tuple. It takes either a single value for symmetric kernels (``gauss``
      and ``box``), or it can take a Numpy array for any other kernel shape.

    Bug fixes
    ~~~~~~~~~

    - fixed bug that caused regions read from a ds9 region file to be offset
      by one pixel.

    - fixed bug that caused an exception when adding a Beam

    - fixed bug that caused labels in decimal degrees to disappear for images
      near the poles.

    - fixed a bug that caused RGB images to appear vertically flipped with
      certain versions of Matplotlib.

    - added a workaround for a bug in Matplotlib that caused patches to appear
      filled even with ``facecolor='none'``.

    - fixed bug that caused images with NaN or Inf values to not be smoothed
      correctly.

Version 0.9.8

    This version fixes issues that occurred when using APLpy with PyFITS
    3.0.5. This version also contains the first unit/regression tests (which
    we will include many more of in future).

    New features
    ~~~~~~~~~~~~

    - APLpy now includes regression tests that can be run with:

        python setup.py test

    - FITSFigure can now be initialized with files or HDUs with missing WCS
      information.

    - FITSFigure can now be initialized directly with Numpy arrays

    - Added methods to show/hide ticks

    Bug fixes
    ~~~~~~~~~

    - Fixed a major bug that prevented data cube slicing with PyFITS 3.0.5

    - Fixed a few bugs that occurred when plotting a grid for a few specific
      projections.

    - Fixed a bug that cause the error:

        'Figure' object has no attribute '_auto_refresh'


Version 0.9.7

    This version sees the re-write of the WCS support to enable plotting of
    FITS files with arbitrary coordinates rather than just sky coordinates,
    and to allow slicing of multi-dimensional data cubes. It is now very easy
    for example to make position-velocity plots from a 3D FITS cube.

    See http://aplpy.github.com/documentation/slicing.html for details.

    New features
    ~~~~~~~~~~~~

    - added the ability to plot arbitrary coordinate systems rather than just
      sky coordinates.

    - added the ability to slice multi-dimensional data cubes.

    - added minor ticks.

    - pressing 'c' toggles between showing world and pixel coordinates in the
      bottom of the interactive window.

    - added the ability to specify slice indices for 3D FITS cubes in
      make_rgb_image.

    - allow pyregion.ShapeList instance to be passed to show_regions.

    - the 'logging' module is now used for any stdout output.

    - added an overlap= argument to show_contour to force only contours with
      at least one point in the image to be shown. This can result in
      significantly improved performance, and smaller files, when large FITS
      files are used to display contours.

    Changes
    ~~~~~~~

    - the default frame color for the 'pretty' theme (the default) is now
      black


Version 0.9.6

    APLpy is now released under an MIT license

    New Features
    ~~~~~~~~~~~~

    - support for plotting AVM-tagged images (requires PyAVM)

    - make_rgb_image can now optionally embed AVM Spatial.* meta-data into
      images (off by default, requires PyAVM)

    - added support for multiple beams

    - added method to show arrows

    - added method to show lines (thanks to Moritz Guenther)

    - added close() method to FITSFigure to free up memory (useful when
      making many finder charts for example)

    - added B1950 <-> J2000 conversion

    - added axis_labels.set_x/yposition and tick_labels.set_x/yposition to
      control whether labels are on top/bottom or left/right of the axes.

    - now uses python-montage wrapper for reprojection

    - added support for passing a WCS object to FITSFigure instead of a
      file

    - allow a custom box to be specified for the colorbar

    API changes
    ~~~~~~~~~~~

    - vmid has changed meaning for log image scaling. It is now the
      baseline value to subtract from pixel values before taking the log
      (defaults to zero)

    - added interpolation= option to show_grayscale and show_colorscale

    - added support for zorder= in methods to show shapes (controls which
      layers appear on top of which)

    - added north=, system=, and equinox= to make_rgb_cube for more control
      over the final projection

    Bug fixes
    ~~~~~~~~~

    - added a few workaround for matplotlib bugs

    - fixed a major bug with downsampling

    - fixed bug with import of local modules

    - other minor bug fixes

Version 0.9.5

    New Features
    ~~~~~~~~~~~~

    - Support for image and contour smoothing

    - Support for slicing of n-dimensional datacubes

    - Support for beam:
        -> add_beam()
        -> remove_beam()

    - Support for colorbar:
        -> add_colorbar()
        -> remove_colorbar()

    - Support for scalebar:
        -> add_scalebar()
        -> remove_scalebar()

    - Support for plotting ds9 region files:
        -> show_regions()

    - Support for automatic bounding box adjustments when saving

    - New method to set the color to use for NaN values:
        -> set_nan_color()

    - Auto refreshing has been improved. Figures only refresh once per user
      command if refreshing is turned on.

    - Ensure tick spacing / label format consistency

    - New method to overlay polygons

    API changes
    ~~~~~~~~~~~

    - The API has been majorly overhauled. Methods that have been
      deprecated will give instructions on the new methods to use.

    Bug fixes
    ~~~~~~~~~

    - Fixed a bug with filled contours

    - Fixed bug with remove_layer

    - Fixed bug with montage commands

Version 0.9.4

    Important changes
    ~~~~~~~~~~~~~~~~~

    Matplotlib 0.99 is now required for APLpy

    New Features
    ~~~~~~~~~~~~

    - methods such as show_contour, show_markers, etc. now return the
      contour, marker, etc. object

    - added a method to retrieve the object in a specific layer:
        -> get_layer()

    - ability to show the beam for the observations:
        -> show_beam()
        -> hide_beam()
        -> set_beam_properties()

    - added the ability to show/hide only the x or y axis/tick labels:
        -> show_xtick_labels()
        -> hide_xtick_labels()
        -> show_ytick_labels()
        -> hide_ytick_labels()
        -> show_xaxis_labels()
        -> hide_xaxis_labels()
        -> show_yaxis_labels()
        -> hide_yaxis_labels()

    - convenience functions for world to pixel and pixel to world
      conversion:
        -> world2pixel()
        -> pixel2world()

    - added a convention= argument to FITSFigure() and show_contour(). This is
      to be used in cases where the WCS interpretation is ambiguous. For
      example, a -CAR projection with CRVAL2<>0 can be interpreted in two
      different ways. If an ambiguous case pops up, APLpy will raise an
      exception and ask for the convention to be specified.

    API changes
    ~~~~~~~~~~~

    - set_labels_latex() is now set_system_latex()

    Bug fixes
    ~~~~~~~~~

    - the current position of the cursor in world coordinates is now correctly
      shown in interactive mode

    - fixed an issue which caused RGB FITS cubes to be 64-bit

    - fixed a bug which meant that the coordinate grid was not updated
      immediately during pan and zoom

Version 0.9.3

    New Features
    ~~~~~~~~~~~~

    - added aplpy.make_rgb_cube() that allows users to make a FITS RGB cube
      from three FITS files with different projections

    - added aplpy.make_rgb_image() that allows users to make an RGB file in
      standard image formats from a FITS RGB cube

    - added width= and height= arguments to aplpy.FITSFigure.recenter()
      method.

    - added show_circles(), show_ellipses(), and show_rectangles() to
      aplpy.FITSFigure

    - new hide_grayscale() and hide_colorscale() methods

    API changes
    ~~~~~~~~~~~

    - changes to the API for set_tick_labels_* and set_axis_labels_* methods

    - percentiles values are now specified between 0 and 100

    Bug fixes
    ~~~~~~~~~

    - fixed an issue which ocurred when reading in FITS cubes

    - fixed an issue which led to the last tick along an axis being missing
      for coarse images

    - fixed a bug that occured if set_theme was called before showing the
      image

    - fixed a bug that occured when show_contour was called after removing a
      layer

    Acknowledgments
    ~~~~~~~~~~~~~~~

    Thanks to Paul Ray, Adam Ginsburg, Gus Muench, and forum user hatchell for
    bug reports and feature suggestions.


Version 0.9.2

    Improvements
    ~~~~~~~~~~~~

    - Improved compatibility issues with matplotlib 0.98.6svn

    - Improved speed of initialization of FITSFigure


Version 0.9.1.2

    Bug fixes
    ~~~~~~~~~

    - fixed a major bug that occured when reading in Galactic -CAR images


Version 0.9.1

    SciPy Dependency Dropped
    ~~~~~~~~~~~~~~~~~~~~~~~~

    While SciPy is a great python package, it can be troublesome to build and
    install from scratch. Thanks to Tom Aldcroft's suggestion and highlighting
    some of his own code we were able to easily drop the SciPy dependency.

    New Features
    ~~~~~~~~~~~~

    - Users can now pass a pyfits HDU instance instead of filenames for both
      FITSFigure() and show_contour() if desired.

    - Users can now specify an existing figure with the figure= argument.

    - Users with a recent enough version of matplotlib (0.98.6svn) can now use
      the subplot= argument to place multiple plots in a single figure.

    - New hide/show_tick_labels() and hide/show_axis_labels() methods.

    - Show_grayscale and show_colorscale() now accept percentile_lower= and
      percentile_higher= as arguments.

    - Show_grayscale and show_colorscale() now print out vmin and vmax if
      chosen automatically.

    - New recenter() method to pan and zoom non-interactively.

    General Fixes and Optimization
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    - Added HDU keyword for the show_contour() method.

    - More robust reading in FITS file for the show_contour() method.

    - Warning if FITS files do not exist for FITSFigure() or show_contour().


Version 0.9.0

    First public beta release