post_processor¶
Overview¶
The Post Processor creates formatted reports from raw data that is output from AFSIM, based off given configuration files. The report types are:
Each report has modifiable options in a configuration file to filter and alter the format of the given data. Certain options apply to all reports (See Configuration Options below).
Configuration Options¶
The following options apply to all reports unless otherwise stated:
- report [communication | detection | eclipse | engagement | dsv | trajectory]¶
Specifies the type of report that is being generated.
- report_name <string>¶
Specifies the name of the report. If the folder(s) or file(s) already exist then it will be overwritten. The run number is automatically inserted at the end of the filename, but can be inserted manually also using the %d tag. The date and time tags, %D and %T may also be used to aid in file management.
Example: report_name example_report
Note
Quotation marks are required for values that contain spaces.
- data_file [<file_name>]¶
Specifies the name of the file where the input file(s) are located. To process Monte-Carlo files insert the run number tag %d in the file name.
Example: data_file ../input/example_%d.csv
Note
Quotation marks are required for values that contain spaces.
- output_directory [<folder_name>]¶
Specifies the name of the folder where the output files will be generated. If the folder & files already exist then it will be overwritten. The run number is automatically inserted at the end of the filename, but can be inserted manually also using the %d tag. The date and time tags, %D and %T may also be used to aid in file management.
Example: output_directory output/run_%d/
Note
Quotation marks are required for values that contain spaces.
- monte_carlo_start <integer-value>¶
Specifies the starting run number.
Default 1
- monte_carlo_end <integer-value>¶
Specifies the ending run number.
Default All consecutive runs in ascending order of the %d.
- single_output_file <boolean-value>¶
Specifies if all formatted run data should be output to a single file. (Currently not implemented)
Note
Not applicable for DSV output.
Default true
- write_header_information <boolean-value>¶
Specifies if headers should be output to the report(s).
Note
Not applicable for DSV output.
Default true
- delimiter [comma | column | semicolon | space | tab]¶
Specifies the delimiter that separates the values.
Default comma
- length_units [feet | meters]¶
Specifies the unit of measurement for distances. (Currently not implemented)
Note
Not applicable for DSV output.
Default meters
- angle_units [radians | degrees]¶
Specifies the unit of measurement for angles. (Currently not implemented)
Note
Not applicable for DSV output.
Default degrees
- track_number_options [numerical | jtids]¶
Specifies the track number format options. (Currently not implemented)
Note
Not applicable for DSV output.
Default numerical
- start_time <real> <time-units>¶
Specifies the start time of the desired data.
Default 0
- end_time <real> <time-units>¶
Specifies the end time of the desired data.
Default std::numeric_limits<double>::max()
- lat_lon_format d[:m[:s]][.#]¶
Specifies the format and number of decimal places for displaying latitude and longitude values.
Default: d:m:s.2
- time_format [[h:]m:]s[.#]¶
Specifies the format and number of decimal places for displaying time values.
Default s.5
- precision <double-value>¶
Specifies the precision of double values.
Note
Not applicable for DSV output.
Default 2
Communication Report¶
Report of how and how often platforms communicate to other platforms.
Important
At least one of the following events must be enabled for the communication report to generate data:
- report_type [traffic_counts | connectivity]¶
Specifies the subreport type. (See also: Subreports)
Default traffic_counts
- transmitters … end_transmitters¶
Specifies the transmitters whose data will be collected.
Default all
- receivers … end_receivers¶
Specifies the receivers whose data will be collected.
Default all
- networks … end_networks¶
Specifies the networks whose data will be collected.
Default all
Subreports¶
Traffic Counts¶
Outputs the number of messages generated, transmitted, completed to receivers, and purged/deleted per platform or network.
- options … end_options¶
Specifies other options that applies to the traffic count subreport.
Accepted options:
options platforms | networks | time_interval end_options
- interval <real> <time-units>¶
Specifies the interval of time desired per data set.
Default 1 second
Example: interval 60 seconds : gives data between 0-60 seconds, then 60-120 seconds, and so on.
Connectivity¶
Currently not implemented
Detection Report¶
Important
At least one of the following events must be enabled for the detection report to generate data:
- report_type [total_detections | first_detections | access]¶
Specifies the subreport type. (See also: Subreports)
- detected_platforms … end_detected_platforms¶
Specifies the detected platforms whose data will be collected.
Default all
- detecting_platforms … end_detecting_platforms¶
Specifies the detecting platforms whose data will be collected.
Default all
Subreports¶
Total Detections¶
Outputs the number of detections made by each of the given platforms. This subreport has no other options.
First detections¶
Outputs the first detection from one platform to another.
- options … end_options¶
Specifies other options that applies to the first detections subreport.
Accepted options:
options platform_type_of_detected_platform side_indicator altitude_of_detected_platform azimuth_angle elevation_angle end_options
Access¶
Provides the start time, end time, and the duration of platforms’ visibility to each other.
Eclipse Report¶
Eclipse report provides the start time, end time, and the duration that platforms are within the Earth’s shadow.
Important
At least one of the following events must be enabled for the eclipse report to generate data:
Note
Results do not take into account the effect of the oblate Earth or motion of the Earth during a single orbit of a platform.
- platforms … end_platforms¶
Specifies the platforms whose data will be collected.
Default all
Engagement Report¶
Important
At least one of the following events must be enabled for the engagement report to generate data:
- report_type [total_detections | first_detections]¶
Specifies the subreport type. (See also: Subreports)
- acting_platforms … end_acting_platforms¶
Specifies the acting platforms whose data will be collected.
Default all
- against_platforms … end_against_platforms¶
Specifies the target platforms whose data will be collected.
Default all
- types_of_actions … end_types_of_actions¶
Specifies the detecting platforms whose data will be collected.
Default all
- types_of_weapons … end_types_of_weapons¶
Specifies the types of weapons whose data will be collected. (Currently not implemented)
Default all
Subreports¶
Track Event History¶
Outputs the number of detections made by each of the given platforms.
Weapon Expenditures¶
- options … end_options¶
Specifies other options that applies to the weapon expenditures subreport. (Currently not implemented)
Trajectory Report¶
TODO
DSV (Delimited Separated Value) Output¶
This report generates multiple delimited separated value (DSV) output files as specified below. Any files not listed below or not mapped in the post_processor will be output into a file matching the event name in the header of the input file.
# Example input file
report DSV
report_name sample_demo_%D
data_file sample_demo_%d.csv
output_directory .
delimiter comma
lat_lon_format d:m:s.2
time_format s.5
Generated Files¶
Core Files List¶
BTREE_NODE_CHILDREN.csv Contains events: BTREE_NODE_CHILDREN
BTREE_NODE_EXEC.csv Contains events: BTREE_NODE_EXEC
COMMENT.csv Contains events: COMMENT
COMM_FREQUENCY_CHANGED.csv Contains events: COMM_FREQUENCY_CHANGED
COMM_STATUS.csv Contains events: COMM_BROKEN, COMM_TURNED_ON, COMM_TURNED_OFF, COMM_OPERATIONAL, COMM_NON_OPERATIONAL
EXECUTE_CALLBACK.csv Contains events: EXECUTE_CALLBACK
FUEL_EVENT.csv Contains events: FUEL_EVENT, RAN_OUT_OF_FUEL
LOCAL_TRACK_CORRELATION.csv Contains events: LOCAL_TRACK_CORRELATION, LOCAL_TRACK_DECORRELATION
LOCAL_TRACK_INITDROPUPDATE.csv Contains events: LOCAL_TRACK_DROPPED, LOCAL_TRACK_INITIATED, LOCAL_TRACK_UPDATED
MESSAGE_DELIVERY_ATTEMPT.csv Contains events: MESSAGE_DELIVERY_ATTEMPT
MESSAGE_XMITD_RCVD_QUEUED_DISCARDED.csv Contains events: MESSAGE_RECEIVED, MESSAGE_TRANSMITTED, MESSAGE_QUEUED, MESSAGE_DISCARDED
MESSAGE_UPDATED.csv Contains events: MESSAGE_UPDATED
MOVER_STATUS.csv Contains events: MOVER_TURNED_OFF, MOVER_TURNED_ON, MOVER_STAGED, MOVER_OPERATIONAL, MOVER_NON_OPERATIONAL, MOVER_BROKEN, MOVER_BURNED_OUT
NAVIGATION_STATUS_CHANGED.csv Contains events: NAVIGATION_STATUS_CHANGED
OPERATING_LEVEL_CHANGED.csv Contains events: AUTONOMY_LEVEL_CHANGED, OPERATING_LEVEL_CHANGED
PLATFORM_APPEARANCE_CHANGED.csv Contains events: PLATFORM_APPEARANCE_CHANGED
PLATFORM_BROKEN.csv Contains events: PLATFORM_BROKEN
PLATFORM_CAPABILITY_CHANGED.csv Contains events: PLATFORM_CAPABILITY_CHANGED
PLATFORM_STATUS.csv Contains events: PLATFORM_ADDED, PLATFORM_DELETED, PLATFORM_BROKEN, PLATFORM_INITIALIZED, PLATFORM_OMITTED
PROCESSOR_BROKEN.csv Contains events: PROCESSOR_BROKEN
PROCESSOR_STATUS.csv Contains events: PROCESSOR_TURNED_OFF, PROCESSOR_TURNED_ON, PROCESSOR_OPERATIONAL, PROCESSOR_NON_OPERATIONAL
SENSOR_DETECTION.csv Contains events: SENSOR_DETECTION_ATTEMPT, SENSOR_DETECTION_CHANGED
SENSOR_FREQUENCY_CHANGED.csv Contains events: SENSOR_FREQUENCY_CHANGED
SENSOR_BROKEN.csv Contains events: SENSOR_BROKEN
SENSOR_MODE_STATUS.csv Contains events: SENSOR_MODE_ACTIVATED, SENSOR_MODE_DEACTIVATED
SENSOR_STATUS.csv Contains events: SENSOR_NON_OPERATIONAL, SENSOR_OPERATIONAL, SENSOR_TURNED_OFF, SENSOR_TURNED_ON
SENSOR_REQUEST_STATUS.csv Contains events: SENSOR_REQUEST_CANCELED, SENSOR_REQUEST_INITIATED, SENSOR_REQUEST_UPDATED
SENSOR_TRACK_STATUS.csv Contains events: SENSOR_TRACK_COASTED, SENSOR_TRACK_DROPPED, SENSOR_TRACK_INITIATED, SENSOR_TRACK_UPDATED
STATE_STATUS.csv Contains events: STATE_ENTRY, STATE_EXIT
TANKING_EVENT.csv Contains events: TANKING_EVENT
TEAM_NAME_DEFINITION.csv Contains events: TEAM_NAME_DEFINITION
Weapon Files List¶
DIRECTED_ENERGY_WEAPON_SHOT.csv Contains events: DIRECTED_ENERGY_WEAPON_BEGIN_SHOT, DIRECTED_ENERGY_WEAPON_UPDATE_SHOT, DIRECTED_ENERGY_WEAPON_ABORT_SHOT, DIRECTED_ENERGY_WEAPON_END_SHOT
DIRECTED_ENERGY_WEAPON_COOLDOWN_COMPLETE.csv Contains events: DIRECTED_ENERGY_WEAPON_COOLDOWN_COMPLETE
IMAGE_CREATED.csv Contains events: IMAGE_CREATED
IMPLICIT_WEAPON_ENGAGEMENT.csv Contains events: IMPLICIT_WEAPON_BEGIN_ENGAGEMENT, IMPLICIT_WEAPON_END_ENGAGEMENT
JAMMING_ATTEMPT.csv Contains events: JAMMING_ATTEMPT
JAMMING_REQUEST.csv Contains events: JAMMING_REQUEST_CANCELED, JAMMING_REQUEST_INITIATED, JAMMING_REQUEST_UPDATED
MOVER_GUIDANCE_PHASE_CHANGED.csv Contains events: MOVER_GUIDANCE_PHASE_CHANGED
PLATFORM_KILLED.csv Contains events: PLATFORM_KILLED (deprecated)
TASK_STATUS.csv Contains events: TASK_ASSIGNED, TASK_CANCELED, TASK_COMPLETED
WEAPON_FIRE_STATUS.csv Contains events: WEAPON_FIRE_ABORTED, WEAPON_FIRE_REQUESTED
WEAPON_FIRED.csv Contains events: WEAPON_FIRED, WEAPON_LAUNCHED
WEAPON_HITMISSKILL.csv Contains events: WEAPON_HIT, WEAPON_KILLED, WEAPON_MISSED
WEAPON_MODE_STATUS.csv Contains events: WEAPON_MODE_ACTIVATED, WEAPON_MODE_DEACTIVATED
WEAPON_STATUS.csv Contains events: WEAPON_NON_OPERATIONAL, WEAPON_OPERATIONAL, WEAPON_TURNED_OFF, WEAPON_TURNED_ON
WEAPON_RELOAD_STATUS.csv Contains events: WEAPON_RELOAD_ENDED, WEAPON_RELOAD_STARTED
WEAPON_SELECTED.csv Contains events: WEAPON_SELECTED
WEAPON_TERMINATED.csv Contains events: WEAPON_TERMINATED
TASK_STATUS.csv Contains events: TASK_ASSIGNED, TASK_CANCELED, TASK_COMPLETED
Cyber Files List¶
CYBER_ATTACK_INITIATED.csv Contains events: CYBER_ATTACK_INITIATED
CYBER_ATTACK_SUCCEEDED.csv Contains events: CYBER_ATTACK_SUCCEEDED
CYBER_ATTACK_FAILED.csv Contains events: CYBER_ATTACK_FAILED
CYBER_ATTACK_DETECTED.csv Contains events: CYBER_ATTACK_DETECTED
CYBER_ATTACK_RECOVERY.csv Contains events: CYBER_ATTACK_RECOVERY
CYBER_SCAN_INITIATED.csv Contains events: CYBER_SCAN_INITIATED
CYBER_SCAN_SUCCEEDED.csv Contains events: CYBER_SCAN_SUCCEEDED
CYBER_SCAN_FAILED.csv Contains events: CYBER_SCAN_FAILED
CYBER_SCAN_DETECTED.csv Contains events: CYBER_SCAN_DETECTED