У меня есть множество изображений из каталога, который необходимо вычесть из другого изображения (другого каталога), и я не знаю, как сделать это автоматически в пакетном процессе. Любая идея?
Ниже приведены цели для командного файла:
- Создать выходной каталог
- Создать каталог proc_path только для обработанных файлов
- Вычесть изображение из каталога в другое изображение из другого каталога
Сделал все возможное, чтобы создать часть этого сценария. Извините, если это слишком грязно, я знаю, что поступаю неправильно. Я надеюсь, вы понимаете.
@echo on
setlocal EnableDelayedExpansion
set "in_path=E:\Proc\Mer\"
set "out_path=E:\Proc\Abcde"
set "two_path=E:\Proc\Me\"
set "proc_path=E:\Proc\Proc_Mer_Fi"
::Don't modify the following variables
set "yearDay="
set "fileList="
md %out_path%
md %proc_path%
::Process all *.tif files in input path
cd /d "%in_path%"
for %%a in (*.tif) do (
set "fileName=%%a"
if %1 == 001-031 goto :condition1 ::reg/leap
if %2 == 032-059 goto :condition2 ::reg
if %3 == 032-060 goto :condition2 ::leap
if %4 == 060-090 goto :condition3 ::reg
if %5 == 061-091 goto :condition3 ::leap
if %6 == 091-120 goto :condition4 ::reg
if %7 == 092-121 goto :condition4 ::leap
if %8 == 121-151 goto :condition5 ::reg
if %9 == 122-152 goto :condition5 ::leap
if %10 == 152-181 goto :condition6 ::reg
if %11 == 153-182 goto :condition6 ::leap
if %12 == 182-212 goto :condition7 ::reg
if %13 == 183-213 goto :condition7 ::leap
if %14 == 213-243 goto :condition8 ::reg
if %15 == 214-244 goto :condition8 ::leap
if %16 == 244-273 goto :condition9 ::reg
if %17 == 245-274 goto :condition9 ::leap
if %18 == 274-304 goto :condition10 ::reg
if %19 == 275-305 goto :condition10 ::leap
if %20 == 305-334 goto :condition11 ::reg
if %21 == 306-335 goto :condition11 ::leap
if %22 == 335-365 goto :condition12 ::reg
if %23 == 336-366 goto :condition12 ::leap
:condition1
gdal_calculate --outfile=%out_path%\Abcde!yearDay!.Q_WER.Tera.tif !fileList! --calc="((one-two)/(one+two))" --two=%two_path%\two_abc_jan.tif --one=%in_path%\A!yearDay!.Q_WER.Tera.tif !fileList! --extent=INTERSECT
goto end
:condition2
gdal_calculate --outfile=%out_path%\Abcde!yearDay!.Q_WER.Tera.tif !fileList! --calc="((one-two)/(one+two))" --two=%two_path%\two_abc_feb.tif --one=%in_path%\A!yearDay!.Q_WER.Tera.tif !fileList! --extent=INTERSECT
goto end
:condition3
gdal_calculate --outfile=%out_path%\Abcde!yearDay!.Q_WER.Tera.tif !fileList! --calc="((one-two)/(one+two))" --two=%two_path%\two_abc_mar.tif --one=%in_path%\A!yearDay!.Q_WER.Tera.tif !fileList! --extent=INTERSECT
goto end
:condition4
gdal_calculate --outfile=%out_path%\Abcde!yearDay!.Q_WER.Tera.tif !fileList! --calc="((one-two)/(one+two))" --two=%two_path%\two_abc_apr.tif --one=%in_path%\A!yearDay!.Q_WER.Tera.tif !fileList! --extent=INTERSECT
goto end
:condition5
gdal_calculate --outfile=%out_path%\Abcde!yearDay!.Q_WER.Tera.tif !fileList! --calc="((one-two)/(one+two))" --two=%two_path%\two_abc_may.tif --one=%in_path%\A!yearDay!.Q_WER.Tera.tif !fileList! --extent=INTERSECT
goto end
:condition6
gdal_calculate --outfile=%out_path%\Abcde!yearDay!.Q_WER.Tera.tif !fileList! --calc="((one-two)/(one+two))" --two=%two_path%\two_abc_june.tif --one=%in_path%\A!yearDay!.Q_WER.Tera.tif !fileList! --extent=INTERSECT
goto end
:condition7
gdal_calculate --outfile=%out_path%\Abcde!yearDay!.Q_WER.Tera.tif --one=%in_path%\A!yearDay!.Q_WER.Tera.tif !fileList! --extent=INTERSECT
goto end
:condition8
gdal_calculate --outfile=%out_path%\Abcde!yearDay!.Q_WER.Tera.tif !fileList! --calc="((one-two)/(one+two))" --two=%two_path%\two_abc_aug.tif --one=%in_path%\A!yearDay!.Q_WER.Tera.tif !fileList! --extent=INTERSECT
goto end
:condition9
gdal_calculate --outfile=%out_path%\Abcde!yearDay!.Q_WER.Tera.tif !fileList! --calc="((one-two)/(one+two))" --two=%two_path%\two_abc_sep.tif --one=%in_path%\A!yearDay!.Q_WER.Tera.tif !fileList! --extent=INTERSECT
goto end
:condition10
gdal_calculate --outfile=%out_path%\Abcde!yearDay!.Q_WER.Tera.tif !fileList! --calc="((one-two)/(one+two))" --two=%two_path%\two_abc_oct.tif --one=%in_path%\A!yearDay!.Q_WER.Tera.tif !fileList! --extent=INTERSECT
goto end
:condition11
gdal_calculate --outfile=%out_path%\Abcde!yearDay!.Q_WER.Tera.tif !fileList! --calc="((one-two)/(one+two))" --two=%two_path%\two_abc_nov.tif --one=%in_path%\A!yearDay!.Q_WER.Tera.tif !fileList! --extent=INTERSECT
goto end
:condition12
gdal_calculate --outfile=%out_path%\Abcde!yearDay!.Q_WER.Tera.tif !fileList! --calc="((one-two)/(one+two))" --two=%two_path%\two_abc_dec.tif --one=%in_path%\A!yearDay!.Q_WER.Tera.tif !fileList! --extent=INTERSECT
goto end
:: Move processed files to a different directory
for %%a in (!fileList!) do move %%a "%proc_path%" >nul