栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

读取列格式的三维模型并显示pyvista

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

读取列格式的三维模型并显示pyvista

数据格式如下

前四行为基本信息,读取时跨过去,输出时按k,j,i的循环顺序

#coding=utf-8

import numpy as np
import pyvista as pv
import matplotlib.pyplot as plt
import matplotlib as mpl

ni=129
nj=129
nk=100
class MyDataSet:
	def __init__(self,  fileNameList):
		self._fileNameList=fileNameList
		self.create_colorMap()
		self.p=pv.Plotter()		
		self.p.set_scale(zscale=10)
		#self.p.add_slider_widget(self.set_zscale(),rng=np.range(1,100))
		self.p.add_axes()
		
	def readData(self, fileName):
		dat=np.loadtxt(fileName,skiprows=4)
		dat=dat.transpose()
		self.x = dat[3].reshape(nk,nj,ni)
		self.y = dat[4].reshape(nk,nj,ni)
		self.z = dat[5].reshape(nk,nj,ni)
		self.facies = dat[6].reshape(nk,nj,ni)		
		self.facies[self.facies>7]=7
		
	def create_colorMap(self):
		#colors= ['blue','cyan','green','pink','magenta','purple','gold','red']
		colors= ['blue','green','pink','magenta','orange','yellow','red']
		self.discmap = mpl.colors.ListedColormap(colors)
 
	def set_zscale(self, _zscale):
		self.p.set_scale(zscale=_zscale)
 
	def showModel(self):	
		grid = pv.StructuredGrid(self.x, self.y, self.z)
		#grid.point_arrays["values"]=self.facies.flatten(order="F")
		grid.cell_arrays["values"]=self.facies[0:nk-1, 0:nj-1, 0:ni-1].flatten(order="F")
		self.p.add_mesh(grid, cmap=self.discmap,  show_scalar_bar=True)
		self.p.show()

if __name__=="__main__":
	fileNameList=[]
	myDataSet = MyDataSet(fileNameList)
	myDataSet.readData('./case5.dat')
	myDataSet.showModel()

效果如下

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/619020.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号