USGS-EROS项目espa-surface-reflectance中的Landsat8 大气校正LaSRC Version 1.3.0模块利用vs2010编译出windows64位版本(四)
,支持一些关键问题:
1 数据初始化问题。该问题是指在linux环境下编程标准c并编译,用户定义的变量默认初始值是0,但在windows 64 win7环境中,变量默认初始值是负值极小。。。。
比如原始代码是:
Int num;
Num = num + 500;
在linux编译执行后,num的值是500,但在windows下num值就是负值极小,500毫无作用!所以windows的编译就需要改成:
Int num;
Num = 0;//添加赋初值0
Num = num + 500;
这个比较头痛,因为标准c代码中每个函数都要先定义全部变量,然后再具体实现,很多变量根本就没有赋初值!导致最后计算的结果和linux版本数值有差距!最简单的修改方式是将编译后的windows exe程序在兼容模式下运行,但问题是你的产品给用户时让用户自己没换一个电脑都设置一下exe的兼容性显然是不友好的。解决的的方法只能是跟着断点将整个算法根一遍,将没有初始化的变量人工添加初值0.。。。很漫长,我改了一个星期!终于结果一致了。。。我想这是让Lasrc垮平台最难的!代码都写这么多了,大的改动太难。
2 输出代码错误。在output.c文件中,有一处:
看到了吗?open_raw_binary()函数调用输出参数,”w+”应该改”wb+”!这是低级的输出格式错误,否则不是二进制输出,得到的结果图像用envi打开全是错行,因为raw数据中添加了换行字符。这种错误为啥在linux环境下输出正常啊?编译器也能修正这个错?
3. 添加了中文输出与简单界面
改成了:
界面:
恩,还支持大量数据的自动批处理,支持OpenMP加速,单幅数据处理时间10分钟,差不多了。下一步把辅助数据网络在线更新搞进去就完整了。
最新文章
- java基础3_循环语句,数组
- VM环境下,快速复制多个SQLServer实例,环境调整
- android 解析XML 工具类
- JPA学习(2)注解
- redis 重用命令
- Windows性能监视器之CPU、硬盘、IO等监控方法详解-摘自网络
- Kth order statistcs
- Apache+mod_encoding解决URL中文编码问题
- JS实现添加至购物车功能
- VS2013 重装 无法打开项目
- try_files 居然有这种用法
- mssql sqlserver 自动备份存储过程的方法分享
- Player启动时提示 ";System.InvalidOperationException:无法加载计数器名称数据
- 使用JenKins实现自动执行python脚本
- java_25 FileReader类和FileWriter类
- inheritCombinedParasitic.js
- 【Loadrunner基础知识】web_get_int_proterty
- 【转载】 unity 塔防游戏
- 构造,析构 cpp
- JavaEE笔记(七)