Skip to content

Releases: emsig/empymod

El. current density

25 Oct 09:09
a637736
Compare
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
Compare
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
Compare
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
Compare
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.

libdlf and scooby

01 Mar 20:14
e7c25e5
Compare
Choose a tag to compare

The digital linear filters are outsourced to libdlf, reducing the lines of code of empymod by over 50%. In addition to the new requirement libdlf, scooby is added as a requirement. Most user questions can be adressed much better if they provide the output of empymod.Report() - however, most users do not have scooby installed. Having it as a requirement will make support smoother. Both new requirements are very lightweight modules, having at most numpy as a dependency.

  • Filters:

    • The digital linear filters are outsourced to libdlf (https://github.com/emsig/libdlf). Note: How to access filters changed! The old way still works, with a deprecation note stating how to change your code. The old way will be removed in v3.0.
  • Examples:

    • @efinden expanded the "Cole-Cole IP" example.
  • Maintenance:

    • Bumped the minimum requirements to:

      • Python 3.9
      • SciPy 1.9
      • Numba 0.53
      • libdlf (NEW requirement)
      • scooby (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.

Flexible dipole coordinates

31 May 09:22
2baa096
Compare
Choose a tag to compare
  • Modelling routines: The definition of the coordinates for dipole, dipole_k, and analytical is now more flexible (x and y coordinate can now have different dimension, as long as one is a scalar).

  • Bumped the minimum requirements to:

    • Python 3.8
    • NumPy 1.19
    • SciPy 1.5
    • Numba 0.50
  • Bug fixes, small improvements and maintenance:

    • Cleaned-up the namespace by setting dir() explicitly.
    • 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.

Minimum offset

15 Oct 19:16
53e7942
Compare
Choose a tag to compare
  • Minimum offset:

    Change regarding the enforced minimum horizontal offset, which can be set
    through empymod.set_minimum(min_off=1e-3), where 1e-3, hence 1 mm, is the
    default. Until now, responses for smaller offsets were set to NaN. New, they
    return the response for the minimum offset. The raised warning stays the
    same.

  • Maintenance

    • Exclude scipy!=v1.9.0 from MacOS/Windows test.
    • Replace pytest-flake8 by plain flake8.
    • Change the way spacing and shift are calculated in
      fdesign.print_result to avoid numerical precision issues.
    • Replace deprecated sphinx-panels with sphinx-design.

I/O & CLI

02 Aug 20:59
3076ee1
Compare
Choose a tag to compare
  • I/O & CLI:

    • New Command-Line Interface (CLI) for the top-level modelling functions
      bipole, dipole, loop, and analytical. Consult the manual
      for its description, or type in your terminal empymod --help. Note that
      the CLI is a simple wrapper and currently lacks proper logging.
    • New module io to save and load inputs and data.
  • Maintenance:

    • Improved load time by lazy-loading matplotlib and some scipy submodules.
    • Removed the file runtests.sh; uses make instead.

Squeeze

20 Jul 13:05
6ccc0e9
Compare
Choose a tag to compare
  • The main modelling routines bipole, dipole, loop, and
    analytical take a new keyword argument squeeze, which is set to
    True by default. If true, the output is squeezed (status quo); if false,
    the output is always a three-dimensional array (nfreqtime, nrec, nsrc).

  • One can define new +np.infty as interface. Only use-case is to enforce a
    coordinate system in a two-layer case with an interface at z (see example
    coordinate system in the educational section of the gallery).

  • Documentation:

    • Expanded note on FFTLog.
    • Expanded note on coordinate system.
    • Changed the description from optional to default: xyz in the main
      modelling routines.
  • Maintenance:

    • Use scipy through conda in CI.
    • Fix do_3d_projection for matplotlib>3.5.0.

Random noise example

20 Nov 11:49
446442d
Compare
Choose a tag to compare
  • New example: Random noise for f-domain CSEM data.

  • Maintenance:

    • Change in the njit-settings of kernel.wavenumber to work with numba>=0.54.
    • Cannot use matplotlib==3.5.0 to build the gallery (matplotlib#21688).
    • Move up the minimum matplotlib in the tests.
    • Added a Cron-job to run the tests monthly; every 20th at 14:14.