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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    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

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 736
    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 736
    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

  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
    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

  6. #6
    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'

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 736
    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 736
    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

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 736
    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 736
    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

  9. #9
    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

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

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