用python来画出高光谱遥感影像的3D立体图

 

 

这几天需要画出高光谱遥感影像,踩了不少坑,资料真的少得可怜。虽然没有完全搞懂,总归是尝试着画出来了。所以在这里把我遇到的问题罗列一下,仅供参考,如有不足,欢迎大家指正补充。

1.先来贴出我当时看到的第一篇参考资料:https://www.pythonheidong.com/blog/article/295553/

没什么大毛病,为了防止原网页失效,我再大概搬运一下:

需要的环境:spectral,ipython,matplotlib

命令行(cmd)依次输入如下代码:

ipython --pylab    #启动Ipython

import  os

import scipy.io as sio

from spectral import *

dataset_path = os.path.join('你的数据所存放的路径')

data = sio.loadmat(os.path.join(dataset_path, '你的数据.mat'))['y']

spectral.settings.WX_GL_DEPTH_SIZE = 100

view_cube(data, bands=[29, 19, 9])

--------------------------------------------------------------------------------------------------

2.现在来说一下以上代码在我运行的过程中出现的问题:

(1)***.mat数据的格式,我是用matlab将其改成了长×宽×光谱带数的格式

(2)这个100会报错,我改成了32还是会报错:SystemError: returned a result with an error set

这个错误我在百度谷歌都没有找到解决办法。最后改成16,该错误就不见了

(3)bands=[29,19,9]这个我也不知道是什么意思,我将其改成了我的数据的维度,发现会报错,查了一下资料,看到有人用的数据维度和这个也是不一致的,所以这个我就当做一个默认值,在运行的过程中,没有改动,也就不再报这个错误了

3.然后就是环境问题了:

正常情况下我想大家也和我一样没有安装spectral这个库

所以在运行以上代码之前一定要先装上这个库。参考:https://blog.csdn.net/sinat_41421587/article/details/102709136

因为要使用git命令,还需要装两个东西,所以我是直接复制网址,下载spectral的

然后按照步骤安装

大概步骤是:

(1)下载并解压

git://www.github.com/spectralpython/spectral.git

(2)cd到你的文件路径,是可以看到setup这个文件

然后

python setup.py install

(3)安装:

pip install spectral

 

(4)最后进行测试

python -m spectral.tests.run

 不过只安装着一个后面还会出问题的,我们看到了他之前说的依赖关系。我是之前电脑上没有安装OpenGL和wxPython(一定确定是适合自己操作系统和python版本的版本)

所以后面有安装了这两个,也没遇到什么大问题,就是在装OpenGL的时候,明明安装成功了,但是import的时候还是会出错,查到的错误原因是我的numpy版本过高,所以卸载了numpy重新安装一遍,之后就没什么问题了。

numpy重装的过程中需要获得管理员权限,linux下是用的sudo,我是windows,所以参考该文获得管理员权限https://blog.csdn.net/weixin_40161254/article/details/83073910,很详细。

分享一个玄学,做好这一切之后,我还是画不出来。可是熬一个通宵了,实在太困了。我就去睡觉了。

第二天重启了一下电脑,又试了一次最开始画图的代码,本来没抱有太大希望,结果画出来了。很开心,和大家分享一下。也顺便提醒一下朋友们,如果还是不行,重启大法试一试。然后就是,如果在安装的过程中出现问题了,就多尝试几遍。这个已经是最详细的了,希望可以帮到你们

你可能感兴趣的:(python)