Skip to content

Releases: emsig/empymod

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.

Bugfix np.seterr(all='ignore')

04 Jul 10:55
0467d97
Compare
Choose a tag to compare
  • Bumped the minimum requirements to:

    • Python 3.7
    • NumPy 1.17
    • SciPy 1.4
    • Numba 0.47
  • Legacy clean-up: The kernel of empymod used to switch off all NumPy errors
    via np.seterr(all='ignore'). That means that any script or library that
    used empymod switched off all warnings from NumPy, which is not good. Since
    empymod v2 this does make even less sense, as the entire kernel is jitted
    with numba. This setting is therefore removed.

Bugfix azm/dip broadcasting

23 Jun 07:06
f317472
Compare
Choose a tag to compare
  • Bugfix in empymod.bipole and empymod.loop when using various azimuths
    and dips (some cases used to cause a shape-mismatch error).

Theme change & streamline

30 May 19:19
229f8de
Compare
Choose a tag to compare
  • Streamline some things with emsig and emg3d:

    • Change theme from rtd to pydata.
    • New primary links https://emsig.xyz and https://empymod.emsig.xyz.
    • Move copyright from «The empymod Developers» to «The emsig community».
    • Slight rework of some parts of the docs.

Bugfix Windows int32/64

26 Mar 17:33
8676702
Compare
Choose a tag to compare
  • Bugfix Windows int32/64.
  • New example "Magnetotelluric".