IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

Est-ce que je peux faire ca avec Pylab + Mayavi ?


Sujet :

Calcul scientifique Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Est-ce que je peux faire ca avec Pylab + Mayavi ?
    Bonjour,

    Je m'excuse a l'avance si je ne suis pas au bon endroit.
    Je suis actuellement en stage de recherche a l'universite de Strathclyde et j'ai besoin d'effectuer une simu numerique.
    PB : pas de matlab a l'horizon

    Ca tombe bien je veux me mettre au python depuis un moment et je n'ai pas tant de competence que ca sur matlab donc pas une grosse perte.

    J'aimerais que quelqu'un puisse juste m'aiguiller sur le choix des outils et eventuellement me donner des idees sur la realisation.

    Donc d'abord la presentation de mes besoins : je divise mon "projet" en 3 phases :

    - Tout d'abord j'ai besoin d'une visualisation de ma simulation (juste pour verifier que tout se passe comme prevu et qu'il n'y a pas de comportement etranges)
    Je voudrais une grille3D de cube qui ferait 100*100*100 (voir plus ensuite)
    Ces cubes devraient etre blanc transparents par exemple (etat plein) ou Noir (etat vide) enfin bref un changement de couleur binaire. (eventuellement 3 etats)
    A part ca je n'ai pas besoin de controler leur taille (i.e taille unique) et je veux qu'ils soient reparti homogenement dans une grille orthogonale.
    l'idee est que ces cubes represente des pores dans un materiau, qui sont soit remplis d'eau soit vides. je veux savoir.


    - Ensuite j'ai besoin de faire une petite routine qui vide les pores en fonction de certaines conditions, donc une boucle avec des if. tres simple.
    Sauf que quand je dis qu'une pore dois ce vider dans cette boucle je veux que ma visu change en meme temps.
    Donc ca c'est pas compliquer du tout normalement.


    - Et enfin je dois construire mon reseau de pores. Vous allez me dire que j'aurai peut etre du commencer par la mais malheureusement non je ne peux pas j'ai besoin de donnees experimentales que je n'ai pas encore.

    Donc en gros pour contruire mon reseau je dispose d'une distribution statistique des pores en fonctions de leur taille (que j'aurais eu experimentalement). Je dois donc recreer une reseau qui match cette distribution d'un point de vue statistique.
    Donc la je ne sais pas trop comment m'y prendre encore, je vais me plonger dans Numpy mais je voudrais juste que quelqu'un me dise : oui c'est faisable et pas trop douloureux.


    Comme outils j'ai decide d'opter pour une distribution python all-in-one. J'ai choisi Enthought Python distribution.
    Donc je me retrouve avec Pylab et Mayavi (et IDLE)
    Je suis a peu pres sur au'il est possible de faire ce que je veux avec ces outils, ma question est est-ce qu'on peut le faire efficassement et comment ?

    Pour la visualisation etant un enorme noob du python j'ai fouiner quelques heures et j'ai trouvee un truc qui n'est pas optimal mais diablement simple :
    Dans mayavi.mlab il y a barchart()
    C'est pas fait pour a l'origine mais ca marche plus ou moins bien, a savoir que pour changer la couleur la seule facon de faire c'est de changer la valeur ce qui change egalement la hauteur de mes barres
    Mais ca fait une grille 3d orthonormee et ca mets des cubes dedans tout seul.

    Bon ok c'est nul, ce qui serait vraiment cool c'est de faire une vraie grille et des vrais cubes mais je n'ai pas pu trouver une fonction qui me dessine un cube.
    Mon probleme c'est surtout que barchart n'aime pas ma grille de 100*100*100 et il plante/mets des plombes a me faire ca, alors que 10*10*10 il le fait en 2 secondes.


    Donc voila mon principale probleme est clairement la visualisation, Mayavi m'a l'air d'etre bien trop elaborer et puissant pour la tache tres simple dont j'ai besoin, et je n'avais jamais entendu parler de VTK avant donc la question se pose est-ce bien raisonnable comme outil ?


    Je vous remercie d'avance de vos conseils avisees et n'hesitez pas a me demander d'autres details.

    Felix.

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur R&D en apprentissage statistique
    Inscrit en
    Juin 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D en apprentissage statistique

    Informations forums :
    Inscription : Juin 2009
    Messages : 447
    Points : 752
    Points
    752
    Par défaut
    Personnellement je ne suis pas sûr d'avoir compris ce que tu cherches à faire. Tu veux une représentation 3D ou juste un damier ? parce que avec une représentation 3D si tes pores sont denses tu ne verras rien. Je ne connais pas bien Mayavi mais à mon avis ce n'est pas fait pour.

    Peut-être que VPython pourrait mieux te convenir

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    A mon avis, ça peut marcher, mais :
    - il faut extraire le contour de tes données pour l'affichage
    - les calculs doivent être bien réalisés pour tirer parti de Numpy (vectorisation intensive, tout comme si tu le faisais avec Matlab, pas de if dans des boucles for, et si possible, pas de boucle for).

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    Pour l'affichage :
    Citation Envoyé par Félix C. Voir le message
    Pour la visualisation etant un enorme noob du python j'ai fouiner quelques heures et j'ai trouvee un truc qui n'est pas optimal mais diablement simple :
    Dans mayavi.mlab il y a barchart()
    C'est pas fait pour a l'origine mais ca marche plus ou moins bien, a savoir que pour changer la couleur la seule facon de faire c'est de changer la valeur ce qui change egalement la hauteur de mes barres
    Mais ca fait une grille 3d orthonormee et ca mets des cubes dedans tout seul.

    Bon ok c'est nul, ce qui serait vraiment cool c'est de faire une vraie grille et des vrais cubes mais je n'ai pas pu trouver une fonction qui me dessine un cube.
    Mon probleme c'est surtout que barchart n'aime pas ma grille de 100*100*100 et il plante/mets des plombes a me faire ca, alors que 10*10*10 il le fait en 2 secondes.
    Si ta grille est structurée (tous les cubes ont les mêmes dimensions), exécute l'exemple structured_points3d.py

    Par exemple on peut obtenir ceci :
    Images attachées Images attachées  
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

Discussions similaires

  1. Est-ce que je peux faire ceci ?
    Par Seb04 dans le forum MySQL
    Réponses: 3
    Dernier message: 20/10/2014, 21h35
  2. [FTP] Est-ce que PHP peux faire FTP
    Par pierrot10 dans le forum Langage
    Réponses: 7
    Dernier message: 11/06/2007, 15h55
  3. Es-ce que Javascript peux faire FTP
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/06/2007, 23h19
  4. Réponses: 2
    Dernier message: 12/05/2006, 11h08
  5. Réponses: 2
    Dernier message: 06/04/2006, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo