从Paraview 4.2中提取Python脚本中的数据

奥林巴斯世界

我正在尝试使用Paraview 4.2从Python脚本中的切片中提取数据。我有这样的事情:

from paraview.numpy_support import vtk_to_numpy
from paraview.simple import *
import os

os.environ["DISPLAY"] = ":0"
paraview.simple._DisableFirstRenderCameraReset()

# create a new 'XDMF Reader'
xDMFtemporalFieldsxmf = XDMFReader(FileNames=['<pathtodata>/XDMF.temporalFields.xmf'])

# Properties modified on xDMFtemporalFieldsxmf
xDMFtemporalFieldsxmf.PointArrayStatus = ['DensityProperty-mesh', 'VelocityField']
xDMFtemporalFieldsxmf.CellArrayStatus = []

# create a new 'Slice'
slice1 = Slice(Input=xDMFtemporalFieldsxmf)

# create a new 'Clip'
clip1 = Clip(Input=slice1)
clip1.ClipType = 'Scalar'
clip1.Value = 1200.0

因此,我要做的就是从剪辑中提取VelocityField数据,最好是为每个数据点指定坐标位置。

这是我的一些探索:

>> print clip1
<paraview.servermanager.Clip object at 0x7f1a14e356d0>

>> print clip1.PointData.keys()
[]

>> print clip1.FieldData.keys()
[]

>> proxy = servermanager.Proxy(proxy=clip1.SMProxy)
>> for property in proxy:
>>     print property
<paraview.servermanager.Scalar object at 0x7f1a4e346850>
<paraview.servermanager.Slice object at 0x7f1a14e35190>
None
0
0
[None, '']
0
1200.0

>> print paraview.numpy_support.vtk_to_numpy(clip1.SMProxy)
AttributeError                            Traceback (most recent call last)
<ipython-input-21-d5fe9e4e150c> in <module>()
----> 1 print paraview.numpy_support.vtk_to_numpy(clip1.SMProxy)

