跳过for循环中的缺失值

时间:2018-06-21 15:27:38

标签: idl-programming-language msg

我有一个包含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

但是我也不知道这是如何工作的。 谢谢! 潘皮

1 个答案:

答案 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循环中的所有操作都会迷路了。