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 :

problem avec GetrasterBand sous python 3 [Python 3.X]


Sujet :

Python

  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Par défaut problem avec GetrasterBand sous python 3
    Bonjour,

    je sais pas si quelqu'un peut m'aider sur ce sujet mais j'essaie de travailler sur des raster de type MODIS format TIFF

    mon problème est que je n'arrive pas à utiliser bien le package GDAL sur Python (peut-être)

    j'essaie de lire la première bande dans une liste de raster TIFF mais je n'y arrive pas

    voila mon code et l'erreur :

    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
    32
    33
    import os
        import glob
        from osgeo import gdal
        import numpy as np
        import matplotlib.pyplot as plt
        import scipy.ndimage
        import pandas as pd
        import datetime as dt
     
     
        inDir = r'D:\Python\MODIS\Doy2000/'
        os.chdir(inDir)  
     
        outDir = os.path.normpath(os.path.split(inDir)[0] + os.sep + 'output') + '\\' 
        if not os.path.exists(outDir): os.makedirs(outDir)
     
        # Create list of MODIS rasters for MODIS EVI
     
        modis_EVI = glob.glob('MOD13Q1.006__250m_16_days_EVI_**.tif')
     
        # Read file 
        EVI = gdal.Open(modis_EVI [0])
     
    EVI_meta = EVI.GetMetadata()  
     
        geotransform = EVI.GetGeoTransform()
        proj= EVI.GetProjection() 
     
        #Read the band 
        EVIBand = EVI.GetRasterBand(1)   
     
        # Import band as an array           
        EVIData = EVIBand.ReadAsArray().astype('float')
    l'erreur :

    AttributeError: 'NoneType' object has no attribute 'GetRasterBand'
     'NoneType' object has no attribute 'GetGeoTransform' 
    'NoneType' object has no attribute 'GetProjection'
    je sais pas quoi faire

    merci

  2. #2
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    j'ai regardé rapidement, au minimum il y a un espace en trop ligne 22 : (edit: c'est très faux, wiztricks donne la solution plus bas)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    EVI = gdal.Open(modis_EVI [0])   # bad
    EVI = gdal.Open(modis_EVI[0])    # good

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Citation Envoyé par loula05 Voir le message
    l'error :

    AttributeError: 'NoneType' object has no attribute 'GetRasterBand'
    Le NoneType' object correspond à la variable EVI assignée par gdal.Open(modis_EVI [0]). Et si vous lisez un peu la documentation de la bibliothèque osgeo, None est ce que retourne gdal.open en cas de problème pour ouvrir ou traiter le fichier.

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

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Le NoneType' object correspond à la variable EVI assignée par gdal.Open(modis_EVI [0]). Et si vous lisez un peu la documentation de la bibliothèque osgeo, None est ce que retourne gdal.open en cas de problème pour ouvrir ou traiter le fichier.

    - W
    Bonjour,

    merci je comprends sinon je vais chercher de documentation

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    salut,

    j'ai regardé rapidement, au minimum il y a un espace en trop ligne 22 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    EVI = gdal.Open(modis_EVI [0])   # bad
    EVI = gdal.Open(modis_EVI[0])    # good
    Bonjour,

    est ce que l'espace peu provoquer un problème et avoir ce type des erreurs ?

    merci

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par loula05 Voir le message
    est ce que l'espace peu provoquer un problème et avoir ce type des erreurs ?
    Non. Pour vous en convaincre, vous lancez la console Python et vous essayez:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    liste = [ 'toto.dat' ]
    open(liste [0], 'w')
    open(liste[0], 'w')
    open(liste [ 0 ], 'w')
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Par défaut
    Bonjour,

    moi j'ai un problème au niveau de getrasterband c'est pas au niveau de gdal.open

    je comprend pas c'est quoi le probleme

  8. #8
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Par défaut
    voilà le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    evi = gdal.Open(modis_EVI[0])
     
    Band = evi.GetRasterBand(1)
    Traceback (most recent call last):
     
      File "<ipython-input-38-09828cf19778>", line 1, in <module>
        Band = evi.GetRasterBand(1)
     
    AttributeError: 'NoneType' object has no attribute 'GetRasterBand'

  9. #9
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Non. Pour vous en convaincre, vous lancez la console Python et (...)
    oops, effectivement, merci d'avoir corrigé

    Citation Envoyé par wiztricks Voir le message
    Le NoneType' object correspond à la variable EVI assignée par gdal.Open(modis_EVI [0]). (...) None est ce que retourne gdal.open en cas de problème pour ouvrir ou traiter le fichier.
    ça semble assez clair, c'est de gdal.Open() que provient le None, est-ce que modis_EVI[0] contient bien un nom de fichier ? est-ce que ce fichier existe bel et bien ? est-ce qu'on a le droit de lire dedans etc.

  10. #10
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    oops, effectivement, merci d'avoir corrigé


    ça semble assez clair, c'est de gdal.Open() que provient le None, est-ce que modis_EVI[0] contient bien un nom de fichier ? est-ce que ce fichier existe bel et bien ? est-ce qu'on a le droit de lire dedans etc.

    quand j'ecris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    print(modis_EVI)
    ['MOD13Q1.006__250m_16_days_EVI_doy2000209_aid0001.tif', 'MOD13Q1.006__250m_16_days_EVI_doy2000225_aid0001.tif', 'MOD13Q1.006__250m_16_days_EVI_doy2000241_aid0001.tif', 'MOD13Q1.006__250m_16_days_EVI_doy2000257_aid0001.tif', 'MOD13Q1.006__250m_16_days_EVI_doy2000273_aid0001.tif', 'MOD13Q1.006__250m_16_days_EVI_doy2000289_aid0001.tif', 'MOD13Q1.006__250m_16_days_EVI_doy2000305_aid0001.tif', 'MOD13Q1.006__250m_16_days_EVI_doy2000321_aid0001.tif', 'MOD13Q1.006__250m_16_days_EVI_doy2000337_aid0001.tif', 'MOD13Q1.006__250m_16_days_EVI_doy2000353_aid0001.tif']
     
    print(modis_EVI[0])
    MOD13Q1.006__250m_16_days_EVI_doy2000209_aid0001.tif
    il me donne le nom du fichier , mais quand j essai de lire la bande avec getrasterband s affiche l erreur

  11. #11
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Par défaut
    aussi quand je mis print(evi) me donne None


  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par loula05 Voir le message
    moi j'ai un problème au niveau de getrasterband c'est pas au niveau de gdal.open
    Vous avez ce problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> evi = None
    >>> evi.getrasterband
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: 'NoneType' object has no attribute 'getrasterband'
    >>>
    à la différence que dans votre code, c'est gdal.open qui retourne le None assigné à la variable "evi".

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

  13. #13
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Par défaut
    Oui veuillez m'excuser c'est ça je viens de comprendre le problème c'est gdal.open quand j'écris prin(evi) me donne None, je sais pas comment je peux contrôler ce problème afin de continuer le travail je bloque.


  14. #14
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par loula05 Voir le message
    je sais pas comment je peux controler ce problème afin de continuer le travail je bloque .
    Vous ouvrez la documentation, et vous y cherchez comment lui afficher un message d'erreur plus clair (que simplement None) pour avoir une piste sur ce qui ne va pas.
    Vous pouvez aussi essayer de remplacer gdal.open par un open "standard" pour vous assurer déjà que le fichier est accessible.
    Impossible de trouver une solution sans comprendre la cause du problème et comme ces fichiers sont sur vos disques durs...

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

  15. #15
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Vous ouvrez la documentation, et vous y cherchez comment lui afficher un message d'erreur plus clair (que simplement None) pour avoir une piste sur ce qui ne va pas.
    Vous pouvez aussi essayer de remplacer gdal.open par un open "standard" pour vous assurer déjà que le fichier est accessible.
    Impossible de trouver une solution sans comprendre la cause du problème et comme ces fichiers sont sur vos disques durs...

    - W
    mes fichiers sont des raster format TIF j'ai deja travailler sur ces données avec autre programme et ils posent aucun problème mais pour python je suis débutante j 'essai de travailler mais j'arrive pas a comprendre ce problème meme si j'ai lu quelque cours !

    merci

  16. #16
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Par défaut
    j'ai remarqué et j'ai lu sur plusieurs site qu'il faut ajouter ces lignes apres gdal.Open !

    est ce que c'est pour fixer l erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    src_ds = gdal.Open( "INPUT.tif" )
    if src_ds is None:
        print 'Unable to open INPUT.tif'
        sys.exit(1)
    merci d'avance

  17. #17
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Citation Envoyé par loula05 Voir le message
    est ce que c'est pour fixer l erreur
    Cela vous donnera juste un message d'erreur plus explicite qu'AttributeError... (ce qui n'est pas si mal).

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

  18. #18
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Cela vous donnera juste un message d'erreur plus explicite qu'AttributeError... (ce qui n'est pas si mal).

    - W
    est ce que si j'ajoute le chemin complet de ma liste des rasters ici va eliminer l'erreur ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    evi = gdal.Open('c:/Doy2000/modis_EVI[0]')
    sinon je comprends pas vraiment comment résoudre le problème

  19. #19
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par loula05 Voir le message
    est ce que si j'ajoute le chemin complet de ma liste des rasters ici va eliminer l'erreur ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    evi = gdal.Open('c:/Doy2000/modis_EVI[0]')
    Si c'est un nom de chemin complet, il devrait se terminer par ".tif".

    sinon je comprends pas vraiment comment résoudre le problème
    Si vous voulez comprendre, il va falloir prendre le temps d'apprendre à programmer, et pas juste recopier des lignes de code "pour voir". Et çà, on ne peut pas le faire à votre place.

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

  20. #20
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 66
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Si c'est un nom de chemin complet, il devrait se terminer par ".tif".



    Si vous voulez comprendre, il va falloir prendre le temps d'apprendre à programmer, et pas juste recopier des lignes de code "pour voir". Et çà, on ne peut pas le faire à votre place.

    - W
    je pose des questions ici c'est normal et je pense pas que quelqu'un sait programmer dès le début , en tout cas je suis dans un forum pour apprendre , si vous voulez pas aidez pas besoin de dire au gens vous copiez des codes .

    merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/02/2006, 13h49
  2. Probleme avec height sous IE.
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/10/2005, 22h20
  3. Problèmes avec Hibernate (sous Eclipse)
    Par Pierric dans le forum Hibernate
    Réponses: 2
    Dernier message: 07/04/2005, 14h35
  4. Problème avec GLUT sous borland c++ builder X
    Par hiko-seijuro dans le forum GLUT
    Réponses: 1
    Dernier message: 04/11/2004, 12h47
  5. Problème avec phpize sous debian woody
    Par nipepsi dans le forum Debian
    Réponses: 3
    Dernier message: 09/09/2004, 11h54

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