I have tested the following solution which consists in using a Python
programmable filter, copying the non-spatial data attributes, and creating a
new coordinate array with the spatial attributes (x, x and z)
see the included python code. I suggest using ParaView 4.4 or 5.0RC1.
Note that the solution provided is independent of the input grid resolution,
and that it ought to work in parallel too for large scale grids. I have tested
it using 4 pvservers.
Enjoy.
-----------------
Jean/CSCS
# state file generated using paraview version 5.0.0-RC1-4-g4f7ebb9
# example created by Jean M. Favre, Swiss National Supercomputing Center
# ----------------------------------------------------------------
# setup views used in the visualization
# ----------------------------------------------------------------
#### import the simple module from the paraview
from paraview.simple import *
#### disable automatic camera reset on 'Show'
paraview.simple._DisableFirstRenderCameraReset()
# Create a new 'Render View'
renderView1 = GetRenderView()
# create a new 'NetCDF Reader'
testnc = NetCDFReader(FileName=['./test.nc'])
testnc.Dimensions = '(CP, CZ, CR)'
testnc.SphericalCoordinates = 0
Script = """
import numpy as np
from vtk.numpy_interface import dataset_adapter as dsa
from vtk.numpy_interface import algorithms as algs
executive = self.GetExecutive()
outInfo = executive.GetOutputInformation(0)\nin_mesh=inputs[0]\nexts = [executive.UPDATE_EXTENT().Get(outInfo, i) for i in xrange(6)]
output.SetExtent(exts)
X = in_mesh.PointData[\'x\']
Y = in_mesh.PointData[\'y\']
Z = in_mesh.PointData[\'z\']
output.Points = algs.make_vector(X,Y,Z)
output.PointData.append(in_mesh.PointData[\'cylindrical\'], "cylindrical")
"""
RequestInformationScript = """
executive = self.GetExecutive()
outInfo = executive.GetOutputInformation(0)
whole = [executive.WHOLE_EXTENT().Get(outInfo, i) for i in xrange(6)]
outInfo.Set(executive.WHOLE_EXTENT(), whole[0], whole[1], whole[2], whole[3], whole[4], whole[5])
outInfo.Set(vtk.vtkAlgorithm.CAN_PRODUCE_SUB_EXTENT(), 1)
"""
# create a new 'Programmable Filter'
programmableFilter1 = ProgrammableFilter(Input=testnc)
programmableFilter1.OutputDataSetType = 'vtkStructuredGrid'
programmableFilter1.Script = Script
programmableFilter1.RequestInformationScript = RequestInformationScript
programmableFilter1.RequestUpdateExtentScript = ''
programmableFilter1.PythonPath = ''
# create a new 'NetCDF Reader'
test151520nc = NetCDFReader(FileName=['./test.151520.nc'])
test151520nc.Dimensions = '(CP, CZ, CR)'
test151520nc.SphericalCoordinates = 0
# create a new 'Programmable Filter'
programmableFilter2 = ProgrammableFilter(Input=test151520nc)
programmableFilter2.OutputDataSetType = 'vtkStructuredGrid'
programmableFilter2.Script = Script
programmableFilter2.RequestInformationScript = RequestInformationScript
programmableFilter2.RequestUpdateExtentScript = ''
programmableFilter2.PythonPath = ''
# get color transfer function/color map for 'cylindrical'
cylindricalLUT = GetColorTransferFunction('cylindrical')
cylindricalLUT.RGBPoints = [-0.818740647478788, 0.231373, 0.298039, 0.752941, 0.0, 0.865003, 0.865003, 0.865003, 0.818740647478788, 0.705882, 0.0156863, 0.14902]
cylindricalLUT.ScalarRangeInitialized = 1.0
# get opacity transfer function/opacity map for 'cylindrical'
cylindricalPWF = GetOpacityTransferFunction('cylindrical')
cylindricalPWF.Points = [-0.818740647478788, 0.0, 0.5, 0.0, 0.818740647478788, 1.0, 0.5, 0.0]
cylindricalPWF.ScalarRangeInitialized = 1
# show data from programmableFilter2
programmableFilter2Display = Show(programmableFilter2, renderView1)
# trace defaults for the display properties.
programmableFilter2Display.Representation = 'Surface With Edges'
programmableFilter2Display.ColorArrayName = ['POINTS', 'cylindrical']
programmableFilter2Display.LookupTable = cylindricalLUT
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the ParaView Wiki at:
http://paraview.org/Wiki/ParaView
Search the list archives at: http://markmail.org/search/?q=ParaView
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/paraview