我有一个包含1000个tif的文件夹。我想阅读4个tif,进行一些计算并阅读接下来的4个tif。问题是,例如缺少tif数字500。现在我当前的程序停止在500号之前。
所以我的想法是我检查 path 是否与file_test和/ directory一起存在,并跳过foor循环中所有丢失的值。
目录:如果File存在并且是目录,则将此关键字设置为返回1(true)。 true = 1,false = 0
for j = 0, 1102 do begin
PathEx = File_test(e:\Meteosat\Tiff\2016\06\17\MSG_201606170100_B4_L.tif', directory)
if PathEx = 1 then
B = READ_TIFF(e:\Meteosat\Tiff\2016\06\17\MSG_201606170100_B4_L.tif, GEOTIFF=tags)
if PathEx = 0 then
print, 'missing' and continue
结束
我想跳过所有缺少的路径。我不知道该怎么做。我也读了一些关于 .CONTINUE
但是我也不知道这是如何工作的。 谢谢! 潘皮
答案 0 :(得分:0)
我不确定您使用的语法是否正确。您的代码应类似于以下内容:
FOR j=0L, 1102L DO BEGIN
PathEx = FILE_TEST('e:\Meteosat\Tiff\2016\06\17\MSG_201606170100_B4_L.tif', /DIRECTORY)
IF (PathEx[0] EQ 0) THEN CONTINUE ;; This will jump to the next index
b = READ_TIFF('e:\Meteosat\Tiff\2016\06\17\MSG_201606170100_B4_L.tif',GEOTIFF=tags)
ENDFOR
您可能应该有一个文件名列表,然后为它们建立索引。假设您将它们称为filenames
之类,这是一个[N]个元素的字符串数组。然后,您将在上述循环中执行以下操作:
file = filenames[j]
PathEx = FILE_TEST(file[0],/DIRECTORY)
IF (PathEx[0] EQ 0) THEN CONTINUE ;; This will jump to the next index
b = READ_TIFF(file[0],GEOTIFF=tags)
我还应该提到变量b
应该是一个数组,或者应该在循环之外定义一个可以存储数据的数组,否则FOR
循环中的所有操作都会迷路了。