2014-10-26 2 views
0

У меня есть мозаика из плиток Aster GDEM, которые я сшил вместе. Когда я рисую данные с plt.contourf(mosaic.lon1d, mosaic.lat1d, mosaic.elev, 40, cmap=plt.cm.terrain), все на месте и отображается правильно. enter image description hereMayavi, показывающий неправильную протяженность объекта

Однако следующий код:

fig = mlab.figure(figure='ICVM', bgcolor=(1,1,1), fgcolor=(0,0,0), size=(1024,786)) 
mlab.clf() 

topo = mlab.surf(mosaic.lat1d, mosaic.lon1d, mosaic.elev, colormap='gist_earth', warp_scale=-1e-4) 

mlab.axes(xlabel='lat.', ylabel='lon.') 
mlab.outline() 

mlab.view(-160, 125, 10, array([26.5,35.,-0.1168])) 
mlab.roll(-90) 

производит этот участок, который прекрасен для того факта, что широта идет от 24 до 29, а не 29 до 34, как это следует, за исключением. enter image description here

любые идеи, почему это так? я могу это изменить?

Следующая ссылка загрузит данные (lat1d, lon1d, elev) в качестве .npy файл для чтения с помощью numpy.load. download data zip file: http://goo.gl/nhCNFS

ответ

1

Похоже, что mayavi имеет проблемы, если значения массива не увеличиваются (ваши данные lat1d уменьшаются).

Если вы измените свой массив lat1d и elev, вы получите правильный сюжет.

fig = mlab.figure(figure='ICVM', bgcolor=(1,1,1), fgcolor=(0,0,0), size=(1024,786)) 
mlab.clf() 

topo = mlab.surf(lat1d[::-1], lon1d, elev[::-1], colormap='gist_earth', warp_scale=-1e-4) 

mlab.axes(xlabel='lat.', ylabel='lon.') 
mlab.outline() 

enter image description here