我被分配了一个类的IDL编码分配。这种语言对我来说是新的,但我已经编程了一段时间,所以这个错误困扰着我。我无法使用systime()函数将日期和时间添加到输出的文件名中。
代码中未显示:创建的mosaicRaster包含4个geotiffs的镶嵌光栅图像。
outputRaster = filepath + 'outputFile' + SYSTIME() + '.tif'
mosaicRaster.Export, outputRaster, 'TIFF'
程序完成没有错误..只是不输出我的文件。如果我将其更改为:
outputRaster = filepath + 'outputFile.tif'
程序运行良好。
我试图将STRING()放在SYSTIME()周围,也放在outputRaster周围。
有趣/怪异/悲惨的事情是SYSTIME(/ SECONDS)运行良好。只有当SYSTIME没有参数时才会出现问题。
此外,这些陈述有效:
time = SYSTIME(/SECONDS)
PRINT, SYSTIME()
这不起作用(程序退出而不输出我的栅格):
time = SYSTIME()
同样,没有错误。我已经搜索了帮助文档,没有找到任何内容。我的教授查看了我的代码并说他的外观完全相同(他运行的是Mac,我在实验室中使用的是Windows VM)。该文件只是没有输出。您可能会问我为什么需要使用当前日期附加文件名...这是对最终项目的要求。
非常感谢任何帮助。
答案 0 :(得分:2)
Colon在Windows上无效,空间通常很难处理。最简单的解决方法是使用IDL_VALIDNAME
来修复日期:
IDL> print, idl_validname(systime(), /convert_all)
Thu_Feb__8_11_01_05_2018
答案 1 :(得分:1)
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