Source code for paraview.simple.color

import paraview
from paraview import servermanager
from paraview.util import proxy as proxy_util

from paraview.modules.vtkRemotingCore import vtkPVSession

from paraview.simple import compatibility


# -----------------------------------------------------------------------------


[docs]def LoadPalette(paletteName): """Load a color palette to override the default foreground and background colors used by ParaView views. The current global palette's colors are set to the colors in the loaded palette. :param paletteName: Name of the palette to load from this list: 'WarmGrayBackground', 'DarkGrayBackground', 'NeutralGrayBackground', 'LightGrayBackground', 'WhiteBackground', 'BlackBackground', 'GradientBackground'. :type paletteName: str""" name = compatibility.GetPaletteName(paletteName) pxm = servermanager.ProxyManager() palette = pxm.GetProxy("settings", "ColorPalette") prototype = pxm.GetPrototypeProxy("palettes", name) if palette is None or prototype is None: return palette.Copy(prototype) palette.UpdateVTKObjects()
# -----------------------------------------------------------------------------
[docs]def GetColorTransferFunction(arrayname, representation=None, separate=False, **params): """Get the color transfer function used to map a data array with the given name to colors. :param arrayname: Name of the array whose color transfer function is requested. :type arrayname: str :param representation: Used to modify the array name when using a separate color transfer function. Optional, defaults to the active proxy. :type representation: Representation proxy. :param separate: If `True`, used to recover the separate color transfer function even if it is not used currently by the representation. Optional, defaults to `False`. :type separate: bool :return: This may create a new color transfer function if none exists, or return an existing one if found. :rtype: Color transfer function proxy""" if representation: if separate or representation.UseSeparateColorMap: arrayname = "%s_%s_%s" % ( "Separate", representation.SMProxy.GetGlobalIDAsString(), arrayname, ) if not servermanager.ActiveConnection: raise RuntimeError("Missing active session") session = servermanager.ActiveConnection.Session tfmgr = servermanager.vtkSMTransferFunctionManager() lut = servermanager._getPyProxy( tfmgr.GetColorTransferFunction(arrayname, session.GetSessionProxyManager()) ) proxy_util.set(lut, **params) return lut
# -----------------------------------------------------------------------------
[docs]def GetBlockColorTransferFunction( selector, arrayname, representation=None, separate=False, **params ): """Get the color transfer function used to map a data array with the given name to colors in the blocks referred to by a selector expresson. :param selector: Selector expression used to select blocks from whom the color transfer should be retrieved. :type selector: str :param arrayname: Name of the array whose color transfer function is requested. :type arrayname: str :param representation: Used to modify the array name when using a separate color transfer function. Optional, defaults to the active proxy. :type representation: Representation proxy. :param separate: If `True`, used to recover the separate color transfer function even if it is not used currently by the representation. Optional, defaults to `False`. :type separate: bool :return: This may create a new color transfer function if none exists, or return an existing one if found. :rtype: Color transfer function proxy""" if representation: if representation.GetBlockUseSeparateColorMap(selector): arrayname = "%s_%s_%s_%s" % ( "Separate_", representation.SMProxy.GetGlobalIDAsString(), selector, arrayname, ) elif separate or representation.UseSeparateColorMap: arrayname = "%s_%s_%s" % ( "Separate", representation.SMProxy.GetGlobalIDAsString(), arrayname, ) if not servermanager.ActiveConnection: raise RuntimeError("Missing active session") session = servermanager.ActiveConnection.Session tfmgr = servermanager.vtkSMTransferFunctionManager() lut = servermanager._getPyProxy( tfmgr.GetColorTransferFunction(arrayname, session.GetSessionProxyManager()) ) proxy_util.set(lut, **params) return lut
# -----------------------------------------------------------------------------
[docs]def GetOpacityTransferFunction( arrayname, representation=None, separate=False, **params ): """Get the opacity transfer function used to map a data array with the given name to opacities in the blocks referred to by a selector expresson. :param arrayname: Name of the array whose opacity transfer function is requested. :type arrayname: str :param representation: Used to modify the array name when using a separate opacity transfer function. Optional, defaults to the active representation. :type representation: Representation proxy. :param separate: If `True`, used to recover the separate opacity transfer function even if it is not used currently by the representation. Optional, defaults to `False`. :type separate: bool :return: This may create a new opacity transfer function if none exists, or return an existing one if found. :rtype: Opacity transfer function proxy""" if representation: if separate or representation.UseSeparateColorMap: arrayname = "%s%s_%s" % ( "Separate_", representation.SMProxy.GetGlobalIDAsString(), arrayname, ) if not servermanager.ActiveConnection: raise RuntimeError("Missing active session") session = servermanager.ActiveConnection.Session tfmgr = servermanager.vtkSMTransferFunctionManager() otf = servermanager._getPyProxy( tfmgr.GetOpacityTransferFunction(arrayname, session.GetSessionProxyManager()) ) proxy_util.set(otf, **params) return otf
# -----------------------------------------------------------------------------
[docs]def GetTransferFunction2D( arrayname, array2name=None, representation=None, separate=False, **params ): """Get the 2D color transfer function used to map a data array with the given name to colors. :param arrayname: Name of the first array whose color transfer function is requested. :type arrayname: str :param array2name: Name of the second array whose color transfer function is requested. :type array2name: str :param representation: Used to modify the array name when using a separate color transfer function. Optional, defaults to the active representation. :type representation: Representation proxy. :param separate: If `True`, used to recover the separate color transfer function even if it is not used currently by the representation. Optional, defaults to `False`. :type separate: bool :return: This may create a new 2D color transfer function if none exists, or return an existing one if found. :rtype: 2D color transfer function proxy""" array2name = "" if array2name is None else ("_%s" % array2name) if representation: if separate or representation.UseSeparateColorMap: arrayname = "%s%s_%s%s" % ( "Separate_", representation.SMProxy.GetGlobalIDAsString(), arrayname, array2name, ) if not servermanager.ActiveConnection: raise RuntimeError("Missing active session") session = servermanager.ActiveConnection.Session tfmgr = servermanager.vtkSMTransferFunctionManager() tf2d = servermanager._getPyProxy( tfmgr.GetTransferFunction2D(arrayname, session.GetSessionProxyManager()) ) proxy_util.set(tf2d, **params) return tf2d
# -----------------------------------------------------------------------------
[docs]def ImportPresets(filename, location=vtkPVSession.CLIENT): """Import presets from a file. The file can be in the legacy color map XML format or in the new JSON format. :param filename: Path of the file containing the presets. :type filename: str :param location: Where the statefile should be save, e.g., pass `vtkPVSession.CLIENT` if the statefile is located on the client system (default value), pass in `vtkPVSession.SERVERS` if on the server. Optional, defaults to `vtkPVSession.CLIENT`. :type location: `vtkPVServer.ServerFlags` enum value :return: `True` on success, `False` otherwise.""" presets = servermanager.vtkSMTransferFunctionPresets.GetInstance() return presets.ImportPresets(filename, location)
# -----------------------------------------------------------------------------
[docs]def ExportTransferFunction( colortransferfunction, opacitytransferfunction, tfname, filename, location=vtkPVSession.CLIENT, ): """Export transfer function to a file. The file will be saved in the new JSON format. :param colortransferfunction: The color transfer function to export. :type colortransferfunction: Color transfer function proxy. :param opacitytransferfunction: The opacity transfer functon to export, if provided. can be None. :type opacitytransferfunction: Opacity transfer function proxy. :param tfname: The name that will be given to the transfer function preset if imported back into ParaView. :type tfname: str :param filename: Path to file where exported transfer function should be saved. :type filename: str :param location: Where the statefile should be saved, e.g., pass `vtkPVSession.CLIENT` if the statefile is located on the client system (default value), pass in `vtkPVSession.SERVERS` if on the server. Optional, defaults to `vtkPVSession.CLIENT`. :type location: `vtkPVServer.ServerFlags` enum value :return: `True` on success, `False` otherwise.""" return servermanager.vtkSMTransferFunctionProxy.ExportTransferFunction( colortransferfunction.SMProxy, opacitytransferfunction.SMProxy, tfname, filename, location, )
# -----------------------------------------------------------------------------
[docs]def CreateLookupTable(**params): """Create and return a lookup table. :param params: A variadic list of `key=value` pairs giving values of specific named properties of the lookup table. :return: Lookup table :rtype: Lookup table proxy""" lt = servermanager.rendering.PVLookupTable() controller = servermanager.ParaViewPipelineController() controller.InitializeProxy(lt) proxy_util.set(lt, **params) controller.RegisterColorTransferFunctionProxy(lt) return lt
# -----------------------------------------------------------------------------
[docs]def CreatePiecewiseFunction(**params): """Create and return a piecewise function. :param params: A variadic list of `key=value` pairs giving values of specific named properties of the opacity function. :return: Piecewise opacity function :rtype: Opacity functon proxy""" pfunc = servermanager.piecewise_functions.PiecewiseFunction() controller = servermanager.ParaViewPipelineController() controller.InitializeProxy(pfunc) proxy_util.set(pfunc, **params) controller.RegisterOpacityTransferFunction(pfunc) return pfunc
# -----------------------------------------------------------------------------
[docs]def AssignFieldToColorPreset(array_name, preset_name, range_override=None): """Assign a lookup table to an array by lookup table name. Example usage:: AssignFieldToPreset("Temperature", "Cool to Warm") :param array_name: The array name for which we want to bind a given color preset. :type array_name: str :param preset_name: The name for the color preset. :type preset_name: str :param range_override: The range to use instead of the range of the array. :type range_override: 2-element tuple or list of floats :return: `True` on success, `False` otherwise. :rtype: bool""" # If the named LUT is not in the presets, see if it was one that was removed and # substitute it with the backwards compatibility helper presets = servermanager.vtkSMTransferFunctionPresets.GetInstance() reverse = False if not presets.HasPreset(preset_name): (preset_name, reverse) = ( paraview._backwardscompatibilityhelper.lookupTableUpdate(preset_name) ) # If no alternate LUT exists, raise an exception if not presets.HasPreset(preset_name): raise RuntimeError("no preset with name `%s` present", preset_name) # Preset found. Apply it. lut = GetColorTransferFunction(array_name) if not lut.ApplyPreset(preset_name): return False if range_override: lut.RescaleTransferFunction(range_override) # Reverse if necessary for backwards compatibility if reverse: lut.InvertTransferFunction() return True
# -----------------------------------------------------------------------------
[docs]def ListColorPresetNames(): """Returns a list containing the currently available color transfer function preset names. :return: List of currently available transfer function preset names. :rtype: List of str""" presets = servermanager.vtkSMTransferFunctionPresets.GetInstance() return [ presets.GetPresetName(index) for index in range(presets.GetNumberOfPresets()) ]