Releases: gimli-org/pyGIMLi
Releases · gimli-org/pyGIMLi
v1.4.1
- add 
absoluteErrorandrelativeError(float or error)invertkwargs - switch remaining modelling classes to 
pg.Modelling - allow all mesh-based regularization for gravity and magnetics fops
 - add 
Inversion.setConstraintWeightsfor individual weighting - skip small eigenvalues for geostatistical regularization thus saving memory
 - improve 
SIPSpectrummanager by better defaults and fixes - allow for negative parameter limits (and thus negative parameters)
 - enable 
show*(coverage=0.5/1)for global alpha-shading - add example for 2D gravity inversion
 - add RMS/chi-square explanations to enhance polyfit example
 - improve 3D magnetics example by depth weighting
 - add DataContainer.ensure2D to switch YZ coordinates if needed (#536)
 - default createMesh with no boundary (particularly for seismics)
 - createMesh now also sets mesh by default for easier workflows
 - add ComplexSpectrum DataContainer-derived class for SIP, FDEM etc.
 - improve MultiFrameModelling class
 - improved documentation of classes and functions
 - improved examples: chi2history, modelhistory, petrophysical joint inv
 
Full Changelog: v1.4.0...v1.4.1
v1.4.0
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 
extract2dSlicefor 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
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
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 
panelfor 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
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
PriorModellingclass for both demonstration purposes and incorporation of prior dataLinearModellingbased onpg.Modellingfor linearized problems
Matrices
RepeatVMatrix,RepeatHMatrix,RepeatDMatrixfor vertically/horizontally/diagonally repeated block matricesFrameConstraintMatrixfor 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
v1.2.1 Version presented at Transform 21
v1.1.1
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
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:
- repository restructuring (Python part now at root level)
 - improved API documentation and website
 - improved and cleaned frameworks: https://www.pygimli.org/pygimliapi/_generated/pygimli.frameworks.html
 - 3D viewer based on PyVista: https://www.pygimli.org/pygimliapi/_generated/pygimli.viewer.pv.html
 
API renaming & namespace clean-up
pg.mplviewer- >pg.viewer.mplpg.RVector->pg.Vectorpg.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.coreMemberinstead ofpg.coreMember 
Default changes in viewer
logScale=FalsecolorBar=True
New syntactic sugar
pg.physics.ert.simulatepg.physics.ert.createGeometricFactorspg.fit: run curvefit with ParameterInversion.
Provide function for a curve, data and dataspace and the curve will be fitted with some automagic- expose 
absto 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.showwith 3D objects (mesh, PLC) - object conversion from meshio meshes (https://pypi.org/project/meshio/)
 
Frameworks
- base classes 
pg.Inversionandpg.Modellingare now pure Python. - main inversion loop now in Python
 - rewritten 
RefractionasTravelTimeManager - rewritten 
ERTManagerto replacepybert.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 
--debugor-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.coreobjects or multiple numpy objects - hash values for some Python and 
pg.coreobjects - 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 outputDataContainerandMeshdata values can and should be accessed with index operator
e.g.t = data['t']ormesh['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