SYSTIME 导致 IDL 程序错误
SYSTIME causes IDL program error
我被分配了一个 class 的 IDL 编码任务。这种语言对我来说是新的,但我已经编程了一段时间,所以这个错误让我很困惑。我无法使用 systime() 函数将日期和时间添加到输出的文件名中。
未在代码中显示:创建了包含 4 个 geotiffs 的镶嵌光栅图像的 mosaicRaster。
outputRaster = filepath + 'outputFile' + SYSTIME() + '.tif'
mosaicRaster.Export, outputRaster, 'TIFF'
程序完成且没有错误..只是没有输出我的文件。如果我将其更改为:
outputRaster = filepath + 'outputFile.tif'
程序运行良好。
我尝试将 STRING() 放在 SYSTIME() 周围,也放在 outputRaster 周围。
funny/weird/miserable 是 SYSTIME(/SECONDS) 运行良好。只有当SYSTIME没有参数时才会出问题。
此外,这些语句有效:
time = SYSTIME(/SECONDS)
PRINT, SYSTIME()
这不起作用(程序退出而不输出我的光栅):
time = SYSTIME()
同样,没有错误。我已经搜索了帮助文档,但没有找到任何内容。我的教授看过我的代码并说他看起来完全一样(他运行 mac,我在实验室中使用 windows VM)。该文件只是不输出。您可能会问为什么我需要在文件名后附加当前日期...这是对这个最终项目的要求。
非常感谢任何帮助。
SYSTIME() 生成一个字符串,其中包含 Windows 路径中的非法字符(即冒号)。
c:\>mkdir "Mon Jan 18 20:14:07 2038"
The filename, directory name, or volume label syntax is incorrect.
c:\>mkdir "Mon Jan 18 20-14-07 2038"
(no error)
SYSTIME(/SECONDS) 产生一个带数字和一个点的字符串,这是合法的。
https://www.harrisgeospatial.com/docs/systime.html
冒号在 Windows 上无效,空格通常很难处理。最简单的解决方法是使用 IDL_VALIDNAME
来修正日期:
IDL> print, idl_validname(systime(), /convert_all)
Thu_Feb__8_11_01_05_2018
我被分配了一个 class 的 IDL 编码任务。这种语言对我来说是新的,但我已经编程了一段时间,所以这个错误让我很困惑。我无法使用 systime() 函数将日期和时间添加到输出的文件名中。
未在代码中显示:创建了包含 4 个 geotiffs 的镶嵌光栅图像的 mosaicRaster。
outputRaster = filepath + 'outputFile' + SYSTIME() + '.tif'
mosaicRaster.Export, outputRaster, 'TIFF'
程序完成且没有错误..只是没有输出我的文件。如果我将其更改为:
outputRaster = filepath + 'outputFile.tif'
程序运行良好。
我尝试将 STRING() 放在 SYSTIME() 周围,也放在 outputRaster 周围。
funny/weird/miserable 是 SYSTIME(/SECONDS) 运行良好。只有当SYSTIME没有参数时才会出问题。
此外,这些语句有效:
time = SYSTIME(/SECONDS)
PRINT, SYSTIME()
这不起作用(程序退出而不输出我的光栅):
time = SYSTIME()
同样,没有错误。我已经搜索了帮助文档,但没有找到任何内容。我的教授看过我的代码并说他看起来完全一样(他运行 mac,我在实验室中使用 windows VM)。该文件只是不输出。您可能会问为什么我需要在文件名后附加当前日期...这是对这个最终项目的要求。
非常感谢任何帮助。
SYSTIME() 生成一个字符串,其中包含 Windows 路径中的非法字符(即冒号)。
c:\>mkdir "Mon Jan 18 20:14:07 2038"
The filename, directory name, or volume label syntax is incorrect.
c:\>mkdir "Mon Jan 18 20-14-07 2038"
(no error)
SYSTIME(/SECONDS) 产生一个带数字和一个点的字符串,这是合法的。 https://www.harrisgeospatial.com/docs/systime.html
冒号在 Windows 上无效,空格通常很难处理。最简单的解决方法是使用 IDL_VALIDNAME
来修正日期:
IDL> print, idl_validname(systime(), /convert_all)
Thu_Feb__8_11_01_05_2018