Skip to content

v1.1.0

Compare
Choose a tag to compare
@florian-wagner florian-wagner released this 07 May 11:52
· 1532 commits to master since this release

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