Je veux produire des parcelles comme celle-ci, sauf avec beaucoup plus de particules. Le matplotlib est terriblement inadéquat.Tracer un grand nombre de sphères empilées générées à partir de python-- mayavi? paraview et pyevtk? Comment transmuter .npy en .vtk?
En ce moment je suis en utilisant mayavi en python 3.5 en cours d'exécution à travers un ordinateur portable jupyter. Comme j'ai besoin de tracer 5x10^5 sphères, ce ne sera pas pratique, puisque le temps est déjà un facteur limitant à 2x10^4 sphères.
Voici mon code python pour produire le tracé mayavi. J'ai un tableau numérique de valeurs [a, r, x, y, z]. Ce n'est pas pertinent ce que la première quantité est pour ce problème.
"""VISUALIZATION WITH MAYAVI"""
#I think this is too slow to be practical.
#view particles with mayavi
import mayavi
from mayavi import mlab
%gui qt
def plot_sphere(p): #feed it p and get back a sphere \n",
t1,R,a,b,c = p
[phi,theta] = np.mgrid[0:2*np.pi:12j,0:np.pi:12j] #increase the numbers before j for better resolution but more time
x = R*np.cos(phi)*np.sin(theta) + a
y = R*np.sin(phi)*np.sin(theta) + b
z = R*np.cos(theta) + c
return mlab.mesh(x, y, z)
#run s over all particles and plot it
def view(particles):
for p in particles:
plot_sphere(p)
view(spheres)
Ce code produit des tracés comme celui-ci:
On m'a dit que je devrais envisager d'écrire mes tableaux numpy à .vtk fichiers à l'aide evtk, puis visualiser ceux-ci dans paraview. J'ai téléchargé paraview et lu this, mais peut-être ma version de python me limite? Tout d'abord, installez pyevtk-- okay: J'ai essayé l'installation de conda -c opengeostat pyevtk = 1.0.0, mais il échoue en raison de l'incompatibilité avec ma version de python. J'ai cherché des détails mais je n'en ai trouvé aucun.
Ensuite, j'ai téléchargé le dépôt [ici] [https://pypi.python.org/pypi/PyEVTK/1.0.0], puis utilisé pip pour l'installer avec succès. Ensuite, j'ai mis evtk.py, vtk.py, hl.py, et xml.py, et essayé quelques exemples dans le dépôt - aucun d'eux ne fonctionne. Apparemment il y a un problème avec
from .vtk import *
commandes de type. J'ai essayé de remplacer tous ceux-ci dans les quatre fichiers .py avec
from evtk import vtk
from vtk import *
et tels, mais pas de chance. Longue histoire courte, je ne peux pas obtenir pyevtk travaillant pour exporter mes tableaux numpy sous forme de fichiers .vtk. Je pourrais utiliser de l'aide à cet égard, ou mieux encore j'aimerais une option différente pour obtenir mes tableaux chiffrés rendus par paraview. Toute aide est appréciée!