SOSM target model table

This page describes the process for creating a ‘table’ ‘target_model’ that can been loaded with the sosm_interface load_target command.

Creating the target model is a three step process:

  • Acquire raw spectral infrared signature data. This is generally accomplished by using an infrared prediction model like IRIMAGE. (See Executing IRIMAGE)

  • Convert the raw spectral infrared signature data created in the first step to a format that can be read by SOSM. (See Converting IRIMAGE ‘kio3’ Files)

  • Create the SOSM target definition file that specifies how the signature files created in the second step are to be used during a simulation. (See Creating the Target Definition File)

A pair of Perl scripts have been provided with the standard WSF distribution that assists in using IRIMAGE to complete the first two steps.

Executing IRIMAGE

IRIMAGE is typically run by an IR signature analyst. This process can take a great deal of time (days to weeks depending on the number of cases desired). If you need to complete this step yourself then continue reading.

A Perl script execute_irimage.pl is included with the standard WSF distribution in the directory sosm/irimage. This script facilitates executing IRIMAGE over a range of conditions. To execute the script:

<path-to-wsf>/sosm/irimage/execute_irimage.pl <basename>

Where <basename> is the base name of the target type, and perhaps Mach number. For instance su-35_m12 might be used for a SU-35 at Mach 1.2.

This script takes two files:

<basename>.def

Contains commands that define the mach number, altitudes and bands for which data will be generated.

<basename>.iri

Contains the template of the IRIMAGE input needed to run this the mach number in question.

The script then invokes IRIMAGE for each altitude and band for the given mach number and produces a ‘.kio3’ file for each case.

The files ‘su-35_m12.def’ and ‘su-35_m12.iri’ are provided as examples in the sosm/irimage directory.

Converting IRIMAGE ‘kio3’ Files

Once IRIMAGE has been run to create the necessary ‘kio3’ files, the files must be converted into the format that can be used by SOSM. This can be accomplished using the ‘kio3_to_sosm.pl’ script that is supplied with each WSF release in the directory sosm/irimage.

The first thing that needs to be done is to create a file named ‘kio3_to_sosm.txt’ in the same directory that contains the ‘kio3’ files. A template for this file in supplied with each WSF release in the directory sosm/irimage. After copying the file, edit the copy and update the information as directed in the comments at the end of the file. In most cases all that will need to be provided is security classification information in the third line.

After that is complete, execute the following command:

*<path-to-wsf>*/sosm/irimage/kio3_to_sosm.pl *.kio3

This will take each file of the form:

*<basename>*.kio3
and produce four files:

<basename>.bda Projected area of the body <basename>.bdi Radiant intensity of the body <basename>.pla Projected area of the plume <basename>.pli Radiant intensity of the plume

These files should be copied the directory where the SOSM target definition will be created.

Creating the Target Definition File

The target definition file defines under what simulation conditions which signature files should be used. This can best be documented by example, but first the commands will be documented.

target_model table
   state <state-name-1>

      # ----- State selection control

      altitude_range      <lower-length-value> <upper-length-value>
      mach_range          <lower-mach> <upper-mach>
      speed_range         <lower-speed-value> <upper-speed-value>
      throttle_range      <lower-value> <upper-value>

      # ----- Band Definitions

      band <band-name-1>

         # ----- Body and plume definition using implied file extensions

         body_and_plume   <file-base>     # reads .bda, .bdi, .pla and .pli
         body             <file-base>     # reads .bda and .bdi
         plume            <file-base>     # reads .pla and .pli

         # ----- Body and plume definition using explicit files

         body_area        <file-name>
         body_intensity   <file-name>
         plume_area       <file-name>
         plume_intensity  <file-name>
      end_band

      band <band-name-n>
         ... band-definition ...
      end_band

   end_state

   state <state-name-n>
      ... state-definition ...
   end_state
end_target_model

Target Definition Commands

target_model table … end_target_model

Introduces a target model definition that uses tables. table is required.

state <state-name> … end_state

A state identifies a set of target conditions to which the associated signature applies. The altitude_range, mach_range, speed_range and throttle_range define the target conditions to which the state applies. The contained band blocks define the associated signature files.

<state-name> is simply a user-definable name for the state. It has no other purpose other than to uniquely identify the state within the target definition.

Note

Every target definition must have at least one state.

