[ Beneath the Waves ]

TMSB XML Schema Part 7: Execution Options

article by Ben Lincoln

 

The execution options file format is currently only used to store the default GUI settings for the application, as well as the last-used settings from the GUI version of TMSB for the current user. When used for the former purpose, the files are stored in the TMSB_Config directory underneath the application directory and are named Execution-Default-Windows.xml and Execution-Default-UnixLike.xml. For the latter purpose, the file is stored in the TMSB_Config directory underneath the user's home directory, and is named Execution-LastUsed.xml.

Note: the FileType value in the metadata section of the file must be Execution Options.

Schema

<ExecutionOptions>

<MinimumBandsInSourceDirectories>

A positive integer greater than 1

</MinimumBandsInSourceDirectories>

<ProcessDirectoriesRecursively>

A boolean (true/false) value

</ProcessDirectoriesRecursively>

<InputConfigurationFile>

The absolute path of the input configuration file

</InputConfigurationFile>

<ProcessingConfigurationFile>

The absolute path of the processing configuration file

</ProcessingConfigurationFile>

<OutputConfigurationFile>

The absolute path of the output configuration file

</OutputConfigurationFile>

<GenerateScripts>

See below

</GenerateScripts>

<ExecuteScripts>

A boolean (true/false) value

</ExecuteScripts>

<ScriptProcessorPath>

The absolute path of the DaVinci script processor which should be used

</ScriptProcessorPath>

<ScriptProcessorArguments>

Any command-line arguments which should be passed to the DaVinci script processor

</ScriptProcessorArguments>

<ScriptProcessPriority>

See below

</ScriptProcessPriority>

<MaximumSimultaneousDirectories>

A positive integer (see below)

</MaximumSimultaneousDirectories>

<MaximumSimultaneousImages>

A positive integer (see below)

</MaximumSimultaneousImages>

<SubscriptExecutionTimeLimit>

An integer greater than or equal to 0

</SubscriptExecutionTimeLimit>

<CollectPerformanceData>

A boolean (true/false) value

</CollectPerformanceData>

<MemoryUnits>

See below

</MemoryUnits>

<LogLevel>

See below

</LogLevel>

<LogPath>

The absolute path of the log file

</LogPath>

<LogMode>

See below

</LogMode>

<IgnoreScriptErrors>

A boolean (true/false) value

</IgnoreScriptErrors>

<KeepTemporaryFiles>

A boolean (true/false) value

</KeepTemporaryFiles>

<WriteScriptCodeEvenWhenNoFilesWillBeGenerated>

A boolean (true/false) value

</WriteScriptCodeEvenWhenNoFilesWillBeGenerated>

<DisplayImageThumbnails>

A boolean (true/false) value

</DisplayImageThumbnails>

<ExecutionPlatformMode>

See below

</ExecutionPlatformMode>

</ExecutionOptions>

Notes

MinimumBandsInSourceDirectories represents the minimum number of spectral bands for which TMSB must find data in a given source directory in order to process that directory. Values less than 3 are unlikely to produce useful results.

In the case of the GUI, ProcessDirectoriesRecursively controls whether or not the Add Directories Recursively When Dropped Onto The Queue checkbox is checked. This XML filetype is not currently used by the command-line version of TMSB, but if it were, this option would control whether or not it recursed through the directories at execution time.

InputConfigurationFile is the absolute path of an input configuration file.

ProcessingConfigurationFile is the absolute path of a processing configuration file.

OutputConfigurationFile is the absolute path of an output configuration file.

GenerateScripts is one of:

Never
Always
IfNotAlreadyPresent

ExecuteScripts determines whether scripts will be executed after generation or not.

ScriptProcessorPath is the absolute path of the DaVinci script processor that should be used.

ScriptProcessorArguments are any command-line arguments that should be passed to the DaVinci script processor.

ScriptProcessPriority is one of the following values, which use the Microsoft Windows® priority classes regardless of whether the application is executing on Windows® or not:

Idle
BelowNormal
Normal
AboveNormal
High
RealTime

Note: the use of RealTime is strongly discouraged.

MaximumSimultaneousDirectories and MaximumSimultaneousImages control whether or not TMSB launches multiple script processor instances simultaneously, and if so how they will be launched. MaximumSimultaneousDirectories must be less than or equal to MaximumSimultaneousImages.

