時刻によって色(スカラ量)が変わる四角形板

Programmable Sourceで時刻データにアクセスする方法についてはProducing Data with Timesteps (Source) | ParaView Wikiを参照のこと。

動作確認バージョン

ParaView 5.0.0 RC1

Output Data Set Type

vtkPolyData

Script

from paraview import vtk
import numpy as np

def GetUpdateTimestep(algorithm):
   """Returns the requested time value, or None if not present"""
   executive = algorithm.GetExecutive()
   outInfo = executive.GetOutputInformation(0)
   if not outInfo.Has(executive.UPDATE_TIME_STEP()):
       return None
   return outInfo.Get(executive.UPDATE_TIME_STEP())

rfl = GetUpdateTimestep(self) * 0.1

pdo = self.GetPolyDataOutput() # pdo = self.GetOutput()

vp = vtk.vtkPoints()
polys = vtk.vtkCellArray()
arr_r = vtk.vtkTypeFloat32Array()
pdo.GetCellData().AddArray(arr_r)
arr_r.SetNumberOfComponents(1)
arr_r.SetName('reflectivity')

polygon = vtk.vtkPolygon()
polygon.GetPointIds().SetNumberOfIds(4)
vp.InsertNextPoint(np.array((-0.5, 0.0, 0.0)))
vp.InsertNextPoint(np.array((0.5, 0.0, 0.0)))
vp.InsertNextPoint(np.array((0.5, 1.0, 0.0)))
vp.InsertNextPoint(np.array((-0.5, 1.0, 0.0)))
polygon.GetPointIds().SetId(0, 0)
polygon.GetPointIds().SetId(1, 1)
polygon.GetPointIds().SetId(2, 2)
polygon.GetPointIds().SetId(3, 3)
polys.InsertNextCell(polygon)
arr_r.InsertNextValue(rfl)
pdo.SetPoints(vp)
pdo.SetPolys(polys)

Script (RequestInformation)

import numpy as np

def SetOutputTimesteps(algorithm, timesteps):
    executive = algorithm.GetExecutive()
    outInfo = executive.GetOutputInformation(0)
    outInfo.Remove(executive.TIME_STEPS())
    for timestep in timesteps:
        outInfo.Append(executive.TIME_STEPS(), timestep)
    outInfo.Remove(executive.TIME_RANGE())
    outInfo.Append(executive.TIME_RANGE(), timesteps[0])
    outInfo.Append(executive.TIME_RANGE(), timesteps[-1])
SetOutputTimesteps(self, np.arange(0, 10, 0.2))
タグ: , ,

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*