/home/luke/Programs/paraview4.2/lib/site-packages/paraview/numpy_support.pyc in vtk_to_numpy(vtk_array)
    202 
    203     """
--> 204     typ = vtk_array.GetDataType()
    205     assert typ in get_vtk_to_numpy_typemap().keys(), \
    206            "Unsupported array type %s"%typ

AttributeError: GetDataType

>> data = servermanager.Fetch(clip1)
>> print data
vtkUnstructuredGrid (0x6276dc0)
  Debug: Off
  Modified Time: 37918079
  Reference Count: 1
  Registered Events: (none)
  Information: 0x65f2f40
  Data Released: False
  Global Release Data: Off
  UpdateTime: 0
  Field Data:
    Debug: Off
    Modified Time: 37918063
    Reference Count: 1
    Registered Events: (none)
    Number Of Arrays: 0
    Number Of Components: 0
    Number Of Tuples: 0
  Number Of Points: 0
  Number Of Cells: 0
  Cell Data:
    Debug: Off
    Modified Time: 37918077
    Reference Count: 1
    Registered Events: (none)
    Number Of Arrays: 0
    Number Of Components: 0
    Number Of Tuples: 0
    Copy Tuple Flags: ( 1 1 1 1 1 0 1 1 )
    Interpolate Flags: ( 1 1 1 1 1 0 0 1 )
    Pass Through Flags: ( 1 1 1 1 1 1 1 1 )
    Scalars: (none)
    Vectors: (none)
    Normals: (none)
    TCoords: (none)
    Tensors: (none)
    GlobalIds: (none)
    PedigreeIds: (none)
    EdgeFlag: (none)
  Point Data:
    Debug: Off
    Modified Time: 37918079
    Reference Count: 1
    Registered Events: (none)
    Number Of Arrays: 0
    Number Of Components: 0
    Number Of Tuples: 0
    Copy Tuple Flags: ( 1 1 1 1 1 0 1 1 )
    Interpolate Flags: ( 1 1 1 1 1 0 0 1 )
    Pass Through Flags: ( 1 1 1 1 1 1 1 1 )
    Scalars: (none)
    Vectors: (none)
    Normals: (none)
    TCoords: (none)
    Tensors: (none)
    GlobalIds: (none)
    PedigreeIds: (none)
    EdgeFlag: (none)
  Bounds: 
    Xmin,Xmax: (1, -1)
    Ymin,Ymax: (1, -1)
    Zmin,Zmax: (1, -1)
  Compute Time: 0
  Number Of Points: 0
  Point Coordinates: 0
  Locator: 0
  Number Of Pieces: 1
  Piece: -1
  Ghost Level: 0

任何进一步的探索似乎总是使我回到FieldDataInformation或PointDataInformation对象-而不是实际数据!

用于提取点XYZ位置的先前方法是:

data = servermanager.Fetch(clip1)
d2 = data.GetPoints()
xyz = zeros((d2.GetNumberOfPoints(), 3))
for i in range(d2.GetNumberOfPoints()):
    xyz[i,:] = data.GetPoint(i)

编辑-此输出为:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-11-e34f36729df1> in <module>()
      1 data = servermanager.Fetch(clip1)
      2 d2 = data.GetPoints()
----> 3 xyz = zeros((d2.GetNumberOfPoints(), 3))
      4 for i in range(d2.GetNumberOfPoints()):
      5     xyz[i,:] = data.GetPoint(i)

AttributeError: 'NoneType' object has no attribute 'GetNumberOfPoints'

但是,是的,它似乎不再起作用了,我认为通过所有这些Numpy集成,它会变得有些整洁。

EDIT2:Utkarsh问题的输出:

>> clip1.UpdatePipeline()
>> rawData = servermanager.Fetch(clip1)
>> import vtk.numpy_interface.dataset_adapter as dsa
>> # Wrap the raw data object to access NumPy friendly API
>> data = dsa.WrapDataObject(rawData) # Note I changed this from Utkarsh's "data" to "rawData"
>> print data.Points
>> print data.PointData["VelocityField"]

给出:

None
<vtk.numpy_interface.dataset_adapter.VTKNoneArray object at 0x7f57c4a75390>
乌特卡什

您使用一种方法遇到的错误是什么?它应该工作。更好的方法如下:

# ensure that the clip1 filter is updated.
clip1.UpdatePipeline()

rawData = servermanager.Fetch(clip1)

import vtk.numpy_interface.dataset_adapter as dsa

# Wrap the raw data object to access NumPy friendly API
data = dsa.WrapDataObject(data)

print data.Points
VTKArray([[ -5.        ,  -5.        ,  -9.15493107],
   [ -3.        ,  -5.        ,  -9.75046444],
   [ -2.        ,  -5.        ,  -9.50859547],
   ..., 
   [  3.04815888,   3.        ,  10.        ],
   [  4.24629259,   3.        ,  10.        ],
   [  4.        ,   3.25505328,  10.        ]], dtype=float32)


# To access the point data array named VelocityField
print data.PointData["VelocityField"]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在paraview中缩放结果

来自分类Dev

通过ParaView中的Python脚本保存动画

来自分类Dev

将瞬态数据导入Paraview

来自分类Dev

paraview python shell中的输入语法

来自分类Dev

ParaView的Python脚本:颜色栏位置

来自分类Dev

如何在Paraview中显示内部线条?

来自分类Dev

如何使用Liclipse编写ParaView脚本?

来自分类Dev

paraview python屏幕截图中的黑暗区域

来自分类Dev

如何使用Fortran在Paraview中可视化数据

来自分类Dev

如何使用Fortran在Paraview中可视化数据

来自分类Dev

如何使用Python脚本在Paraview中创建交互式窗口?

来自分类Dev

Paraview:来自 python 脚本的一些管道设置未反映在 UI 中

来自分类Dev

在BS4中提取嵌套数据

来自分类Dev

在 Paraview 中从单元格和点创建网格

来自分类Dev

从一列在paraview中设置动画时间

来自分类Dev

Paraview“数据大小可能与声明不匹配”错误

来自分类Dev

导入Excel数据以进行Isovolume渲染Paraview

来自分类Dev

在ParaView中将点源重新采样为图像数据

来自分类Dev

使用python脚本为所有时间步骤从paraview编写plotOverline csv数据

来自分类Dev

在python BS4中提取某些文本?

来自分类Dev

将具有字段数据的曲面几何导入到Paraview中

来自分类Dev

用于绘制图表演变的Python脚本,例如Paraview

来自分类Dev

从BS4中的表行中提取多个数据

来自分类Dev

从R中的S4类列表中提取和合并数据帧

来自分类Dev

从 .NET-core 中的 ODataV4 元数据 XML 中提取类

来自分类Dev

Paraview:如何在选定的线数据上绘图,仅保存此数据?

来自分类Dev

用名称写入带有日期和时间的数据,以便Paraview识别为TimeSeries

来自分类Dev

使用 Paraview 在 3D 域中显示 2D celldata 字段

来自分类Dev

如何在Rpy2中提取'RS4'元素

Related 相关文章

  1. 1

    在paraview中缩放结果

  2. 2

    通过ParaView中的Python脚本保存动画

  3. 3

    将瞬态数据导入Paraview

  4. 4

    paraview python shell中的输入语法

  5. 5

    ParaView的Python脚本:颜色栏位置

  6. 6

    如何在Paraview中显示内部线条?

  7. 7

    如何使用Liclipse编写ParaView脚本?

  8. 8

    paraview python屏幕截图中的黑暗区域

  9. 9

    如何使用Fortran在Paraview中可视化数据

  10. 10

    如何使用Fortran在Paraview中可视化数据

  11. 11

    如何使用Python脚本在Paraview中创建交互式窗口?

  12. 12

    Paraview:来自 python 脚本的一些管道设置未反映在 UI 中

  13. 13

    在BS4中提取嵌套数据

  14. 14

    在 Paraview 中从单元格和点创建网格

  15. 15

    从一列在paraview中设置动画时间

  16. 16

    Paraview“数据大小可能与声明不匹配”错误

  17. 17

    导入Excel数据以进行Isovolume渲染Paraview

  18. 18

    在ParaView中将点源重新采样为图像数据

  19. 19

    使用python脚本为所有时间步骤从paraview编写plotOverline csv数据

  20. 20

    在python BS4中提取某些文本?

  21. 21

    将具有字段数据的曲面几何导入到Paraview中

  22. 22

    用于绘制图表演变的Python脚本,例如Paraview

  23. 23

    从BS4中的表行中提取多个数据

  24. 24

    从R中的S4类列表中提取和合并数据帧

  25. 25

    从 .NET-core 中的 ODataV4 元数据 XML 中提取类

  26. 26

    Paraview:如何在选定的线数据上绘图,仅保存此数据?

  27. 27

    用名称写入带有日期和时间的数据,以便Paraview识别为TimeSeries

  28. 28

    使用 Paraview 在 3D 域中显示 2D celldata 字段

  29. 29

    如何在Rpy2中提取'RS4'元素

热门标签

归档