ich habe einen 2d-array den ich gerne mit Paraview in 3d darstellen würde. Hierfür muss ich ein 3d grid erstellen und dieses als VTK file exportieren. Die Vorgehensweise ist hier:
http://www.vtk.org/Wiki/VTK/Writing_VTK ... ing_python
Mein Array zum Exportieren ist B. Ich verstehe das Prinzip dahinter aber leider nicht...
Code: Alles auswählen
from evtk.hl import gridToVTK
import numpy as np
import random as rnd
B = np.array([[0,1,2,3],[4,5,6,7], [8,9,10,11],[12,13,14,15]]) # wuerde ich gerne verwenden ???
# Dimensions
nx, ny, nz = 6, 6, 2 # hier 4,4,15 ?
lx, ly, lz = 1.0, 1.0, 1.0
dx, dy, dz = lx/nx, ly/ny, lz/nz
ncells = nx * ny * nz
npoints = (nx + 1) * (ny + 1) * (nz + 1)
# Coordinates
X = np.arange(0, lx + 0.1*dx, dx, dtype='float64')
Y = np.arange(0, ly + 0.1*dy, dy, dtype='float64')
Z = np.arange(0, lz + 0.1*dz, dz, dtype='float64')
x = np.zeros((nx + 1, ny + 1, nz + 1))
y = np.zeros((nx + 1, ny + 1, nz + 1))
z = np.zeros((nx + 1, ny + 1, nz + 1))
# We add some random fluctuation to make the grid more interesting
for k in range(nz + 1):
for j in range(ny + 1):
for i in range(nx + 1):
x[i,j,k] = X[i] + (0.5 - rnd.random()) * 0.2 * dx
y[i,j,k] = Y[j] + (0.5 - rnd.random()) * 0.2 * dy
z[i,j,k] = Z[k] + (0.5 - rnd.random()) * 0.2 * dz
# Variables
pressure = np.random.rand(ncells).reshape( (nx, ny, nz))
temp = np.random.rand(npoints).reshape( (nx + 1, ny + 1, nz + 1))
gridToVTK("./structured", x, y, z, cellData = {"pressure" : pressure}, pointData = {"temp" : temp})