Py6S模块详细安装过程
最近想了解一下用Python做大气校正的相关知识,于是找到了Py6S模块,安装这个模块需要编译好的6s模型,但是由于6s模型是基于FORTRAN这一相对古老的语言编写的,我完全不知从何入手,还好有高人给了教程(英文),我来详细记录一下。
一.参考网站
1.http://py6s.readthedocs.io/en/latest/installation.html (Py6S模块的homepage,提供了详细安装教程)
感谢Py6S的作者:Robin Wilson及其团队 所提供的详细操作过程
2.http://blog.163.com/lys_zmz@126/blog/static/1683467372016445650616/ (已经有人做了相关转述)
二.开始安装
首先要注意的是Py6S只是6S的一个接口,要用Py6S的话6S模型的可执行文件必须要存在。
下面安装6S
1.没有安装minGW的包会导致可能不能使用6S.exe和没有make命令,不能进行makefile的问题,参照下面的文章进行安装 (http://blog.csdn.net/pdcxs007/article/details/8582559)。
* 不要用上述文章开头给的MinGW下载链接,亲测下载下来并不是mingw-get-inst-20120426.exe
* 上述文章所需mingw-get-inst-20120426.exe的下载链接(http://vdisk.weibo.com/s/aVS0HD8CXDwoX)
2.WINDOWS系统需要下载UNIX工具,因为之后需要对makefile文件进行编译,这里需要下载make和tar两个工具并安装(http://gnuwin32.sourceforge.net/packages.html)。
3.安装FORTRAN编译器,根据文章的解释,FORTRAN77是有悠久历史的语言,新的FORTRAN编译器未必能起到很好的支持,因此下载FORT99.zip(http://www.cse.yorku.ca/~roumani/fortran/ftn.htm)。
* 解压以后,将文件夹下的G77复制到C盘根目录。
4.环境变量配置,右键“我的电脑”-》“更改设置”-》“高级”-》“环境变量”,在系统变量中,找到path,添加上两个路径(以自己实际路径为准)
C:\Program Files\GNUWin32\bin
C:\G77\bin
5.下载6SV1.1(Py6S模块暂时不支持更高版本)并解压。(不用py6s模块的话下载V2.1就行)
6.编辑makefile文件,用记事本打开makefile,找到结尾附近的 -lm
并删除。
7.编译6S模型。以管理员身份打开cmd,打开6S模型所在的目录(即解压后.f文件所在的文件夹),在cmd中定位至此目录并输入 make 进行编译。编译成功后得到的sixsV1.1文件就是sixsV1.1.exe。
8.测试是否安装成功。cmd中在此目录下输入 sixsV1.1.exe < ..\Examples\Example_In_1.txt
并执行
,如果出现类似下面的结果
则说明安装成功。
*******************************************************************************
* atmospheric correction result *
* ----------------------------- *
* input apparent reflectance : 0.100 *
* measured radiance [w/m2/sr/mic] : 38.529 *
* atmospherically corrected reflectance *
* Lambertian case : 0.22187 *
* BRDF case : 0.22187 *
* coefficients xa xb xc : 0.00685 0.03870 0.06820 *
* y=xa*(measured radiance)-xb; acr=y/(1.+xc*y) *
*******************************************************************************
下面安装Py6S
1.直接在cmd里 pip install Py6S ,注意先将pip源更改至国内镜像,可以显著提升下载速度(https://blog.csdn.net/lambert310/article/details/52412059)
2.如果Py6S的部分依赖包安装失败可以尝试先下载该依赖包的离线包先离线安装 (https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud )
3.将编译成功的sixsV1.1重命名为sixs.exe放在 C:\Windows\System32 路径下 (主要是保证这个煞费苦心编译的6s可执行文件所在的路径包含在环境变量中的系统变量Path中,好让Py6S能找到它,其实还有很多方法这里图个方便。)
4.测试是否安装成功。打开你的Pycharm 或者其它工具 执行下面的代码
from Py6S import *
SixS.test()</span>
如果出现:
6S wrapper script by Robin Wilson
Using 6S located at <PATH_TO_SIXS_EXE>
Running 6S using a set of test parameters
The results are:
Expected result: 619.158000
Actual result: 619.158000
#### Results agree, Py6S is working correctly
则大功告成!!!
5.该模块的具体使用请参照 http://py6s.readthedocs.io/en/latest/quickstart.html
最后再次感谢 Robin Wilson 及其团队