Releases: OpenGeoVis/PVGeo
JOSS Paper
This release marks the conclusion of our JOSS review for PVGeo in openjournals/joss-reviews#1451
v2.0.0 Alpha Release
PVGeo has undergone a lot recent development to catch up with development for vtki
pep8
refactoring- Documentation overhaul and migration to GitHub Pages
- Bug fixes
vtki Support
The v1.2.0
release comes with a significant new dependancy: vtki
. The vtkInterface Python package (vtki
) is a helper module that takes a different approach to interfacing with VTK through NumPy and direct array access. The package brings a much more Pythonic interface to using the VTK data objects that go in and out of PVGeo algorithms. From this point forward, we will provide full support for pairing PVGeo with vtki
as a visualization library so that users can leverage powerful visualization routines and tools built for pure Python envrionments such as vtki
's:
- Direct filtering on data objects:
dataset.threshold()
import PVGeo
dataset = PVGeo.model_build.CreateUniformGrid().Apply()
# Apply a threshold over a data range
dataset.threshold([100, 500])
- IPython interactive plotting tools
New Features
- Support for Open Mining Format project files through the
omfvtk
optional dependency - External library interfacing with a new base class:
PVGeo.InterfacedBaseReader
- Support for
discretize
meshes and other UBC data formats
Resources
Be sure to check out all the Jupyter notebooks in the examples repository to learn more about using PVGeo and vtki
!
Deprecations
- The Table to Grid filter has officially been removed and replaced by the optimized Table to Time Grid filter:
PVGeo.grids.TableToTimeGrid
Automatic Documentation!
Major overhaul to code documentation for a new Sphinx documentation generator. Any tagged commits to master
now rebuild the code docs at http://docs.pvgeo.org
This new documentation generator automatically iterates through the PVGeo
and pvmacros
modules to build the documentation on the fly. This allows for developers to create new features and immediately have the docs reflect those features, thus relieving developers from having to write a docs page for their new work.
Full Release
PVGeo is finally at a stage for a full release! I overhauled the library to make PVGeo work as a standalone python package as well as wrapped the package for use in ParaView versions 5.5.3 and above. In this overhaul, I implemented an automated testing suite and PyPI deployment on Travis CI which enables PVGeo to be installed via pip (see details).
Get Involved:
- Merge requests welcome!
- Join the community on Slack
- Questions or need to contact us: [email protected]
Notable New Features
- Some 10+ new filters... most notably:
- Voxelize Points: turns a point data set into a gridded data set made of voxels for volumetric operations.
- Various slicing filters like Many Slices Along Points.
- Array Math: Perform any mathematical operation on two input arrays from a
vtkDataObject
. - Rotate Points: Rotate the points in a
vtkPolyData
object around any origin. Will be extended to handle different types of VTK data objects. - UBC Mesh Model Appender: Append a time series of a model data to an already read UBC mesh type.
- Re-implementation of all readers to be lightweight on the VTK pipeline. I enabled the readers to handle reading data up-front on the first request for all timesteps then allowing the pipeline to request data for specific time steps. This results in minimal lag when dealing with larger time series files.
- UBC Mesh readers (Tensor and OcTree) can now handle time series models.
- Various enhancements and overhaul to all previously implemented readers, filters, and sources.
Coming Soon:
- A new repository with Jupyter notebooks on how to use PVGeo in a standalone python environment.
- ParaView tutorials with sample data on every doc page (similar to Many Slices Along Points).
- A more comprehensive Development Guide.
Deployed on PyPI
The PVGeo package is now deployed on PyPI and wrapped for use in ParaView versions > 5.5.2
Rename of Python Module: PVGeo
The flagship python module is now called PVGeo
Major changes to the PVGPpy module
Completely overhauled the PVGPpy module to be ready for the transition to using VTKPythonAlgorithmBase
subclasses outlined in Merge Request !2516 for ParaView.
We will be phasing out the src
directory and XML build scripts on the rebuild-pvpy
branch moving forward.
By using VTKPythonAlgorithmBase
subclasses moving forward, we can deliver a single Python module that can be used both as a standalone package in Python environments or imported to ParaView to harness plugins from the Graphical User Interface.
Proceed with caution until next minor release: 0.8.0
Beta 6.4 Multiple Input Ports and Array Selections
Filters with multiple inputs now put each input on its own port using the input selector to select inputs by name. Check out the src/filters_general/example_filter_mult.py
(Example Filter Multiple Inputs) to see how to use filters with multiple input ports and to see how to use choosing input arrays to process.
Beta 6.3: Model Building and Bug Squashing Galore
In addition to the following new features, I went on a bug hunting sprint and overhauled many of the file readers to squash out quirky bugs and implement stable solutions for most tasks and data parsing.
Notable New Features:
- The Model Building Suite: There is a new beta Model Building plugin suite dedicated to creating various types of rectilinear grids alongside your data. I will soon implement the ability to save those model discretizations out to common formats like the UBC Tensor Mesh. Check out the new Sources->PVGP Model Building menu and take a look at the Create Odd Rectilinear Grid model generator.
- Multiple Inputs: Filters with multiple inputs now use the input selector to select various inputs by name. Check out the
src/filters_general/example_filter_mult.py
(Example Filter Multiple Inputs) to see how it works.