数据格式如下
前四行为基本信息,读取时跨过去,输出时按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()
效果如下
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)