SubscriptExecutionTimeLimit is the timeout (in milliseconds) for script processes. If this value is 0, no timeout is used. This value must be less than or equal to 2147483648.

CollectPerformanceData determines whether or not TMSB will log performance data (CPU/memory usage, et cetera) during execution.

MemoryUnits is one of the following settings, which determine whether memory and disk space will be represented in SI units (megabyte, gigabyte, et cetera), or the old-style computer-science-specific power-of-two values (renamed to mebibyte, gibibyte, and so on).

PowerOfTwo
PowerOfTen

LogLevel is one of:

None
Minimal
Standard
Verbose
Debug

LogMode is either Overwrite or Append.

IgnoreScriptErrors controls whether TMSB will attempt to continue processing if a script appears to encounter an error, or abort processing of the entire directory where the script was located.

KeepTemporaryFiles is a debugging option which (if enabled) will cause TMSB to leave behind the numerous subscripts and sub-logs it generates as it processes each directory.

WriteScriptCodeEvenWhenNoFilesWillBeGenerated is a debugging option which (if enabled) will disable an optimization feature under which large blocks of subscript code are not even written to the script if they will result in no output images.

DisplayImageThumbnails is a debugging option which disables the sliding thumbnail display in the GUI while processing occurs. Running the GUI with this option set to false has not been tested extensively - if you don't want to see thumbnails, you should be using the command-line version instead.

ExecutionPlatformMode a debugging value which is used to override automatic behaviour in extremely unusual circumstances, and may be one of the following:

Automatic
ForceWindows
ForceUnixLike

Example

This configuration is what I found in my last-used execution options file at the time of writing this article.

<ExecutionOptions>

<MinimumBandsInSourceDirectories>

3

</MinimumBandsInSourceDirectories>

<ProcessDirectoriesRecursively>

false

</ProcessDirectoriesRecursively>

<InputConfigurationFile>

D:\DaVinci\TMSB Working Copy\TMSB_Config\Input-NIR_R_G_B_UVA-TIFF-3F.xml

</InputConfigurationFile>

<ProcessingConfigurationFile>

D:\DaVinci\TMSB Working Copy\TMSB_Config\Process-Example-Exponential_Scaling.xml

</ProcessingConfigurationFile>

<OutputConfigurationFile>

D:\DaVinci\TMSB Working Copy\TMSB_Config\Output-TIFF_16-JPG_8.xml

</OutputConfigurationFile>

<GenerateScripts>

Always

</GenerateScripts>

<ExecuteScripts>

true

</ExecuteScripts>

<ScriptProcessorPath>

C:\Users\blincoln\Documents\Visual Studio 2005\Projects\TMSB\TMSB\bin\Debug\DaVinci\davinci.bat

</ScriptProcessorPath>

<ScriptProcessorArguments>

-f

</ScriptProcessorArguments>

<ScriptProcessPriority>

BelowNormal

</ScriptProcessPriority>

<MaximumSimultaneousDirectories>

3

</MaximumSimultaneousDirectories>

<MaximumSimultaneousImages>

5

</MaximumSimultaneousImages>

<SubscriptExecutionTimeLimit>

172800000

</SubscriptExecutionTimeLimit>

<CollectPerformanceData>

false

</CollectPerformanceData>

<MemoryUnits>

PowerOfTen

</MemoryUnits>

<LogLevel>

Standard

</LogLevel>

<LogPath>

C:\Users\blincoln\Documents\Visual Studio 2005\Projects\TMSB\TMSB\bin\Debug\TMSB_Log-GUI--2011-02-13-01.txt

</LogPath>

<LogMode>

Append

</LogMode>

<IgnoreScriptErrors>

true

</IgnoreScriptErrors>

<KeepTemporaryFiles>

false

</KeepTemporaryFiles>

<WriteScriptCodeEvenWhenNoFilesWillBeGenerated>

false

</WriteScriptCodeEvenWhenNoFilesWillBeGenerated>

<DisplayImageThumbnails>

true

</DisplayImageThumbnails>

<ExecutionPlatformMode>

Automatic

</ExecutionPlatformMode>

</ExecutionOptions>

 
[ Page Icon ]