A python interface to Tecplot 360
The pytecplot library is a high level API that connects your Python script to the power of the Tecplot 360 visualization engine. It offers line plotting, 2D and 3D surface plots in a variety of formats, and 3D volumetric visualization. Familiarity with Tecplot 360 and the Tecplot 360 macro language is helpful, but not required.
The full documentation is here: http://www.tecplot.com/docs/pytecplot
Please refer to the documentation for detailed installation instructions and environment setup. The short of it is something like this:
pip install pytecplot
Linux and OSX users may have to set LD_LIBRARY_PATH or DYLD_LIBRARY_PATH to the directories containing the Tecplot 360 dynamic libraries. Please refer to the documentation at http://www.tecplot.com/docs/pytecplot for detailed information regarding setup and use. In addition, the web page http://www.tecplot.com/support/faqs/pytecplot contains a list of answered questions you may have about PyTecplot in general.
Released with Tecplot 360 2018 R2
- FVCOM data loader: tp.data.load_fvcom(), requires Tecplot 360 2018 R2 and later.
- New properties of the Dataset: zone_names and variable_names returning lists of names.
- Performance: tp.session.suspend() context now delays GUI updates during complex operations. This is now fully supported with Tecplot 360 2018 R2 and later.
- Performance: The underlying protocol for connect mode has changed to “Protocol Buffers” by Google. PyTecplot is still backwards compatible with the previous versions of the TecUtil Server, but newer versions of Tecplot 360 will now require PyTecplot 0.11 or later.
- Import of the tecplot Python module is now “on-demand” and should be faster for most users.
- Bug fix: state changes now successfully emitted on exit from suspend context
- New extract line method: tp.data.extract.extract_line()
- All file operations are now always relative to Python’s current working directory
- When connected to a non-local Tecplot 360 instance, paths must be absolute
- Faster import of the tecplot module by dynamic loading
- Several additions to documentation
- Bug fix: macro error messages are now included in the TecplotMacroError exception
- Preliminary support for Python 3.7
- Tested with Python version 3.7.0b5
- Python 3.7 PyZMQ pre-compiled wheels were not avaiable at the time of publishing 0.10.0 to install PyTecplot you must either:
- Run pip with --no-deps for batch mode only.
- Install Windows Visual Studio 2015 build tools for installing pyzmq until a wheel is avaiable.
- New: tecplot.session.suspend() context manager
- PyTecplot now uses Numpy (when installed) for increased performance during data transfers between Python and the Tecplot 360 Engine
- Many internal performance enhancements
Released with Tecplot 360 2018 R1 March Maintenance Release
- Edge case fixes for tp.data.query.probe_on_surface()
Released with Tecplot 360 2018 R1
- New feature: tp.data.query.probe_on_surface()
- Dataset.add_poly_zone() now requires the num_faces parameter (was optional).
- More efficient and reliable array handling when connected to running 360
- Minor documentation updates
- Added IsosurfaceVector style access
- probe_at_position() now returns None when the point is outside the data volume
- Added tp.layout.num_pages() to get the number pages in a layout
- Bug fix: DataSet.add_zone() family of functions now obeys the strand argument
- Several documentation corrections
Released with Tecplot 360 2017 R3 December Maintenance Release
- Recording of save layout, data and stylesheet commands
Released with Tecplot 360 2017 R3
- TecUtil Server (PyTecplot Connections) stability and performance enhancements
- PyTecplot script recording via 360
- Added vector image export methods: save_ps(), save_wmf()
- pyzmq and flatbuffers are now installed by default when installing PyTecplot with pip
- Macro execute extended command
- Several documentation enhancements and internal bug fixes
- Dataset solution time access now requires Tecplot 2017.3 or later due to bug in engine
- Plot.fieldmaps() became function requiring parentheses
- New methods: Variable min(), max() and minmax()
- Zone min(), max() and minmax() became functions requiring parentheses
- When exporting images: width now defaults to 800, super sample defaults to 3
- Streamtrace.add_on_zone_surface() now uses the active zones by default
- CGNS loader will load boundary conditions by default
- Localization fix for roaming using non-en_US license servers
- Rename: axes.edge_auto_reset to axes.auto_edge_assignment
- Fixed exporting mpeg4 animations via macro language
- Several bug fixes for 3rd party data loaders
- Connect to TecUtilServer (RPC) substantially more capable
- Aux data can now be cleared with AuxData.clear()
- Lots of documentation updates
- Can now control frame position and dimensions
- Sharing and branching variables and connectivity across zones has been added
- Passiveness for Arrays was added.
- Added support for RAWDATA when executing macro commands from python
- Array.__len__() now returning the length of the flattened array
- Data loaders now use ReadDataOption instead of the boolean append parameter
- Saving layout with ‘.lpk’ extension implicitly includes data now
- Setting contour variable now implicitly resets the contour levels to nice
- More information is given on start-up errors
Released with Tecplot 360 2017 R2
- Defaults change: allowing interpolation using all source zones by default
- Documentation fixes
- Unittests now handle out-of-date SDK with Python optimization
- Documentation text replacement tags now available
- Interpolation methods: linear, inverse distance and krigging
- “Additional Quantities” loadable from Fluent data
- Legend style control
- Vector in 2D and 3D plot styles
- Reference vector
- Subzone load-on-demand (SZL) file loader
- rename: save_tecplot_binary() -> save_tecplot_plt()
- Aux data now accessible
- View and zooming control for 3D plots
- rename: tecinterprocess -> tecutil_connector
- Slice zone extraction from arbitrary point and normal
- Solution time and strand accessors for plots and datasets
- Orientation reference axis style and placement control
- More examples
- Lots of documentation added
- Many bug fixes
- FaceNeighbors, Facemap and Nodemap.
- Many doc updates and fixes.
- Streamtrace examples updates.
- “Working with datasets” examples.
- Streamtrace add functions.
- Continuous colormap min/max properties.
- Can now delete text annotations with Frame.delete_text()
- New script for 360 distribution: tec3560-env for easy setup of pytecplot.
Released with Tecplot 360 2017 R1
- Better roaming, licensing and exception handling.
- Many documentation updates.
- Many minor bug fixes.
- Fluent loader.
- Reworked installation instructions.
- Better CGNS support.
- Zone.rank/dimensions rework.
- Zone class split into OrderedZone, ClassicFEZone and PolyFEZone.
- rename: font_family –> typeface.
- Isosurface style control.
- Slice style control.
- Actions for Axes and Axis.
- Dataset, Zone, Variable and Array fully documented and unittested.
- Many internal bug fixes.
- rename in API: Zone.variable() –> Zone.values()
- rename in API: Variable.zone() –> variable.values()
- Minor bug fixes for Mac
- Lots of bug fixes, both internal and external.
- Mostly internal testing and packaging updates.
- First public release of PyTecplot
- Tecplot exceptions have been reworked and extended.
- tecplot.data.load_tecplot() fully implemented and now supports multiple input files in both binary and ASCII.
- Axis classes have been reworked and cleaned up along with examples and unittests.
- User’s get “tecplot 360 out-of-date” error if tecinterprocess.so can’t be loaded.
- Lot’s of internal consistency testing.
- Text annotations.
- Fieldmap accessed by zone.
- Plot-level style control.