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

Python Discussion :

Tracer a partir d'un fichier .txt complexe


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Par défaut Tracer a partir d'un fichier .txt complexe
    Bonjour,

    Je travaille actuellement sur un logiciel qui résout l’équation du transfert radiatif. En sortie, le logiciel me donne un fichier texte avec différentes quantités radiométriques et leurs valeurs du style :

    42   0.30   0.25     1.2772E+00     1.7468E+00     3.0240E+00     6.3859E-01     1.1611E+00   0.5000   0.6647   0.1728     5.5000E-01
    K-functions (units of 1/meter) at  490.0 nm (these are accurate local values only when zupper and zlower are closely spaced)
    zupper    zlower       z      Kou(z)    Kod(z)    Ko(z)     Ku(z)     Kd(z)    Knet(z)    KLu(z)
    0.000     0.010     0.005  -0.40211   0.30020   0.03711  -0.30866   0.28133   0.81322  -0.17571
    0.013     0.022     0.018  -0.40968   0.29653   0.03052  -0.31067   0.28061   0.82122  -0.17567
    0.025     0.035     0.030  -0.41768   0.29295   0.02379  -0.31270   0.27988   0.82946  -0.17563
    0.037     0.048     0.042  -0.42620   0.28942   0.01687  -0.31477   0.27916   0.83793  -0.17557
    0.050     0.060     0.055  -0.43535   0.28594   0.00970  -0.31687   0.27843   0.84666  -0.17551
    0.062     0.072     0.068  -0.44527   0.28245   0.00219  -0.31902   0.27769   0.85565  -0.17544
    0.075     0.085     0.080  -0.45611   0.27895  -0.00573  -0.32123   0.27694   0.86492  -0.17537
    0.087     0.097     0.092  -0.46808   0.27540  -0.01417  -0.32350   0.27617   0.87449  -0.17528
    0.100     0.110     0.105  -0.48139   0.27176  -0.02325  -0.32586   0.27538   0.88436  -0.17519
    0.113     0.122     0.117  -0.49633   0.26801  -0.03312  -0.32832   0.27457   0.89456  -0.17509
    0.125     0.135     0.130  -0.51324   0.26408  -0.04395  -0.33089   0.27372   0.90511  -0.17498
    0.138     0.148     0.143  -0.53253   0.25994  -0.05596  -0.33360   0.27283   0.91604  -0.17486
    0.150     0.160     0.155  -0.55469   0.25552  -0.06940  -0.33649   0.27189   0.92738  -0.17473
    0.163     0.173     0.168  -0.58032   0.25074  -0.08458  -0.33958   0.27089   0.93917  -0.17459
    0.175     0.185     0.180  -0.61014   0.24553  -0.10190  -0.34291   0.26981   0.95144  -0.17443
    0.188     0.198     0.193  -0.64502   0.23976  -0.12181  -0.34654   0.26864   0.96424  -0.17425
    0.200     0.210     0.205  -0.68599   0.23332  -0.14487  -0.35053   0.26736   0.97764  -0.17406
    0.212     0.223     0.217  -0.73430   0.22603  -0.17177  -0.35495   0.26594   0.99170  -0.17384
    0.225     0.235     0.230  -0.79144   0.21771  -0.20333  -0.35989   0.26436   1.00652  -0.17360
    0.237     0.247     0.242  -0.85917   0.20811  -0.24055  -0.36547   0.26256   1.02219  -0.17333
    0.240     0.250     0.245  -0.87417   0.20601  -0.24878  -0.36667   0.26218   1.02543  -0.17327
    Radiances Just Above the Water Surface (at z = a) (units of W/m^2 sr nm) at  490.0 nm

    J'aimerai donc tracer la valeur Kd en fonction de z (la profondeur), or je ne vois pas comment procéder. J'ai essaye de créer un tableau pour chaque ligne sans succes. J'ai essaye d'utiliser la commande np.loadtxt sans succes car impossible de sélectionner la bonne ligne et la bonne colonne. Pour l'instant mon code ressemble a cela, il m'a permis d'aligner les valeurs..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    f = open('Pbref0.55_ws0.0_rss0.09_sza40_wl4.txt','r')
    lines = f.readlines()
    f.close()
    f = open('Pbref0.55_ws0.0_rss0.09_sza40_wl4.txt','w')
    for line in lines:
        if line!= 0:
            line = line.lstrip()
            f.write(line)
    f.close()
     
    with open('Pbref0.55_ws0.0_rss0.09_sza40_wl4.txt') as f:
        print(f.read())
    Si quelqu'un aurait une piste pour recuperer ses valeurs dans mon fichier qui comporte environ 400 lignes.

    Merci beaucoup.

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    np.loadtxt est un bon début.
    Dans ton fichier tu as un tableau de valeur, et c'est à priori seulement cela qui t'intéresse.
    Les 3 premières lignes et la dernière ligne ne te sont pas utiles.

    Pour ignorer les premières lignes, la documentation dit très bien comment faire :
    https://docs.scipy.org/doc/numpy-1.1...y.loadtxt.html
    avec un argument qui se nomme skiprows. Maintenant, toi ton problème c'est que tu veux aussi oublier la dernière ligne. Cependant là la documentation ne nous laisse pas non plus sur notre fin :

    Notes

    This function aims to be a fast reader for simply formatted files. The genfromtxt function provides more sophisticated handling of, e.g., lines with missing values.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Par défaut
    Oui, effectivement, j'ai essaye de me servir de np.loadtxt mais elle ne reconnait pas mes lignes d’intérêts, j'entends par la que quand je parcours mon fichier .txt avec np.loadtxt, a la ligne 324 elle reconnait la ligne qui commence par K-functions puis si je saute une ligne donc a la 325 elle reconnaitra la ligne qui commence par radiance. Je n'arrive pas a isoler mes lignes d'interets qui sont les valeurs.

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Citation Envoyé par lulubellule Voir le message
    puis si je saute une ligne donc a la 325 elle reconnaitra la ligne qui commence par radiance. Je n'arrive pas a isoler mes lignes d'interets qui sont les valeurs.
    Regardez mieux la Note que je vous ai extraite de la documentation sur mon post précédent. Cette note vous indique que np.loadtxt est fait pour des fichiers dont le format est simple. Pour des formats plus compliqués, on vous renvoie vers une autre fonction.

    Allez, un peu de lecture, il faut se la coltiner, je ne vous donnerais pas la réponse toute cuite.

  5. #5
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 662
    Par défaut
    Salut,

    Juste une précision. Les données sont-elles toujours rangées de la même façon? Je veux dire, est-ce que le nombre de lignes à ignorer en début et fin de fichier est constant? y'a-t-il un seul tableau à extraire, ou plusieurs au sein d'un même fichier?

    Julien

Discussions similaires

  1. tracer une courbe à partir d'un fichier txt
    Par defcom60 dans le forum Calcul scientifique
    Réponses: 54
    Dernier message: 18/07/2008, 10h16
  2. Réponses: 2
    Dernier message: 26/01/2007, 14h58
  3. Réponses: 3
    Dernier message: 08/08/2006, 02h50
  4. Réponses: 4
    Dernier message: 19/03/2006, 15h20
  5. Réponses: 4
    Dernier message: 27/07/2005, 11h51

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