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

Bibliothèques tierces Python Discussion :

[netCDF4] affichage des valeurs des pixel dans une fenetre de 5x5 [Python 3.X]


Sujet :

Bibliothèques tierces Python

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 44
    Points : 31
    Points
    31
    Par défaut [netCDF4] affichage des valeurs des pixel dans une fenetre de 5x5
    Bonjour,

    j'ai un fichier netcdf4 que j'aimerai afficher tous les valeurs des pixel ou des valeurs du variable air_dep sous forme d'un tableau que chaque ligne-colonne correspond à une valeurs du variable :

    Nom : Capture du 2019-07-16 15-17-10.png
Affichages : 375
Taille : 4,8 Ko

    cela juste un exemple , je pense que je devrai utiliser quelque chose comme Var_air[x-5 : x+5,y-5:y+5]

    mais je sais pas trop comment le faire les x y sont les coordonnées ligne colonne

    merci d'avance

  2. #2
    Membre émérite

    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
    Points : 2 328
    Points
    2 328
    Par défaut
    Bonjour

    Comment ferait tu déjà pour afficher la valeur d'un seul pixel ? Il faut toujours raisonner sur des problèmes simples d'abord.

    Montre du code.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 44
    Points : 31
    Points
    31
    Par défaut
    Bonjour ,

    voilà le code soi par cette méthode sois par l'affichage avec imshow on peut voir la valeur du variable dans un pixel de coordonnées (x, y) choisi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    import numpy as np
    from netCDF4 import Dataset
     
     
    x_coord, y_coord = 12.6109, 23.9767
     
    path = '/data/air2012.nc'
     
     
    def ExtractVarsFromNetcdf(x_coord, y_coord, path, varnames):
        """
     
        @params:
           x_coord - Required : the x coordinate of the point
           x_coord - Required : the y coordinate of the point
           path+fic - Required : The directory of the netcdf file.
           varnames - Required : The netcdf variables
        """
        with Dataset(path, "r") as nc:
            # Get the nc lat and lon from the point's x, y
            #lon = np.ma.getdata(nc.variables["lon"][int(round(x_coord))])
            #lat = np.ma.getdata(nc.variables["lat"][int(round(y_coord))])
            # Return a np.array with the netcdf data
            air_dep = np.ma.getdata(nc.variables['air_dep'][0,x_coord , y_coord])
     
            return air_dep
     
     
    air_dep = ExtractVarsFromNetcdf(x_coord, y_coord, path, varnames = ['air_dep'])
     
    print((int(air_dep))
    ca donne :

    -38


    voilà mais ce que je cherche c'est comme une matrice 5x5 mais sous forme d'un tableau !

    merci

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par soma12 Voir le message
    voilà mais ce que je cherche c'est comme une matrice 5x5 mais sous forme d'un tableau !
    Il doit y avoir des façons plus intelligente d'utiliser l'API de netCDF4 que de récupérer une valeur après l'autre mais il y a certainement des forums d'utilisateurs ou des exemples qui traînent qui pourraient être instructifs.

    A défaut, côté Python, votre question se résume à ranger 25 valeurs dans une liste des listes 5x5. Ce qui est une difficulté que tout débutant apprend à résoudre...
    Dit autrement, si vous avez pris le temps de débuter, quelle difficulté rencontrez vous pour faire une chose qui paraît si simple?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 44
    Points : 31
    Points
    31
    Par défaut
    les difficultés c'est au niveau du fichier netcdf4 c'est pas simple a codé avec ce type de fichier surtout que pour mes connaissances j'ai pas trop des connaissances de ce type des fichiers

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par soma12 Voir le message
    j'ai pas trop des connaissances de ce type des fichiers
    C'est une base de données un peu spéciale.
    Et comme toute base de données, il vaut mieux savoir l'utiliser avant de vouloir programmer. Ce serait une base de données "populaire", je vous suggèrerais d'aller faire un tour dans la rubrique SGDB...
    Mais dans ce cas, je ne peux que modifier le titre de la discussion en y mettant NetCDF4 histoire que si un programmeur Python qui connaît passe dans le coin...
    Ceci dit, il y a certainement des tutos. et des articles à consulter sur Internet.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] changer la valeur des pixels dans une image
    Par crespo 12 dans le forum Images
    Réponses: 1
    Dernier message: 19/02/2019, 16h05
  2. [gnuplot] valeur des pixels dans une image
    Par Casimirs dans le forum MATLAB
    Réponses: 0
    Dernier message: 26/05/2012, 23h31
  3. utilisation des panel dans une fenetre Win32
    Par ksoft dans le forum MFC
    Réponses: 1
    Dernier message: 02/05/2006, 21h45
  4. Affichage des mois dans une liste déroulante
    Par Le Rebel dans le forum Langage
    Réponses: 15
    Dernier message: 20/02/2006, 13h37
  5. Affichage des chiffres dans une phrases arabe
    Par omda dans le forum Oracle
    Réponses: 4
    Dernier message: 30/09/2005, 13h36

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