HEG运行错误:GetBeginAndEndLocs

  • 运行错误日志记录
  • 原因分析
  • 解决办法
  • Python写入HEG批处理文件示例
    • 1. HEG参数文件写入示例
    • 2. HEG批处理bat文件写入示例
  • 参考

运行错误日志记录

Unable to allocate bufptr memory (errval = -1)
Error: GetBeginAndEndLocs_St : Reading Input Parameter File
: Error in GetBeginAndEndLocs. Probably an empty line is needed after END in the parameter file.

原因分析

我使用python对HEG的参数文件(.prm)进行了批量生成与修改,之后将prm文件与相应命令写入.bat文件中, 运行后出现上述错误。
原因是HEG的参数文件是Unix系统格式,其换行符为"\n",Notepad++中显示为"LF",而写入时是按照Windows系统格式,换行符为"\r\n",在Notepad++中显示为"CRLF"。
关于该错误的描述详见ZHOU-LONG的博客 1
关于文件格式的详细信息参见Flyleaves的博客 2

解决办法

  1. 在python中,字符串末尾增加
# 字符串末尾加上replace和encode
'zi fu chuan'.replace('\r\n', '\n').encode('utf-8')
  1. 在python写入文件时,使用
# 打开文件时以 byte 格式打开
with open(prmfname, 'wb') as f:f.write(strings)
f.close()

Python写入HEG批处理文件示例

1. HEG参数文件写入示例

Python环境:Python 3.8.3

