Skip to content

Releases: emsig/empymod

Arbitrary waveforms

31 Jan 11:03
7a7c221

Choose a tag to compare

This version finally introduces the possibility for arbitrary waveforms.

  • Modelling routines:

    • bipole and dipole:

      • Arbitrary waveforms: Time-domain modelling can new be done for any
        arbitrary piecewise linear waveform, in addition to impulse
        (signal=0), step-on (signal=1), and step-off (signal=-1)
        responses.
      • User-defined bandpass filters can now be applied to the frequency domain
        result through user-provided functions.
    • Merged loop into bipole; there is no need for a special routine.
      Simply use bipole with msrc='b' and mrec=True for the same
      effect.

  • New prints (if verbose):

    • The source/receiver types are new printed.
    • The signal/waveform is new printed.
  • New function empymod.utils.check_waveform, to check the waveform.

  • New deprecations (will be removed in v3):

    • empymod.model.loop will be removed in v3.
    • empymod.utils.check_bipole: New signature, it now returns also the
      src/rec field and
      type; old signature will be removed in v3.
    • empymod.utils.check_time: New signature, it now also returns the
      signal; old signature will be removed in v3.
    • empymod.utils.check_time_only: New signature, it now also returns the
      signal; old signature will be removed in v3.
  • Bumped the minimum requirements to:

    • Python 3.11
    • NumPy 2.0
    • SciPy, Numba, libdlf, scooby (without minimum version)

Bugfix ext. fcts with z+ up

21 Jan 18:08
c471fd7

Choose a tag to compare

  • Bugfix: Since v1.10.5, one can provide depth also in decreasing order. Internally, all parameters are reversed then. However, parameters in user-provided func_eta and func_zeta were not reversed, so far the user had to take care of this (and hence define them differently to the rest, which is a bug really). Now any provided parameter in the res-dict is also reversed. If verb>2, these parameters are finally also printed.

  • Gallery: New example IP and VRM, based on a notebook from @orerocks.

Flexible bipole coordinates

09 Jan 22:44
011acd0

Choose a tag to compare

  • Modelling routines: The definition of sources and receivers is now more flexible for all routines: all parameters can now be either of shape (1,) or (N,), where N is the number of sources/receivers. The exception is z for dipoles, which must be a scalar.

  • Gallery

    • New example Comparison to Biot-Savart, contributed by @SylvesterOester.
    • Fix bug in dipole/loop example.
  • Maintenance

    • Testing: added Python 3.14; removed Python 3.10.

TEM-FAST

06 Sep 18:33
5c7b962

Choose a tag to compare

New example TEM: AEMR TEM-FAST 48 system, contributed by @aignerlukas.

IP/Q clarifications

12 Mar 21:09
f7bd286

Choose a tag to compare

  • Modelling routines ip_and_q:
    • Use the corresponding co-planar loop configuration for the primary field.
    • Add warning to it that it is experimental.

In-phase and quadrature

10 Mar 20:15

Choose a tag to compare

  • Modelling routines: New function ip_and_q; this function is a wrapper, taking the same input as dipole. It then computes two responses, the secondary and the primary field, and returns the in-phase and quadrature components as common in profiling measurements using small sources. It only works for magnetic sources and receivers, and the frequency domain.
  • Gallery
    • New example In-Phase and Quadrature, demonstrating DUALEM-842 and GEM-2.
    • Clarification in the example Ward and Hohmann.
  • Maintenance
    • Testing: added Python 3.13; moved Mac/Win to 3.13.
    • Added plausible to website.

El. current density

25 Oct 09:09
a637736

Choose a tag to compare

The mrec keyword in empymod.bipole can now be set to j, in which case the electric current density (A/m2) is returned.

pyproject.toml

16 Oct 19:40
16fa9c6

Choose a tag to compare

Small maintenance release:

  • Update credits to reflect current situation.
  • Changed from setup.py to pyproject.toml.
  • Some maintenance in tests and docs.
  • Small modifications to the kernel.

NumPy v2

09 Oct 09:28
c34b4c9

Choose a tag to compare

The code is now compatible with NumPy v2.

  • Gallery Update Part I:

    • Update for Jupyterlab (ipympl/widget)
    • Replaced implicit by explicit pyplots
    • Use by default a positiv z-upwards coordinate system
    • Part I: frequency domain; reproducing; published
  • Bumped the minimum requirements to:

    • Python 3.10
    • SciPy 1.10
    • Numba, libdlf, scooby (without minimum version)
  • Maintenance:

    • Testing: dropped Python 3.9 (Python 3.13 not added yet).
    • Update for NumPy v2: mainly np.infty -> np.inf, np.float_ -> np.float64.
    • Some fixes to address warnings regarding the deprecated conversion of an array with ndim > 0 to a scalar.

Julia wrapper

25 Jun 14:43
0df1389

Choose a tag to compare

  • @ruboerner created a Julia wrapper for empymod! Added a note in this regard to the README and the installation instructions.
  • Small maintenance things and doc improvements.