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 :

Relief ombrage et pb de memoire avec python


Sujet :

Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 160
    Points : 41
    Points
    41
    Par défaut Relief ombrage et pb de memoire avec python
    Bonjour a tous!

    J'essaye d'effectuer des reliefs ombragés à partir de modele numérique de terrain.

    J'utilise le code suivant dans python:
    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
     
    import geo_image_lib as geo
    import pylab as pl
    import numpy as np
    from matplotlib.colors import LightSource
     
    #lit l'image et extrait les coordonnées
    a=geo.read_geo_image('out.tif')#je lis mon image .tif qui est est un array contenant des valeurs d'elevation en metres
    lonmin,lonmax,latmin,latmax=geo.get_im_extent('out.tif')
    #enleve les valleurs en dessous de zero
    w=np.where(a<0)
    a[w]=0.
     
    ls = LightSource(azdeg=50,altdeg=65)
    rgb = ls.shade(a,cmap=pl.cm.Greys)
    #plot
    pl.imshow(rgb,extent=(lonmin,lonmax,latmin,latmax),interpolation='bilinear')
    pl.show()
    Seulement au niveau de l'utilisation de ls.shade, le programme bloque et me renvoie:
    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
     
    ---------------------------------------------------------------------------
    MemoryError                               Traceback (most recent call last)
    /usr/lib/python2.7/dist-packages/IPython/utils/py3compat.pyc in execfile(fname, *where)
        202             else:
        203                 filename = fname
    --> 204             __builtin__.execfile(filename, *where)
     
    /home/judith/Desktop/Program3_PlotImage_bis.py in <module>()
         12 
         13 ls = LightSource(azdeg=50,altdeg=65)
    ---> 14 rgb = ls.shade(a,cmap=pl.cm.Greys)
         15 
         16 pl.imshow(rgb,extent=(lonmin,lonmax,latmin,latmax),interpolation='bilinear')
     
    /usr/lib/pymodules/python2.7/matplotlib/colors.pyc in shade(self, data, cmap)
       1359 
       1360         rgb0 = cmap((data - data.min()) / (data.max() - data.min()))
    -> 1361         rgb1 = self.shade_rgb(rgb0, elevation=data)
       1362         rgb0[:, :, 0:3] = rgb1
       1363         return rgb0
     
    /usr/lib/pymodules/python2.7/matplotlib/colors.pyc in shade_rgb(self, rgb, elevation, fraction)
       1380         slope = 0.5 * np.pi - np.arctan(np.hypot(dx, dy))
       1381         aspect = np.arctan2(dx, dy)
    -> 1382         intensity = (np.sin(alt) * np.sin(slope) + np.cos(alt) *
       1383                      np.cos(slope) * np.cos(-az - aspect - 0.5 * np.pi)
    Je ne comprend pas trop d'ou vient le pb vu que j'utilisais déja ce code sur ma machine précedente et cela fonctionnait bien. Mon image TIF n'est pas specialement volumineuse non plus (60MO). Pensez vous que cela peut venir de ma machine? J'utilise actuellement un lenovo T420 32bit de 2011 avec 8gb de memoire et un processeur intel core i5. Le systeme d'exploitation est ubuntu 14.04. Cela m'étonnerait néanmoins car ma précedente machine etait moins performante...

    J'ai aussi essayé les liens suivants, mais j'ai toujours le meme pb de mémoire:
    http://geoexamples.blogspot.com/2014...al-python.html
    http://rnovitsky.blogspot.com.es/201...intensity.html

    Auriez des conseils pour éviter ce probleme?

    Merci d'avance

  2. #2
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Ce n'est pas un pb de compatibilité python2 / python3 ?
    Pas d'aide par mp.

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Je me suis posé la même question que marco056 en voyant ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /usr/lib/python2.7/dist-packages/IPython/utils/py3compat.pyc
    C'est quoi py3compat.py ?


    Edit: Non en fait, ça a l'air d'être un module de compatibilité 2 ~ 3
    https://github.com/ipython/ipython/b...s/py3compat.py

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 160
    Points : 41
    Points
    41
    Par défaut
    J'ai aussi une version de python3 installée sur mon ordi en parallèle de python2 (que j'utilise ici). Vous croyais que je devrais la désinstaller?
    Pensez vous que cela peut venir du fait que j utilise python 32bit? Est-il possible d'installer python 64bit sur une machine 32bit? Pas recommandé je suppose? Quelle en sont les inconvénients?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 160
    Points : 41
    Points
    41
    Par défaut
    C'est bon j'ai fait une ré-installation de ubuntu en 64bit + python 64 bit. Il s'avere que ma machine supporte cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    >lscpu
    CPU op-mode(s): 32-bit, 64-bit

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

Discussions similaires

  1. ecrire dans la memoire du telephone portable avec python
    Par aksegaly dans le forum Bibliothèques tierces
    Réponses: 4
    Dernier message: 19/10/2009, 12h15
  2. création de base mySQL avec python
    Par preacher_man dans le forum Bibliothèques tierces
    Réponses: 7
    Dernier message: 23/06/2006, 19h38
  3. La mémoire avec ps
    Par Invité dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 14/12/2005, 15h17
  4. Les 128 derniers bits d'un fichier en ligne avec Python ?
    Par ecocentric dans le forum Réseau/Web
    Réponses: 7
    Dernier message: 26/09/2005, 12h40
  5. carte memoire avec film (vente)
    Par numeror dans le forum Périphériques
    Réponses: 42
    Dernier message: 09/08/2005, 13h52

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