Sympathy for Data v1.4.1 available!


Sympathy for Data version 1.4.1 offers reliable support for Python 3, improved performance and several new features, such as, an image processing library and configurable node ports.

Many small improvements were made to the standard node library, for example, Select columns in Table and several other nodes are better at dealing with changes to input column names.

Nodes and flows from 1.3.0 should be compatible with 1.4.1.


Download Sympathy for Data built for Windows:


Node/plugin changes:

  • Select columns in Table(s) uses new multiselect editor mode to offer more options when it comes to unknown signals.
  • Added new Convert columns in Table(s) nodes, old ones were renamed to Convert specific columns in Table(s). New ones use multiselect editor mode to offer more options when it comes to unknown signals.
  • Added som new nodes for manipulating files: copying, deleting, renaming, and moving files.
  • Added node for getting table names, Get Table Name.
  • Added node for creating json, Manually Create JSON.
  • Added nodes for converting json, Text to JSON and JSON to Text.
  • Several improvements for Manually Create Table. It now allows you to create masked arrays, floating point numbers with arbitrary precision and more relaxed syntax, and date time columns. It also has a new undo functionality which allows you to undo mistakes while editing a table.
  • All functions supplied by the Calculator plugin in the standard library can now handle masked array.
  • Improved performance of Interpolate ADAF(s) when several signals from the same raster are resampled. For a file with 1000 resampled columns the new implementation was about three times faster.
  • Added option to export just the time basis in Interpolate ADAFs.
  • Add variable ‘arg’ for Jinja2 template allowing iterating over full table.
  • F(x) nodes now correctly produce errors for some cases where they previously executed, but ignored the entire source file.
  • MDF importer handles rasters with a basis and no timeseries.
  • HJoin ADAFs now has an option to merge rasters with the same name in systems with the same name.
  • Added option to Sort columns in Table to select sort order.
  • Generic Calculator nodes have been added, which can take any type as input.

Image processing:

New image processing nodes based on scikit-image for automated image analysis, features include:

  • Images as a new Sympathy datatype with custom image viewers. Support for alpha channel and any number of colour channels.
  • >50 algorithms for Filter image, Morphological image operations or Extract image data. Includes edge/corner detection, hough transforms, feature detection, adaptive thresholding, morphology, blob detection, labeling, and many more algorithms.
  • Extracting Image statistics and features/lines into Sympathy tables for further processing of results.
  • Visualization by Draw on image for displaying identified objects or features. Overlay images using image layer operations.


  • Configurable number of node ports (select nodes). See Using custom port types.
  • Ability to modify configuration using an optional json configuration port available to any node. See Configuration Port.
  • New method: ParameterList.selected_names (usable with multiselect editor).
  • Changes to ParameterEditorListWidget in multiselect: moved selection buttons to context menu. Context menu is always available.
  • New boolean option: mode, for multiselect editor which adds choice of how to interpret the selection in selected_names.
  • New api function: nodeconfig.adjust, useful for implementing adjust_parameters.
  • New typealias method: names, useful for implementing adjust_parameters and as a common way of accessing names of different kind.
  • Extended output of profiling, with graphs of nodes and flows if Graphviz is available. See Profiling nodes and workflows.
  • Changed and documented API for creating new types. See Creating a custom data type.
  • Improved performance when working lists or tuples of figures.
  • Improved performance of some operations like reloading and unlinking subflows.
  • More extensive linking of propagated data that has not been accessed. This greatly improves performance of nodes that operate on the outer container when working with composite elements. For example, Item to List with Random ADAFs as input.
  • Subflow progress overlay has been improved and stays visible while nodes are executing. Completion of nodes affect the progress meter and Locked subflows and Lambdas are counted as 1 node.
  • Improved presentation of node errors when running sympathy in CLI mode.
  • Copying subflows with parameter overrides is more reliable.