# 定义一个写入参数的函数 prmWriter
def prmWriter(prmfname, hdflist, tifname):# 该参数文件写入HEG批处理工具 subset_stitch_grid 所需参数# prmfname: str, 'MyParameter.prm'# hdflist: HDF文件列表, str in list, ['1.hdf', '2.hdf',...]# tifname: str, 'mytiffile.tif'in_files = "|".join(hdflist)  # 组合文件名格式strings = f"""
NUM_RUNS = 1BEGIN
NUMBER_INPUTFILES = 13
INPUT_FILENAMES = {in_files}
OBJECT_NAME = MOD_Grid_MOD17A2H|
FIELD_NAME = Gpp_500m|
BAND_NUMBER = 1
SPATIAL_SUBSET_UL_CORNER = ( 59.999999995 31.114476532 )
SPATIAL_SUBSET_LR_CORNER = ( 29.999999997 124.457906126 )
OUTPUT_OBJECT_NAME = MOD_Grid_MOD17A2H|
OUTGRID_X_PIXELSIZE = 0.0041666733029590754
OUTGRID_Y_PIXELSIZE = 0.0041666733029590754
RESAMPLING_TYPE = NN
OUTPUT_PROJECTION_TYPE = GEO
ELLIPSOID_CODE = WGS84
OUTPUT_PROJECTION_PARAMETERS = ( 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0  )
OUTPUT_FILENAME = {tifname}
SAVE_STITCHED_FILE = NO
OUTPUT_STITCHED_FILENAME = {tifname.replace('.tif', '_stitched_.hdf')}
OUTPUT_TYPE = GEO
END""".replace('\r\n', '\n').encode('utf-8')with open(prmfname, 'wb') as f:f.write(strings)f.close()

2. HEG批处理bat文件写入示例

# 定义一个写入批处理文件bat的函数 writeBat
def writeBat():# 获取所有.prm文件prm_dir = r'D:\DATA\prmfiles'prmfiles = [i for i in os.listdir(prm_dir) if i.endswith('.prm')]batfname = os.path.join(prm_dir, r'batch_run_HEGsubset_stitch_grid.bat')with open(batfname, 'w+') as f:for prmfile in prmfiles:f.write(fr'subset_stitch_grid -P {prm_dir}\{prmfile}'+'\n')f.close()print('完成写入Bat文件.')

参考


  1. https://blog.csdn.net/qq_33356563/article/details/90744567 ↩︎

  2. https://www.cnblogs.com/Flyleaves/p/5718040.html ↩︎

HEG运行错误:GetBeginAndEndLocs相关推荐

  1. 出现运行时间错误_Excel VBA 运行错误,你知道为何突然出现错误的原因吗

    我们知道在写好的某一段程序也许在运行的时候,会出现错误的提示,导致不能正常执行我们的功能.那么你可知道,这些错误的原因是什么吗?这个错误有可能是我们的语法错误,也有可能是运行错误,具体错误需要具体进行 ...

  2. linux显示fio为非法指令,FORTRAN运行错误消息列表中英对照.doc

    FORTRAN运行错误消息列表中英对照 Fortran的运行时错误消息列表 本节列出了英特尔Fortran运行时库(RTL)处理的错误.对于每一个错误,该表提供了错误号,严重性代码,错误信息文本,条件 ...

  3. c语言 java 性能 测试_这个蓝桥杯系统的题,用c语言去评测是满分,改为Java说运行错误是0分,但是我查看输入输出,至少第...

    这个蓝桥杯系统的题,用c语言去评测是满分,改为Java说运行错误是0分,但是我查看输入输出,至少第一个是对的啊提交序号1269960作者彭云成提交时间02-0507:49:27评测结果运行错误得分.. ...

  4. Android Studio 开始运行错误

    /********************************************************************************* Android Studio 开始 ...

  5. Java语言所有异常类均继承自_Java将运行错误分为两类:(__)和(__), 其对应的类均派生自(__)类;...

    [单选题]设 x,y 均为已定义的类名,下列声明对象x1的语句中正确的是( ) [判断题]构造函数的方法名可以由编程人员任意命名. [单选题]能够实现对原文的鉴别和不可否认性的认证技术是( ). [单 ...

  6. WMI服务故障,VBS脚本无法运行错误

    WMI服务故障,VBS脚本无法运行错误报"0x80041002 代码80041002"错误 ---------------------------------- 脚本: C:\WI ...

  7. access子窗体的控件vba怎么写_第37讲:VBA代码中运行错误的处理方式

    大家好,本来在这一讲要接着我们的上一讲内容讲解二师兄的成长过程之九,但之九的内容是错误的处理,为了大家能更好的掌握之九二师兄的成才内容,我们临时加入一讲专门讲解VBA中错误处理,这一讲中我重点讲一下V ...

  8. matlab 如何捕捉错误,【matlab|matlab运行错误捕捉方法】

    『傻大方知识库摘要_matlab|matlab运行错误捕捉方法』需安装VC2005运行库.Matlab错误提示往往以DOS窗口显示,错误提示经常一闪而过,无法查看具体错误信息,可以按照如下操作进行查看 ...

  9. Office Tool Plus软件运行错误,缺少.net

    2021.9.29更新 看了Office Tool Plus官方文档之后,发现有了一个新版本:with runtime 版本 这个版本已经包含了.net组件,不用另外安装.net了.如果遇到Offic ...

最新文章

  1. Struct2中三种获取表单数据的方式
  2. Web服务器常用端口
  3. html设计一张试卷算分,HTML试卷10班分享[共5页].doc
  4. mysql5.6.33安装教程_Linux下mysql5.6.33安装配置教程
  5. (12)ISE14.7仿真流程(FPGA不积跬步101)
  6. LeetCode 151. Reverse Words in a String
  7. Winform 视频流叠加透明控件. 使用DSkin皮肤框架实现
  8. idea热部署(更新jsp代码不用重编译Tomcat)
  9. 项目中常见的沟通方式
  10. Bada构建主从去中心混合架构的NoSQL-王超
  11. 申请 iOS开发者计划 (IOS Developer Program IDP)
  12. 现金流量表的编制 (by shany shang)
  13. 拼多多店铺是如何运营高客单价的商品,拼多多可以买高客单价的商品吗?
  14. android模拟器MAC无法联网(安卓开发)
  15. 英创力电子IPO被终止:年营收10亿 深创投与红土是股东
  16. JavaScript中的arguments,callee,caller,call,appy
  17. 掌握PS制作,实时预览你的精彩作品
  18. Shell中获取脚本的绝对路径$( cd “$( dirname “${BASH_SOURCE[0]}“ )“ pwd)
  19. 《1024 程序员节》—我喂自己袋盐
  20. AtCoder Grand Contest 004 A - Divide a Cuboid 题解

热门文章

  1. PS常用平面设计制作尺寸
  2. vue配置文件不打包
  3. 收集的 Linux VPS 在线重装系统脚本
  4. ThinkPHP6项目基操目录
  5. flink on yarn使用第三方jars的方法如何查看进程所持有jar包
  6. windows商店直接安装ubuntu子系统
  7. 2021年机修钳工(中级)考试题库及机修钳工(中级)试题解析
  8. 2020机修钳工(中级)模拟考试及机修钳工(中级)作业模拟考试
  9. 【调剂】2020年中科院上海光机所接收报考硕士研究生调剂生的通知
  10. android绘制一个圆,点哪画哪,走哪动哪