Note

The order of state definitions is important. For each detection chance, the target conditions are used to select the appropriate state. The list of states is searched in the order they are defined, and the first one that matches the target conditions is used. If no state matches the current target conditions, the last state defined is used.

altitude_range <lower-length-value> <upper-length-value>

Defines the range of altitudes for which the enclosing state applies.

Default No limits - altitude is not a criteria

mach_range <lower-mach> <upper-mach>
speed_range <lower-speed-value> <upper-speed-value>

Defines the range of speeds for which the enclosing state applies. The range can be defined in either terms of Mach number or absolute speed.

throttle_range <lower-value> <upper-value>

Defines the throttle range for which the enclosing state applies.

band <band-name> … end_band

Every state must have one or more band blocks that define the signature files that apply to the specific bands. <band-name> is simply a user-definable string that identifies the band. The actual range of wavelengths to which the the enclosed files apply is determined by the file contents.

Body area/intensity must be specified. Plume area/intensity is not required if a plume is not present.

The signature files to be used can be loaded by the following commands:

body_and_plume <base-name>
body <base-name>
plume <base-name>

Load signature files using the assumed suffixes (.bda and .bdi for body, .pla and .pli for plume).

  • body_and_plume reads the signature files for both the body and the plume (<base-name>.bda, <base-name>.bdi, <base-name>.pla and <base-name>.pli).

  • body reads only the signature files for the body (<base-name>.bda and <base-name>.bdi).

  • plume reads only the signature files for the plume (<base-name>.pla and <base-name>.pli).

body_area <file-name>
body_intensity <file-name>
plume_area <file-name>
plume_intensity <file-name>

Load signature files without using the assumed suffixes.

Example

Assume we are creating a definition for a new fighter call F-XX and that the first two steps have been executed for the following conditions:

  • Two Mach numbers 0.8 and 1.2

  • Three altitudes, 30000 feet, 35000 feet and 40000 feet.

  • Two sensor bands, MWIR (3-5 um) and LWIR (8-12 um).

This will result in having 12 sets of files, which will be assumed to be named as follows:

f-xx_30k_m08_lwir.*
f-xx_30k_m08_mwir.*
f-xx_30k_m12_lwir.*
f-xx_30k_m12_mwir.*
f-xx_35k_m08_lwir.*
f-xx_35k_m08_mwir.*
f-xx_35k_m12_lwir.*
f-xx_35k_m12_mwir.*
f-xx_40k_m08_lwir.*
f-xx_40k_m08_mwir.*
f-xx_40k_m12_lwir.*
f-xx_40k_m12_mwir.*

Furthermore, assume a directory ‘f-xx’ has been created.

The target definition file f-xx.txt would then look like:

target_model table
   state 30k_m08
      altitude_range 0 ft 32500 ft
      mach_range     0.0 1.0
      band lwir body_and_plume f-xx_30k_m08_lwir end_band
      band mwir body_and_plume f-xx_30k_m08_mwir end_band
   end_state

   state 30k_m12
      altitude_range 0 ft 32500 ft
      mach_range     1.0 10.0
      band lwir body_and_plume f-xx_30k_m12_lwir end_band
      band mwir body_and_plume f-xx_30k_m12_mwir end_band
   end_state

   state 35k_m08
      altitude_range 32500 ft 37500 ft
      mach_range     0.0 1.0
      band lwir body_and_plume f-xx_35k_m08_lwir end_band
      band mwir body_and_plume f-xx_35k_m08_mwir end_band
   end_state

   state 35k_m12
      altitude_range 32500 ft 37500 ft
      mach_range     1.0 10.0
      band lwir body_and_plume f-xx_35k_m12_lwir end_band
      band mwir body_and_plume f-xx_35k_m12_mwir end_band
   end_state

   state 40k_m08
      altitude_range 37500 ft 42500 ft
      mach_range     0.0 1.0
      band lwir body_and_plume f-xx_40k_m08_lwir end_band
      band mwir body_and_plume f-xx_40k_m08_mwir end_band
   end_state

   state 40k_m12
      altitude_range 37500 ft 42500 ft
      mach_range     1.0 10.0
      band lwir body_and_plume f-xx_40k_m12_lwir end_band
      band mwir body_and_plume f-xx_40k_m12_mwir end_band
   end_state
end_target_model