6S模型的编译问题解决

embedded/2025/2/6 17:31:51/

使用python处理遥感光谱数据,免不了进行大气校正,基本上免费的就是使用Py6s,而py6s库只是一个接口,还需要自己配置6S模型,可以查到很多资料,6S模型是古老的fortran语言写的,基本配置流程就是安装 Fortran 77 编译器+UNIX工具,然后下载6S模型,用g77编译成exe文件给py6s调用(参考PY6S说明文档)。但对于曾经被C++环境配置搞崩溃的代码小白来说,这无疑是一个难过的坎,可是之前的资源卫星02D光谱数据处理软件已经基本完成,就差这一步了,放弃就太可惜了,花了半天时间确认没有更简单的替代方案了,还是硬着头皮开始搞。

但是跟着调研的资料一步步弄不是很顺利,比如g77编译器找不到(添加环境变量后,需要重启终端),找到g77编译器后编译频繁出错,利用AI修改了多轮makefile都不成功,更换了gfortran也不行。基本上是两种问题不停的重复。

用gfortran编译的错误提示如下:

Warning: Deleted feature: ASSIGN statement at (1)
AKTOOL.f:629:72:

  629 |       assign 48 to l4

用g77编译的错误如下:

g77 -O -O  -c -o AKTOOL.o AKTOOL.f
C:\Users\MSI-NB\AppData\Local\Temp\ccIVjaaa.s: Assembler messages:
C:\Users\MSI-NB\AppData\Local\Temp\ccIVjaaa.s:19: Error: invalid instruction suffix for `push'
C:\Users\MSI-NB\AppData\Local\Temp\ccIVjaaa.s:23: Error: invalid instruction suffix for `push'
C:\Users\MSI-NB\AppData\Local\Temp\ccIVjaaa.s:24: Error: invalid instruction suffix for `push'
C:\Users\MSI-NB\AppData\Local\Temp\ccIVjaaa.s:28: Error: invalid instruction suffix for `push'
C:\Users\MSI-NB\AppData\Local\Temp\ccIVjaaa.s:29: Error: invalid instruction suffix for `push'
C:\Users\MSI-NB\AppData\Local\Temp\ccIVjaaa.s:34: Error: invalid instruction suffix for `push'
C:\Users\MSI-NB\AppData\Local\Temp\ccIVjaaa.s:35: Error: invalid instruction suffix for `push'
C:\Users\MSI-NB\AppData\Local\Temp\ccIVjaaa.s:39: Error: invalid instruction suffix for `push'
C:\Users\MSI-NB\AppData\Local\Temp\ccIVjaaa.s:40: Error: invalid instruction suffix for `push'

如果你也遇到这样的问题,那基本上查到的攻略都不行。最后在github上找了一个6S模型的复制版本,并且针对更高级的gfortran编译器调整了makefile文件,我简单看了一下makefile内容,确实是使用gfortran编译器,感觉有点靠谱,尝试看一下居然成功了,虽然也提示了小错误,但是至少编译成功了。为了验证编译是否正确(毕竟还是出现错误了),把exe文件拷贝到官网下载的文件夹中,用如下代码测试

sixs.exe < ..\Examples\Example_In_1.txt

体验一下成功的喜悦吧:

总结:

1.很多教程都行不通

2.github上下载6s模型satelligence / 6SV1.1 · GitLab

3.使用gfortran编译器(我下载的是这个版本,在线安装的版本总是出错)

4.使用官网6s模型文件夹验证编译是否成功

如果编译不成功可以直接下载执行文件


http://www.ppmy.cn/embedded/160091.html

相关文章

基于python热门歌曲采集分析系统

基于Python的热门歌曲采集分析系统是一个综合性的音乐数据处理平台&#xff0c;它利用Python的强大功能&#xff0c;结合数据库和前端技术&#xff0c;实现了对热门歌曲的采集、分析、展示和管理。以下是对该系统的详细介绍&#xff1a; 一、系统架构与技术栈 1.后端&#xf…

Python爬虫:1药城店铺爬虫(完整代码)

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作&#xff0c;主要擅长领域有&#xff1a;爬虫、后端、大数据…

【Vue3 完整学习笔记 - 第一部分】

Vue3 完整学习笔记 - 第一部分 Vue3 完整学习笔记 - 第一部分1. Vue3 基础入门1.1 Vue3 简介1.2 创建 Vue3 工程1.3 编写首个 Vue3 组件1.4 Composition API vs Options API1.5 setup 函数详解1.6 响应式数据处理 Vue3 完整学习笔记 - 第一部分 1. Vue3 基础入门 1.1 Vue3 简…

RGB565转BITMAP[C#---2]

这是楼主在开发C#上位机的时候遇到的另一个问题&#xff0c;怎么把RGB565转为BITMAP&#xff0c;在CSDN上搜索&#xff0c;要么是安卓平台的&#xff0c;要么是2011年的古早代码&#xff08;还没排版&#xff09;&#xff0c;还是靠自己和DEEPSEEK的智慧解决了(●’◡’●) 当然…

【PyQt】keyPressEvent键盘按压事件无响应

问题描述 通过load ui 文件加载程序时&#xff0c;keyPressEvent键盘按压事件无响应 原因 主要是由于事件处理的方式和窗口的显示方式不正确所导致的。 解决代码 self&#xff1a;这里的self作为loadUi函数的第二个参数&#xff0c;意味着加载的界面将被设置为当前类实例&…

基于YOLO11的肺结节检测系统

基于YOLO11的肺结节检测系统 (价格90) LUNA16数据集 数据一共 1186张 按照8&#xff1a;1&#xff1a;1随机划分训练集&#xff08;948张&#xff09;、验证集&#xff08;118张&#xff09;与测试集&#xff08;120张&#xff09; 包含 nodule 肺结节 1种…

『 C++ 』中理解回调类型在 C++ 中的使用方式。

文章目录 案例 1&#xff1a;图形绘制库中的回调使用场景说明代码实现代码解释 案例 2&#xff1a;网络服务器中的连接和消息处理回调场景说明代码实现代码解释 案例 3&#xff1a;定时器中的回调使用场景说明代码实现代码解释 以下将通过不同场景给出几个使用回调类型的具体案…

Python之如何在Visual Studio Code 中写的python程序打包成可以在Windows系统下运行的.exe程序

要将你在 Visual Studio Code 中编写的 Python 程序打包成可以在 Windows 系统下运行的 .exe 文件&#xff0c;可以使用 PyInstaller 工具。以下是详细的操作步骤&#xff1a; 1. 安装 PyInstaller 首先&#xff0c;你需要安装 PyInstaller。打开终端&#xff08;可以在 VS C…