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:
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 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()
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...
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)
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
Partager