随时间推移的数据显示的Paraview

时间:2016-04-25 14:22:44

标签: python numpy vtk paraview

我正在尝试使用Paraview将点显示为随着时间的推移而改变标量值的彩色框。我试图编写一个可编程的源和过滤器,将盒子字形添加到数据点,并根据时间点更改数据点的标量值。

具体来说,此脚本会尝试返回当前时间点的整数值,然后使用此值来解析文本文件,并选择与该时间点对应的点数据。

我无法让它工作,我有两个大问题:

  1. 在过滤器中,如何为数据点创建字形框?
  2. 如何在不获取&#34的情况下使下面的脚本工作;索引必须是整数而不是浮点数"错误。
  3. 非常感谢,

    马特

    更新

    通过添加以下内容解决问题:     time = int(时间) 在可编程滤波器中时间= 0之后

    可编程源脚本

    import vtk
    import numpy as np
    
    coordinate = np.array([[0,0,0]])
    
    node_file = open(‘…/pointWeights.txt', 'r')
    data = node_file.readlines()
    
    timePoint = 0
    pointWeight = float(data[timePoint])
    
    node_file.close()
    
    output.Points = coordinate
    
    output.Allocate(1)
    
    output.PointData.append(pointWeight, "Point Weight")
    

    可编程源请求信息

    timeSteps = range(4)
    
    outInfo = self.GetOutputInformation(0)
    
    timeRange = [timeSteps[0], timeSteps[-1]]
    outInfo.Set(vtk.vtkStreamingDemandDrivenPipeline.TIME_RANGE(), timeRange, 2)
    outInfo.Set(vtk.vtkStreamingDemandDrivenPipeline.TIME_STEPS(), timeSteps, len(timeSteps))
    

    可编程过滤器脚本

    import vtk
    import numpy as np
    
    outInfo = self.GetOutputInformation(0)
    if outInfo.Has(vtk.vtkStreamingDemandDrivenPipeline.UPDATE_TIME_STEP()):
      time = outInfo.Get(vtk.vtkStreamingDemandDrivenPipeline.UPDATE_TIME_STEP())
    else:
      time = 0
    
    coordinate = np.array([[0,0,0]])
    
    node_file = open(‘…/pointWeights.txt', 'r')
    data = node_file.readlines()
    
    pointWeight = float(data[time])
    
    node_file.close()
    
    output.Points = coordinate
    
    output.Allocate(1)
    
    output.PointData.append(pointWeight, "Point Weight")
    

    pointWeights.txt

    0
    .33
    .66
    1
    

0 个答案:

没有答案