--------------------
Breaking changes
^^^^^^^^^^^^^^^^
- Removed ``Bin`` class. Bin information is now available on a per-quantity basis (:issue:`109`). See :ref:`What's new? <whats-new>` and documentation for details.
- Syntax on the inputs to the ``Query`` and ``Results`` tools has been changed.
- DAP spaxel queries have been disabled due to performance issues. We expect to bring them back soon. Metadata queries (those querying the NSA or DAPall tables) are still available.
- ``getSpaxel`` now only loads the quantities from the parent object (that means that, for example, ``Maps.getSpaxel`` only loads ``Maps`` properties by default). Additional quantities can be loaded using `~marvin.tools.spaxel.Spaxel.load`.
- ``getSpaxel`` accepted arguments have been changed to ``cube``, ``maps``, and ``modelcube``. The formerly accepted arguments (``drp``, ``properties``, ``model(s)``) now raise a deprecation error.
Added
^^^^^
- Added cheatsheet to docs.
- New Web authentication using Flask-Login
- New API authentication using Flask-JWT-Extended
- Adds MPL-7 / DR15 datamodel
- New config.access attribute indicating public or collab access
- New config.login method to handle token-based login
- New marvin.yml config file for customization of configuration options
- Adds User table into the history schema of mangadb. Tracks user logins.
- ``Map`` has a new method ``getSpaxel`` to retrieve an ``Spaxel`` using the parent ``Maps``.
- New configuration option in ``marvin.yml``, ``default_release``, to set the release to be used when Marvin gets imported (:issue:`463`).
- Applying a NumPy ufunc (except ``np.log10()``) raises ``NotImplementedError`` because ivar propagation is not implemented yet.
- New ``Marvin Image`` Tool to load optical images using the MMA (:issue:`22`)
- New ``Bundle`` and ``Cutout`` utility classes
- New ``MMAMixIn`` for providing multi-modal data access
- ``qual_flag`` and ``pixmask_flag`` are now stored in the datamodel (:issue:`479,482`).
- ``Query`` tool now accepts a new ``targets`` and ``quality`` keyword argument which enables querying on target or quality maskbit labels. (:issue:`485`)
- Added a new API route for streaming large query results. This uses a generator to stream large results back to the client to minimize memory usage and bulk responses.
Changed
^^^^^^^
- Integrated datamodel plotting params into actual datamodel structures
- Moved netrc checks into the Brain
- Expanded sasurl into public and collab urls
- Changes personal emails to sdss helpdesk email in web
- Added rawsql and return_params columns to history.query table in mangadb
- Extra keyword arguments passed to ``Spectrum.plot`` are now forwarded to ``Axes.plot``.
- Tools (e.g., ``Cube``, ``Maps``) can now be accessed from the ``marvin`` namespace (e.g., ``marvin.tools.Cube`` or ``marvin.tools.cube.Cube``).
- Map plotting ``ax_setup()`` function is now hidden.
- Moved ``yanny.py`` to ``extern/`` and added a readme file for the external packages (:issue:`468`).
- `~marvin.tools.quantities.Spectrum.plot` now only masks part of the spectrum that have the ``DONOTUSE`` maskbit set (:issue:`455`).
- ``pixmask`` is now available for all quantities (except ``AnalysisProprty``). The property ``masked`` now uses the bit ``DONOTUSE`` to determine what values must be masked out (:issue:`462`).
- Raises error when applying ``inst_sigma_correction`` on ``stellar_sigma`` MPL-6 maps. Applies correction to stellar_sigma and emline_sigma for web maps with added 'Corrected' title (:issue:`478`)
- Removes targeting bits from ``Spaxel`` and ``Bin`` (:issue:`465`).
- The name of the channel is now shown in the ``Property`` description (:issue:`424`).
- Replaced inconsistent parameter ``model`` in `~marvin.tools.maps.Maps.getSpaxel`. Use ``models`` instead.
- MarvinError now accepts an optional `ignore_git` keyword to locally turn off the git addition to the message
- Using the `return_all` keyword in ``Query`` or `getAll` in ``Results`` now calls the streaming API route instead.
- When `~marvin.tool.cube.Cube` or `~marvin.tool.modelcube.ModelCube` are instantiated from file, gunzip the file to a temporary location to speed up subsequent access (:issue:`525`).
- Convert MMA warnings to debug messages (:issue:`580`).
Fixed
^^^^^
- Issue :issue:`421` - query returning spaxel props returns wrong total count
- Bugfix - Python 3 xrange syntax bug in buildImageDict
- ``Bin._create_spaxels`` instantiating spaxels with the wrong ``(i,j)`` values for the bin. The ``(i, j)`` values from the ``binid`` map were being swapped twice before sending them to ``SpaxelBase`` (:issue:`457`).
- A bug in the calculation of the deredden inverse variance in a `~marvin.tools.quantities.datacube.DataCube`.
- Issue with setting drpall path on initial import/set of release before tree has been planted
- Issue :issue:`456` - spectrum web display shows incorrect RA, Dec
- Issue :issue:`422` - ensuring config auto checks access to netrc
- Issue :issue:`423` - adding marvin.yml documentation
- Issue :issue:`431` - adding login documentation
- Issue :issue:`151` - adding web spectrum tooltips
- Issue :issue:`548` - failed to retrieve ModelCube extension in remote mode
- Fixed typo by in method name ``Spectrum.derredden -> Spectrum.deredden``.
- Fixed `305 <https://github.com/sdss/marvin/issues/305>`_ - adding ivar propogation for np.log10(Map)
- A bug when explicitly returning default parameters in a query (:issue:`484`)
- Fixed `510 <https://github.com/sdss/marvin/issues/510>`_ - fixes incorrect conversion to sky coordinates in map plotting.
- Fixed `563 <https://github.com/sdss/marvin/issues/563>`_ - fail retrieving Query datamodels in Python 3.6+.
- Fixes bug with sasurl not properly being set to api.sdss.org on initial import
- Incorrect setting of the default bintype to download from web (:issue:`531`).
- Fixed :issue:`536`, :issue:`537`, :issue:`538`. Added modelcube to downloadList.
- Incorrect mismatch warning between MPL-7 and DR15 (:issue:`495`).
- Incorrect handling of maskbits when the mask does not contain any of the bits in the list (:issue:`507`).
- Fixed :issue:`534` - flipped axes in NSA scatterplot when plotting absmag colors
- Fixed :issue:`559` - bug in check_marvin when marvindb is None
- Fixed :issue:`579` - bug in MMA with marvindb preventing files from opening
- Fixed :issue:`543`, :issue:`552`, :issue:`553` - bugs with various Query handlings
- Fixed :issue:`575` - cannot access maps due to bug in login and authentication in Interaction class
- Fixed :issue:`539` - print downloadList target directory
- Fixed :issue:`566` - made error message for web query with non-unique parameters name more specific
Refactored
^^^^^^^^^^
- Moved `marvin.core.core` to `marvin.tools.core` and split the mixins into `marvin.tools.mixins`.
- Reimplemented `~marvin.tools.mixins.aperture.GetApertureMixIn.getAperture` as a mixin using photutils apertures (:issue:`3,315`).
- Reimplemented `~marvin.tools.rss.RSS` as a list of `~marvin.tools.rss.RSSFiber` objects (:issue:`27,504`).
- Moved pieces of MarvinToolsClass into `marvin.tools.mixins`.
- Reimplemented `~marvin.tools.query.Query` to remove local query dependencies from remote mode usage.