Skip to content

Releases: gimli-org/gimli

v1.4.0

05 Apr 09:57
Compare
Choose a tag to compare

What's Changed

  • add support for Mac OS (Apple Silicon chips) again by @carsten-forty2, @andieie & @florian-wagner
  • update gimliuses.bib by @aurorec in #495 and other new papers
  • separat VES related stuff from physics.ERT as own module physics.VES
  • switch several tutorials (VES, Polyfit, DC+EM joint inversion) to modern (pg>1.2) framework styles
  • new example additional Constraints (example layer interface in VES)
  • three new ERT examples on 2D crosshole, 3D surface and 3D crosshole geometries
  • new function extract2dSlice for slicing 3D models into 2D meshes by using PyVista
  • widely avoid use of pg.core functions by sorting them into math, matrix etc.
  • simplify passing keyword arguments to inversion (e.g. C=, Ctype=)
  • extended docstrings and doctests, improvements of webpage
  • lots of bug fixes (e.g. loading duplicate sensors) and new tests to prevent bugs
  • fix error in FDEM modelling for small distances and large elevations

New Contributors

Full Changelog: v1.3.1...v1.4.0

v1.3.1

31 Mar 21:12
Compare
Choose a tag to compare

What's Changed

  • Add scooby-report as pg.Report() by @prisae in #445
  • update of CSS styles and sphinx themes for website
  • add 3D magnetics modelling and inversion with example
  • new tutorials on meshes, datacontainers, regularization, region control and prior data (from Transform 2022)
  • re-structure examples, e.g. induced polarization in own section
  • update of several examples to modern styles
  • add some 3D slicing functions by using pyVista
  • fix matplotlib>3.5 bugs by enabling Vector[np.newaxis
  • lots of bug fixes
  • improvement of documentation and test coverage

New Contributors

Full Changelog: v1.3.0...v1.3.1

v1.3.0

31 Aug 07:16
Compare
Choose a tag to compare

What's Changed

  • change release schedule (version numbering) so that core updates are MAJOR.MINOR.0 and pure Python updates are counting the patch number
  • add jupyter backend panel for 3D pyvista plots in Jupyter Notebook by @andieie in #364
  • add several logical matrices: TransposeMatrix, SquaredMatrix, SquaredTransposeMatrix additionally to horizontally, vertically or diagonally combined matrices
  • add Python-based inverse solvers such as LSQR, CGLS, RRLS
  • introduce LSQR-based inversion framework for including parameter constraints (Wagner et al. 2019)
  • cleanup frameworks to follow v1.2 API
  • improve traveltime manager for gradient models under topography and extracting raypaths
  • add more functionality for 3D mesh generation using pg.meshtool.createParaMeshPLC3D
  • add more synthetic sugar like pg.show(mesh, "property"),
  • add more examples, particularly involving 3D plots, improve and cleanup existing examples
  • improve docstrings and test coverage
  • fix lots of minor and some major bugs
  • improve code readability

Full Changelog: v1.2.6...v1.3.0

v1.2.6

07 Jun 09:51
Compare
Choose a tag to compare

General

  • lots of bug fixes and minor improvements
  • extend documentation and test coverage
  • fix problems with matplotlib versions >= 3.5
  • allow negative indices into pg Vectors
  • symlog transformation pg.trans.TransSymLog (for signed logarithmically distributed data)

Inversion

  • clearer starting model behavious
  • clarify reference model behaviour by invert(isReference=True) (by default False! before accidentially True)
  • regularization API: inv.setRegularization()
  • geostatistical regularization by using correlationLengths=[Ix, Iy, Iz] (so far only global) regularization

Modelling

  • PriorModelling class for both demonstration purposes and incorporation of prior data
  • LinearModelling based on pg.Modelling for linearized problems

Matrices

  • RepeatVMatrix, RepeatHMatrix, RepeatDMatrix for vertically/horizontally/diagonally repeated block matrices
  • FrameConstraintMatrix for regularizing (spatially, temporally or spectrally) constraints in frame (multiple models) inversion

Frameworks

  • Multi-frame (e.g. timelapse) framework pg.frameworks.MultiFrameModelling

SIPSpectrum: double Coule-Cole fit with various options (resistivity/Pelton vs. conductivity, tau definition, add vs. mult)
ERT: generateDataPDF

Full Changelog: v1.2.5...v1.2.6

Version used at Transform2021

18 Apr 18:47
Compare
Choose a tag to compare
v1.2.1

Version presented at Transform 21

v1.1.1

01 Apr 19:11
Compare
Choose a tag to compare

API change

  • [API change] Restructuring / API / default changes for 1.1 #124
  • [API change] Move pg.mplviewer to pg.viewer.mpl #121

building and distribution

  • [building and distribution][documentation] Python 3.6 Win64 1.0.12 Wheel missing #214
  • [building and distribution][testing] New structure for testdata #62

closed

  • [closed] Save results of seismic tomography inversion #264
  • [closed] traveltime tomography with close geometry #258
  • [closed] how to display pseudosection and phiM and phiD curves and tikhonov curves in ERT #257
  • [closed] Jacobian matrix for homogeneous model in ERT #252
  • [closed] petrophysical joint inversion of ERT and SRT #251
  • [closed] error installing pyBERT on python notebook #249
  • [closed] Pygimli and seismic reflection #248
  • [closed] [QUESTION] complex resistivity inversion #247
  • [closed] ERT inversion with geostatistical regularization #246
  • [closed] Missing Method in Update to 1.1 #244
  • [closed] Cannot add data to VTK export #242
  • [closed] [Question] ERT simulate - values in the data container #240
  • [closed] Is it possible to use the c++ core in c++ programming #238
  • [closed] how to set b as a velocity field in the solveFiniteElements module #237
  • [closed] ERT Field Data With Topography #236
  • [closed] New to Git Hub: Issues with Update from 1.0 to 1.1 #235
  • [closed] Trivel-time / distance plot #234
  • [closed] Refraction Result to pyqtgraph #233
  • [closed] pygimli.viewer.mpl not found #231
  • [closed] TravelTimeManager in pg1.1 #230
  • [closed] Data not shown #229
  • [closed] Conda packages for Mac OS? #201
  • [closed] not able to import gmsh file in pygimli #197

enhancement

  • [enhancement][feature request] Basic pg.viewer support for 3D visualizations #15

v1.1.0

07 May 11:52
Compare
Choose a tag to compare

Release presented at EGU2020: https://doi.org/10.5194/egusphere-egu2020-18751

conda install -c gimli -c conda-forge pygimli=1.1.0 # Win, Linux and Mac!

Main changes:

API renaming & namespace clean-up
  • pg.mplviewer - > pg.viewer.mpl
  • pg.RVector -> pg.Vector
  • pg.RMatrix -> pg.Matrix
  • new module pg.math (cos, cot, sin, det, exp10, median, randn, rms, etc.)
  • new module pg.matrix (Vector, BlockMatrix, etc.)
  • core (C++) members now explicitly in pg.core.coreMember instead of pg.coreMember
Default changes in viewer
  • logScale=False
  • colorBar=True
New syntactic sugar
  • pg.physics.ert.simulate
  • pg.physics.ert.createGeometricFactors
  • pg.fit: run curvefit with ParameterInversion.
    Provide function for a curve, data and dataspace and the curve will be fitted with some automagic
  • expose abs to pg.core objects. e.g. abs(pg.Vector), abs(CVector), abs(R3Vector)
  • pg.x(obj), pg.y(obj), returns x coordinates for obj (Mesh, DataContainer, R3Vector .. everywhere where we think it can be useful)
Meshtools
  • Spline interpolation in createPolygon
  • support for 3D PLC (may replace bert.polytools (out-of-core))
    e.g., meshtools.polytools.createCube, createCyinder, extrude, createFacet, createMesh(3dplc)
  • mergePLC works with 3D objects too .. only touching a smaller on a bigger object for now
  • nice pyVista target if calling pg.show with 3D objects (mesh, PLC)
  • object conversion from meshio meshes (https://pypi.org/project/meshio/)
Frameworks
  • base classes pg.Inversion and pg.Modelling are now pure Python.
  • main inversion loop now in Python
  • rewritten Refraction as TravelTimeManager
  • rewritten ERTManager to replace pybert.Resistivity
Config
  • pg.rc dictionary for global-user specific settings
  • basic support for appearance support:
    pg.unit(), pg.cmap() gives default names and default color maps for your desired physical parameters
    only res and vel for now ... will grow on demand
Logging
  • colored terminal output
  • pg.debug(), pg.info(), pg.error() and pg.critical(), the latter throws an exception, the other give colored output based on python logger class
  • debug level can be set on command line argument --debug or -d
Caching
  • on-disk cache for single functions with decorator @pg.cache
    e.g.:
    @pg.cache
    def func(args, **kwargs):
        return result
  • cache hash depends on function body, pg.version, and hashable args and kwargs
  • cached values are either single-returned hashable pg.core objects or multiple numpy objects
  • hash values for some Python and pg.core objects
  • you can turn off caching with command line --noCache
FE solver
  • support for complex values and anisotropy matrix
  • boundary conditions are now provided as dictionary
Misc
  • print(Datacontainer) gives more output
  • DataContainer and Mesh data values can and should be accessed with index operator
    e.g. t = data['t']or mesh['resistivity'] = model
  • renamed all cmap arguments to cMap
  • pg.wait() is obsolete at end of script, any pending MPL figures will be opened
    automatically if using a non-interactive backend based on qt or wx
Tests
  • many new tests available

v1.0.12

28 Oct 17:22
9962fe8
Compare
Choose a tag to compare
conda install -c gimli -c conda-forge pygimli=1.0.12 # Win & Linux!

bug

  • [bug] Problem using fatray #188
  • [bug] pg.solver.solveFiniteElements(mesh, a=1.0, b=0...) does not work if b is set as a field #181

v1.0.11

03 Apr 12:20
Compare
Choose a tag to compare
conda install -c gimli -c conda-forge pygimli=1.0.11 # currently Linux only

bug

  • [bug] Examples Raypaths, Layered Example not working #167

closed

  • [closed] Trying the Field data inversion (“Koenigsee”) example #164
  • [closed] Question -ModuleNotFoundError: No module named 'pygimli' #160

v1.0.10

04 Jan 10:59
Compare
Choose a tag to compare

Changes

  • improved handling of region markers during mesh creation (PR #157 by @m-weigand)
  • fixed marker bug for coverage mapping (145dbad)
  • Matplotlib 3.0 support

Closed issues

bug

  • [bug] drawField does not work for very small values #136
  • [bug] potential wrong reference to const & RMatrix() const in python bindings #61

closed

  • [closed] Parameter check in createRectangle #158
  • [closed] Mesh creation: marker parameter not always honored #152

feature request

  • [feature request] Support vtk STRUCTURED_GRID Dataset #87

Misc

fixes

  • polyCreate* that does not use leftDirection.
  • wrong Neumann BC scaling,

adds

  • dataContainerERT.addFourPointData accept now also values
  • pygimli/core/datacontainer.py for easy extentions
  • createCylinder(OOC: polytools), createMesh() accecpt 3D PLC and now tries a systemcall for tetgen
  • dataIndex(), dataContainer.sortSensorIndex() returns now sorting indieces.
  • isGeometry flag for core.Mesh. If set meshtool automatic check for duplicated nodes.
  • BlockMatrix to sparseMap conversion
  • argument for solver.linSolver to change solving backend

doc

  • slight changes to interpolation api docs