TVTK数据集和数据加载

来源:互联网 发布:淘宝美工将来有前途么 编辑:程序博客网 时间:2024/06/05 19:32

Python科学计算三维可视化
黄天羽、嵩天

    • 数据集Data Set
      • Imagedata
      • RectilinearGrid
      • StructuredGrid
      • Polydata
      • UnstructuredGrid
    • TVTK数据加载
      • TVTK模型读取
      • TVTK MultiBlock数据读取


数据集(Data Set)

  • 点(Point)和数据(Data)
  • 点之间:连接 vs 非连接
  • 多个相关的点组成单元(Cell)
  • 点的连接:显式 vs 隐式
  • 数据:标量(Scalar)vs 矢量(Vector)

Imagedata

  • 二维或三维图像的数据结构
    imagedata

  • 简单理解为二维或三维数组

  • 点之间的距离由数组中的间隔决定

  • from tvtk.api import tvtkimg = tvtk.ImageData(spacing=(1,1,1), origin=(0,0,0), dimensions=(2,3,4))'''spacing 三维网格数据在X、 Y、 Z轴上的间距origin 三维网格数据的起点坐标dimensions 在X、 Y、 Z轴上的网格数'''for i in range(9):  print('%d, %d, %d' %img.get_point(i))
  • 输出结果
    result

RectilinearGrid

  • 间距不均匀的网格,所有点都在正交的网格上
    RectilinearGrid

  • from tvtk.api import tvtkimport numpy as npx = np.array([0, 3, 9, 15])y = np.array([0, 1, 5])z = np.array([0, 2, 3])     #表示交点r = tvtk.RectilinearGrid()r.x_coordinates = xr.y_coordinates = yr.z_coordinates = zr.dimensions = len(x), len(y), len(z)for i in range(6):  print('%d, %d, %d' %r.get_point(i))
  • 输出结果
    result

StructuredGrid

  • 创建任意形状的网格,需要指定点的坐标
    StructuredGrid
  • 需要对 points、dimensions、point_data.scalars 等属性进行初始化

Polydata

  • 由一系列的点、点之间的联系以及由点构成的多边形组成
  • 一般不用直接给出点的坐标的方法来创建

UnstructuredGrid

TVTK数据加载

TVTK模型读取

三种文件

  • s=tvtk.STLReader(file_name = “stl文件名”)

  • from tvtk.api import tvtkfrom tvtkfunc import ivtk_scene, event_loops = tvtk.STLReader(file_name="python.stl")m = tvtk.PolyDataMapper(input_connection=s.output_port)a = tvtk.Actor(mapper=m)win = ivtk_scene(a)win.scene.isometric_view()event_loop()
  • 结果图
    python

TVTK MultiBlock数据读取

  • Plot3D 文件

    • 网格 (XYZ 文件)
    • 空气动力学结果 (Q 文件)
    • 通用结果
  • from tvtk.api import tvtkdef read_data():  # 读入数据  plot3d = tvtk.MultiBlockPLOT3DReader(      xyz_file_name = "combxyz.bin",  # 网格文件      q_file_name = "combq.bin",  # 空气动力学结果文件      scalar_function_number = 100,  # 设置标量数据数量      vector_function_number = 200  # 设置矢量数据数量  )  plot3d.update()  return plot3dplot3d = read_data()grid = plot3d.output.get_block(0)print(type(plot3d.output))print(type(grid))print(grid.dimensions)print(grid.points.to_array())print(grid.point_data.number_of_arrays)
  • 输出结果
    result

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 妒忌 妒忌的意思 妒忌的读音 妒忌的拼音 羡慕妒忌恨 妒忌心 妒忌的近义词 妒忌的近义词是什么 嫉妒和妒忌有什么区别 妒忌是什么意思 妒忌和嫉妒的区别 嫉妒和妒忌的区别 忌妒 妒夫的掠夺 天妒英才 一任群芳妒 妒后养成史 天妒红颜改1一13全文 天妒红颜 嫉贤妒能 忌妒的意思 妒夫难养 风妒桃花 妒怎么读 妒君霸梅 孑然妒火 党同妒异 妒夫顾十七 同美相妒 枕边妒夫 妒能害贤 逐盐by灰山妒 网游之天妒风流 大妒子干高芳 天妒红颜干林梦娇怀孕 妒后的独宠日常 随心而为 风妒桃花 青衫烟雨 悍妒 为伊憔悴 妒怎么读音 忌妒的近义词