Emg3d

Latest version: v1.8.4

Safety actively analyzes 682404 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 5

1.8.4

-----------------

**2024-10-09**

The code is now compatible with NumPy v2.


- Created foundation for new module ``inversion``.

- Bumped the minimum requirements to:

- Python 3.10
- SciPy 1.10
- empymod 2.3.2
- Numba (without minimum version)

- Maintenance

- Testing: dropped Python 3.9 (Python 3.13 not added yet).
- Update for NumPy v2: mainly ``np.infty -> np.inf``.
- Add notes for ``ipympl`` (interactive plots in modern Jupyter).
- Reduce code by making use of new SciPy new features (complex-valued
map_coordinate; lazy loading).

1.8.3

------------------------------

**2024-06-27**


- New hard dependency: ``empymod`` changed from being a soft dependency to
being a hard dependency.

- Simulation

- A new parameter ``tol_gradient`` can be provided in the dict
``solver_opts``; by default it is set to the value of ``tol``. ``tol`` is
the value used for ``compute`` (the forward), ``tol_gradient`` is used for
``gradient``/``jtvec`` and ``jvec`` (the gradient). In inversions, one can
set the tolerance for the gradient often to a lower value, which saves
computation time.

- Survey

- New attributes ``isfinite`` and ``finite_data``. Former returns the indices
of the finite data, latter returns directly the finite data.

- Electrodes

- Fixed ``TxMagneticDipole``-representation and improved documentation of the
magnetic sources.

- Maintenance:

- Bumped the minimum requirements to:

- Python 3.9
- SciPy 1.9
- Numba 0.53
- empymod 2.3.0 (NEW requirement)

- Testing: added Python 3.12, dropped Python 3.8.

- Fix remaining outdated ``python setup.py`` commands.

- Many small things to keep the package updated.

1.8.2

---------------------------

**2023-05-31**


- ``io``: New function ``convert`` to convert a file that was saved with emg3d
from one file format to another file format.
- Installation through pip has new the option ``pip install emg3d[full]``,
which installs all soft dependencies as well.

- Bumped the minimum requirements to:

- Python 3.8
- NumPy 1.19
- SciPy 1.5
- Numba 0.50

- Bug fixes, small improvements and maintenance

- Testing: added Python 3.11, dropped Python 3.7.
- Adjust copyright notice to only include original year, so it has not to be
adjusted each year.

1.8.1

-----------------------

**2022-10-15**


- Small improvements to the ellipse-function (and the CLI):

- The major and minor axis of the ellipse are new forced to be at least 1e-9.
- A radius of 0.0 provided through the CLI is now respected (was before
overwritten).

- ``empymod`` is more verbose when using ``layered`` computations.

- Maintenance:

- Replace deprecated ``sphinx-panels`` with ``sphinx-design``.

1.8.0

--------------------------

**2022-08-31**

The simulation class takes new the parameters ``layered`` and ``layered_opts``,
where the default values are False and None, respectively. If ``layered=True``,
there will be no 3D computations. Instead, it will create a local layered (1D)
model for each source-receiver pair, and compute the response using the
semi-analytical code ``empymod`` (which needs to be installed manually, as it
is a soft dependency). In this case an eventual gradient is computed using the
finite-difference method, not the adjoint-state method, perturbing each layer
slightly. The main purpose of these layered computations is for quick checks,
QC, verifications, etc. Layered computation is also possible through the CLI,
through the new flag ``-l`` or ``--layered``, and a new section ``[layered]``
in the config file.

Other changes (many of them related to the above):

- Model instances have a new attribute ``exctract_1d``, which returns a layered
(1D) model, extracted from the 3D model according the provided parameters;
see :attr:`emg3d.models.Model.extract_1d`.

- CLI takes new the boolean ``add_noise`` in the section ``[noise_opts]``
(default is True).

- Maps: New function ``ellipse_indices`` returning a boolean indicating which
points fall within a general ellipse for the provided input parameters.

- Bug fixes, small improvements and maintenance

- Simulation.misfit returns an ndarray again instead of an DataArray (was
erroneously changed in v1.2.1).
- Write json can now handle NumPy int/bool/float.
- A clean on a Simulation now removes correctly the weights.
- Capture error in jtvec if weight is complex NaN (should be real).
- Model: ``mapping`` can now be an already instantiated map (sort of
undocumented).
- Cleaned-up the namespace by setting ``dir()`` explicitly.
- Replace ``pytest-flake8`` by plain ``flake8``.
- Moved all multiprocessing-related functions to ``_multiprocessing.py``.

1.7.1

--------------------------------

**2022-08-02**

- Meshing: Small fix to the automatic gridding from v1.5.0 (non-backwards
compatible). A provided z-vector is new trimmed to the domain before the
domain might be expanded due to the provided seasurface (which is as it was
always intended, but not as it was implemented).
- Few small maintenance things in the meta files.

Page 1 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.