v1.1.0
florian-wagner
released this
07 May 11:52
·
1772 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:
- 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.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 ofpg.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
andpg.Modelling
are now pure Python. - main inversion loop now in Python
- rewritten
Refraction
asTravelTimeManager
- rewritten
ERTManager
to 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
--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 outputDataContainer
andMesh
data 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