-----------
**Release date**: yyyy-mm-dd
**doi**:
**Breaking changes**
* Remove functions ``extract``, ``vfilter``, and ``vremove`` from
``fatiando.mesher``. They were only used in certain runs of
``fatiando.gravmag.harvester`` and don't fit the overall design of the
``mesher`` package. They will be replaced by better designed methods in the
``PrismMesh`` class.
(`PR 383 <https://github.com/fatiando/fatiando/pull/383>`__)
* The ``seismic_image`` and ``seismic_wiggle`` functions from ``fatiando.vis``
don't specify default values for the ``dt`` argument anymore. This parameter
is specific to the dataset and shouldn't have a default value.
(`PR 366 <https://github.com/fatiando/fatiando/pull/366>`__)
* Refactor ``fatiando.datasets``. The ``load_surfer`` function now returns a
dictionary with the data and takes different arguments. The functions for
loading CRUST2.0 were removed.
(`PR 355 <https://github.com/fatiando/fatiando/pull/355>`__)
* Removed unused functions from ``fatiando.utils``: ``normal``. ``vecnorm``.
``vecmean``. ``vecstd``. ``sec2hms``. ``sec2year``. and ``year2sec``.
(`PR 361 <https://github.com/fatiando/fatiando/pull/361>`__)
* Remove function ``fromimage`` from ``fatiando.utils`` and method ``img2prop``
from ``fatiando.mesher.SquareMesh``. They were replaced by
``fatiando.datasets.from_image``.
(`PR 363 <https://github.com/fatiando/fatiando/pull/363>`__)
**Bug fixes**
* Fixes bug in ``fatiando.gravmag.imaging``, replacing
``transform._getfreqs(x, y, data, shape)`` with
``transform._fftfreqs(x, y, shape, shape)`` because that function was renamed.
(`PR 347 <https://github.com/fatiando/fatiando/pull/347>`__)
**New features and improvements**
* Center the colorbar on zero for ``seismic_image`` plots. Makes the plots look
nicer when using divergent colormaps like ``'RdBu'``.
(`PR 366 <https://github.com/fatiando/fatiando/pull/366>`__)
* Replace Cython coded functions in ``fatiando.gravmag.sphere`` with pure
Python + numpy code. Optimized the numpy code to get ~4x speedup in the
gravity function and ~2x in the magnetic functions over the Cython code.
As a bonus, reached 100% test coverage for this module.
(`PR 364 <https://github.com/fatiando/fatiando/pull/364>`__)
* Replace Cython coded functions in ``fatiando.gravmag.polyprism`` with pure
Python + numpy code. Functions run as fast or faster than their Cython
versions thanks to some optimizations (combine logarithm computations).
(`PR 368 <https://github.com/fatiando/fatiando/pull/368>`__)
* New function ``from_image`` in ``fatiando.datasets`` that creates a template
for a model from an image file.
(`PR 363 <https://github.com/fatiando/fatiando/pull/363>`__)
* Added class ``RickerWavelet`` to ``fatiando.seismic`` to generate and sample
the wavelet. Lays the ground work to expand later with more wavelets.
(`PR 362 <https://github.com/fatiando/fatiando/pull/362>`__)
* Added functions ``lame_lambda`` and ``lame_mu`` to ``fatiando.seismic`` that
calculate the Lamé parameters :math:`\lambda` and :math:`\mu` from the P and
S velocities and density.
(`PR 359 <https://github.com/fatiando/fatiando/pull/359>`__)
* Added option ``restrict`` to function ``harvest()`` in
``fatiando.gravmag.harvester``. The option takes a string list with
directions in which the harvester will be restricted in seed growth.
(`PR 314 <https://github.com/fatiando/fatiando/pull/314>`__)
* Added option ``below`` to ``carvetopo()`` function of
``fatiando.mesher.PrismMesh``. If set to ``True``, prisms below the input
surface will be masked.
(`PR 313 <https://github.com/fatiando/fatiando/pull/313>`__)
* Added two new functions to ``fatiando.datasets``. ``fetch_hawaii_gravity``
loads raw gravity and topography data for Hawaii. The dataset is packaged
with Fatiando and users don't have to download it separately. ``check_hash``
verifies that the hash of a file is same as a known (recorded) hash. Used to
check data files for corruption.
(`PR 355 <https://github.com/fatiando/fatiando/pull/355>`__)
* More rigorous regression tests for the ``fatiando.gravmag`` forward modeling
functions. Tests compare the current output against a saved output that if
known to be correct. This helps ensure that the values don't change suddenly
but in a consistent way that we wouldn't catch otherwise (like by a constant
value).
(PRs `364 <https://github.com/fatiando/fatiando/pull/364>`__,
`395 <https://github.com/fatiando/fatiando/pull/395>`__,
`396 <https://github.com/fatiando/fatiando/pull/396>`__)
**Development/maintenance**
* Turn ``fatiando.mesher`` module into a package (as was done for ``gridder``).
The tests were moved into ``fatiando/mesher/tests``. Nothing changes from the
user perspective.
(`PR 383 <https://github.com/fatiando/fatiando/pull/383>`__)
* Better internal organization of the ``fatiando.gridder`` module. Users won't
have to modify theirs existing code. These changes only impact the developer
side. Mainly, the module is now a package with functions divided into small
modules, making it easier to read and modify the code. Also implemented many
new tests, reaching 100% coverage, and several new gallery plots.
(`PR 297 <https://github.com/fatiando/fatiando/pull/297>`__)
* Reorganized ``fatiando.datasets`` as a package and reached 100% test
coverage. This change doesn't impact users directly.
(`PR 355 <https://github.com/fatiando/fatiando/pull/355>`__)
.. _changelog-0.5: