当前位置: 首页 > news >正文

6S模型的编译问题解决

使用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.lryc.cn/news/531991.html

相关文章:

  • C++11详解(二) -- 引用折叠和完美转发
  • 实验十四 EL和JSTL
  • 为什么在springboot中使用autowired的时候它黄色警告说不建议使用字段注入
  • DeepSeek大模型介绍、本地化部署与使用!【AI大模型】
  • 备考蓝桥杯嵌入式4:使用LCD显示我们捕捉的PWM波
  • 智能化转型2.0:从“工具应用”到“价值重构”
  • 机器学习之数学基础:线性代数、微积分、概率论 | PyTorch 深度学习实战
  • 9.PPT:儿童孤独症介绍【22】
  • 离散浣熊优化算法(DCOA)求解大规模旅行商问题(Large-Scale Traveling Salesman Problem,LTSP),MATLAB代码
  • Java 引入和使用jcharset,支持UTF-7字符集
  • rust安装笔记
  • 扣子平台的选择器节点:让智能体开发更简单,扣子免费系列教程(17)
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_sprintf_num 函数
  • Vue的状态管理:用响应式 API 做简单状态管理、状态管理库(Pinia )
  • AI工具如何辅助写文章(科研版)
  • LEED绿色建筑认证的重要意义
  • 阿里云 ubuntu22.04 中国区节点安装 Docker
  • 【kafka的零拷贝原理】
  • Linux环境部署DeepSeek大模型
  • React中key值的正确使用指南:为什么需要它以及如何选择
  • 21.2.1 基本操作
  • 车载以太网__传输层
  • 简单本地部署deepseek(软件版)
  • AI绘画:解锁商业设计新宇宙(6/10)
  • 20250202在Ubuntu22.04下使用Guvcview录像的时候降噪
  • cors跨域是如何做的?
  • 系统通解:超多视角理解
  • 最大矩阵的和
  • 深度学习 | 表示学习 | 卷积神经网络 | Batch Normalization 在 CNN 中的示例 | 20
  • 最短木板长度