通用VTK写入程序

uvw的Python项目详细描述


uvw-通用vtk写入程序

uvw是一个小型实用程序库,用于从numpy数组中包含的数据写入vtk文件。它处理在{1,2,3}-d域上定义的完全成熟的ndarrays,具有任意数量的组件。组件的特定顺序没有限制,但如果数组是fortran连续的,则可以避免复制数据,因为vtk文件是按fortran顺序写入的。未来的发展将包括多进程写入支持。

开始

下面是如何安装和使用uvw

先决条件

  • Python3。它可能与Python2一起工作,但还没有经过测试。
  • Numpy。此代码已在Numpy 1.14.3版中测试过。

安装

此库可以使用pip

安装
pip install --user uvw

写入numpy数组

作为第一个示例,让我们将多组件numpy数组写入一个直线网格:

importnumpyasnpfromuvwimportRectilinearGrid,DataArray# Creating coordinatesx=np.linspace(-0.5,0.5,10)y=np.linspace(-0.5,0.5,20)z=np.linspace(-0.9,0.9,30)# Creating the filegrid=RectilinearGrid('grid.vtr',(x,y,z))# A centered ballx,y,z=np.meshgrid(x,y,z,indexing='ij')r=np.sqrt(x**2+y**2+z**2)ball=r<0.3# Some multi-component multi-dimensional datadata=np.zeros([10,20,30,3,3])data[ball,...]=np.array([[0,1,0],[1,0,0],[0,1,1]])# Adding the point data (see help(DataArray) for more info)grid.addPointData(DataArray(data,range(3),'data'))grid.write()

uvw还支持在2d和1d物理域上写入数据,例如:

importnumpyasnpfromuvwimportRectilinearGrid,DataArray# Creating coordinatesx=np.linspace(-0.5,0.5,10)y=np.linspace(-0.5,0.5,20)# A centered diskxx,yy=np.meshgrid(x,y,indexing='ij')r=np.sqrt(xx**2+yy**2)R=0.3disk=r<Rdata=np.zeros([10,20])data[disk]=np.sqrt(1-(r[disk]/R)**2)# File object can be used as a context managerwithRectilinearGrid('grid.vtr',(x,y))asgrid:grid.addPointData(DataArray(data,range(2),'data'))

功能列表

以下是uvw中可用内容的列表:

vtk文件格式

  • 图像数据(.vti
  • 直线网格(.vtr
  • 结构化网格(.vts

数据表示

  • ascii
  • base64(未压缩)

计划开发

以下是未来发展的列表:

  • [X]图像数据
  • []非结构化网格
  • [X]结构化网格
  • []并行写入(多进程)
  • []基准测试+与pyevtk的性能比较

开发

这些说明将为您在本地计算机上启动和运行项目的副本,以便进行开发和测试。

Git存储库

首先克隆git存储库:

git clone https://c4science.ch/source/uvw.git

然后您可以在开发模式下使用pip(可能在virtualenv中):

pip install --user -e .

运行测试

测试可以使用pytest

cd tests; pytest

许可证

此项目是在麻省理工学院的许可下授权的-请参阅license.md文件以了解详细信息。

致谢

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java找不到适合makeText的方法   如何将java数组转换为prolog列表并使用它进行jpl查询?   安卓中显示ArrayList的java子类ArrayAdapter   Java8GroupingBy到包含列表的映射中   java Json字符串,带有要映射的嵌套对象<string,string>   java Hibernate中的包和列表有什么区别?   java Spring REST模板指定Jackson视图   java如何在继承的类中返回字符串?   调试Java ArrayQue删除和轮询方法错误   带有NetBeans 7.4的java JSP自定义标记Struts2   java无法从加载jar文件。蝙蝠锉   无法解析java image_项“未显示在下拉列表中且无法键入”   jdoDetachedState设置为null的java查询实体   scala使用Cypher CREATE命令和属性映射,来自Java   minecraft中的java/me并没有被我编写的插件禁用   java Cucumber框架设置   java以奇怪的方式遍历LinkedList?   java JPA将布尔字段配置为保留为整数   月球着陆器中的java Android垃圾收集