C3Fire

Analysis Tool

From C3LearningLabs


Start Analyse Tool

To start the analysis tool do the following.

Start a C3Fire Server and a C3Fire Client.
In the C3Fire Client head menu select Tools -> Analysis

Start Analysis
Figure 4: Start analysis tools.


In the Analysis window head menu select Tools -> Log

Start Analysis
Figure 5: Start log analysis tools.


ProcessWindow

Befor starting processing the log files, start a process window.
In the Analysis window head menu select Window -> Process Window

Start Analysis
Figure 6: Start Process Window.

The process window look like this and will display info about the log file processing.

Start Analysis
Figure 7: The Process Window.

If something goes wrong while processing the log file the background in the process window will turn red.

Start Analysis
Figure 8: Error while doing some log file processing.


Version Update

In Version Update the log files are updated to latest log file version. Logfiles with missing end are also fixed.

Usage

Step 1

Select the directory with all logfiles that you want to update.
The update are done recursively in every subdirectory.
Example 'C:/Data/C3FireLogAnalyse/'

Step 2

Press the 'Update Log Files' button.


Start Version Update
Figure 9: Start Version Update.

When the update are done the process window should display the following.

Version Update done
Figure 10: Version Update done.


Log File Extraction

The main session log file generated by the C3Fire system is one large file containing all types of events. All events have an event number, which make them unique, and they are sorted after time and the event number. This makes it difficult to find the evaluation of a single event type.

The Log File Extraction generates a new log file for every event type in the main session log file. The Log File Extractor creates the folder structure /Measurements/LogFiles/ in all log folders. All new generated event type log files are stored in that folder.

Usage

Step 1

Select the directory with all logfiles that you want to extract.
The update are done recursively in every subdirectory.
Example 'C:/Data/C3FireLogAnalyse/'

Step 2

Press the 'Extract Log Files' button.


Start Extraction
Figure 11: Start Extraction.

When the extraction are done the process window should display the following.

Start Extraction done
Figure 12: Extraction done.


The files generated by the extraction for a session are stored in the folder:
C:\Data\C3FireLogAnalyse\Group 1\c3fire-60\Measurements\LogFiles\

The LogFiles folder should contain the following files.
Some of the files will have the size zero
That is normal, it depends on what modules that are activated.

Files generated by the extraction
Figure 13: Files generated by the extraction.


Calculations

When a Log File Extraction has been done you can perform calculations on the event type log files.

Calculations Step1

Configure

The calculation configuration is defined in the file, C3FireCalculationConfig.xml at
C:\C3LearningLabs\C3Fire\Client\Files\Root\C3FireCalculationConfig.xml

To activate calculation step 1 set the following configuration to true.

  ...
  <FireCount
    ProcessThis     = "True" />

  <CommandCount
    ProcessThis     = "True" />

  <MailCount
    ProcessThis     = "True"
    UseSendToAll    = "True" />
  ...

Make sure that the other steps are set to false.

Do Calculation

Usage

1

Select the directory with all logfiles that you want to do calculations in.
The update are done recursively in every subdirectory.
Example 'C:/Data/C3FireLogAnalyse/'

2

Press the 'Calculate' button.


Start Version Update
Figure 14: Start Calculations.

When the calculations are done the process window should display the following.

Version Update done
Figure 15: Calculations done.



The calculations files for a session is stored in the folder:
C:\Data\C3FireLogAnalyse\Group 1\c3fire-60\Measurements\Calculations\

The Calculations folder should contain the following files.
Some of the files will have the size zero
That is normal, it depends on what modules that are activated.

Files generated by the calculations
Figure 16: Files generated by the calculations.


Fire Calculation

If the FireCount is set to truein the C3FireCalculationConfig.xml file.
A file with fire calculations is generated.
  <FireCount
    ProcessThis     = "True" />
Example file
Example on generated file, The comment # in the example file is not generated.
A reminder, when you starts an experiment session enter the session info, this information are influded in the generated files so you can ceek track of the data files.
For more information see Session Info Configuration and session start Session Info

Enter session info

<FireCalculations>

# Session info is information that identifie the session type and player group in the experiment series.
# It contains the information the experment leader entered when started the session in the ui example below.
# This is very importent for tracking all sesionos in the experiment serie.

<SessionInfo
  C3FireVersion = "4.2.0.6"
  LogVersion = "4.0.1"
  LicenseID = "2424-6322-4522-5797"
  SessionIDName = "7"
  SessionTime = "2024-Feb-21 15:01"

  ExperimentGroup = "Example"
  ExperimentName = "Main"
  ConditionNumber = "1"
  ConditionName = "Scenario Dev"
  SessionType = "Try"
  SessionNumber = "1"
  SessionName = "Demo"
  SessionConfigFileName = "P3-F9L3R2-3x15min-C1-F80.con"
  SessionScenarioFileName = "P3-F9L3R2-3x15min-C1.sce"
  SessionPicDirectory = ""

  GroupNumber = ""
  GroupNumberInGroupType = ""
  GroupNumberInCondition = ""
  GroupName = ""
  GroupTypeNumber = ""
  GroupType = ""
  ServerNumber = "0"
  ServerName = ""

  GameTimeStart = "02:15:00"
/>

# When the first fire starts and when all wire is closed out.
# When the stop value are "99999999" and "99:99:99" the fire is still burning at the end of time.

<FireStartStop
  StartEventNr = "33" # Event number in the log file
  StartTime = "02:15:00"
  StopEventNr = "99999999" # Event number in the log file
  StopTime = "99:99:99"
  BurningSeconds = "99999999"/> # How long time it took to close the fire

# The number of fire events at the end of the Session

<FireEventCount
  Burning = "168"  # Number of cells Still burning cells (Red)
  ClosedOut = "54" # Number of cells Fire fighting units manage to close the fire on (Brown)
  BurnedOut = "410" # Number of cells burned out (Black)
  FireBreak = "0" # Number of created fire breaks
  All = "168 1 410 0" />


# The number of fire events at the end of the Session for every type of object and vegetation on the map
# Evaluate the values for the House objects and similar objects.
# Summarize all vegetation values and evaluate.
<ObjectTypesFireEventCountList>

  # The number of fire events for Normal vegetation
  <ObjectTypeFireEventCount
    ObjectIDNr = "0"
    ObjectIDName = "Normal"
    Burning = "114"
    ClosedOut = "1"
    BurnedOut = "355"
    FireBreak = "0"
    All = "114 1 355 0" />

  # The number of fire events for Pine vegetation
  <ObjectTypeFireEventCount
    ObjectIDNr = "1"
    ObjectIDName = "Pine"
    Burning = "35"
    ClosedOut = "0"
    BurnedOut = "45"
    FireBreak = "0"
    All = "35 0 45 0" />

  # The number of fire events for Birch vegetation
  <ObjectTypeFireEventCount
    ObjectIDNr = "2"
    ObjectIDName = "Birch"
    Burning = "15"
    ClosedOut = "0"
    BurnedOut = "4"
    FireBreak = "0"
    All = "15 0 4 0" />

  # The number of fire events for House
  <ObjectTypeFireEventCount
    ObjectIDNr = "3"
    ObjectIDName = "House"
    Burning = "1"  # Number of cells Still burning cells (Red)
    ClosedOut = "4" # Number of cells Fire fighting units manage to close the fire on (Brown)
    BurnedOut = "2" # Number of cells burned out (Black)
    FireBreak = "0" # Number of created fire breaks
    All = "2 0 4 0" />

  # The number of fire events for Water
  <ObjectTypeFireEventCount
    ObjectIDNr = "4"
    ObjectIDName = "Water"
    Burning = "1"
    ClosedOut = "0"
    BurnedOut = "0"
    FireBreak = "0"
    All = "1 0 0 0" />

  # The number of fire events for Fuel
  <ObjectTypeFireEventCount
    ObjectIDNr = "5"
    ObjectIDName = "Fuel"
    Burning = "0"
    ClosedOut = "0"
    BurnedOut = "0"
    FireBreak = "0"
    All = "0 0 0 0" />

  # The number of fire events for People
  <ObjectTypeFireEventCount
    ObjectIDNr = "6"
    ObjectIDName = "People"
    Burning = "1"
    ClosedOut = "0"
    BurnedOut = "1"
    FireBreak = "0"
    All = "1 0 1 0" />

  # The number of fire events for Tent
  <ObjectTypeFireEventCount
    ObjectIDNr = "7"
    ObjectIDName = "Tent"
    Burning = "0"
    ClosedOut = "0"
    BurnedOut = "1"
    FireBreak = "0"
    All = "0 0 1 0" />

  # The number of fire events for Medical Transit Point
  <ObjectTypeFireEventCount
    ObjectIDNr = "8"
    ObjectIDName = "MedicalTransitPoint"
    Burning = "0"
    ClosedOut = "0"
    BurnedOut = "0"
    FireBreak = "0"
    All = "0 0 0 0" />

  # The number of fire events for UAV Base
  <ObjectTypeFireEventCount
    ObjectIDNr = "9"
    ObjectIDName = "UAVBaseNW"
    Burning = "0"
    ClosedOut = "0"
    BurnedOut = "0"
    FireBreak = "0"
    All = "0 0 0 0" />

  # The number of fire events for UAV Base
  <ObjectTypeFireEventCount
    ObjectIDNr = "10"
    ObjectIDName = "UAVBaseN"
    Burning = "0"
    ClosedOut = "0"
    BurnedOut = "0"
    FireBreak = "0"
    All = "0 0 0 0" />

  # The number of fire events for UAV Base
  <ObjectTypeFireEventCount
    ObjectIDNr = "11"
    ObjectIDName = "UAVBaseNE"
    Burning = "0"
    ClosedOut = "0"
    BurnedOut = "0"
    FireBreak = "0"
    All = "0 0 0 0" />

  # The number of fire events for UAV Base
  <ObjectTypeFireEventCount
    ObjectIDNr = "12"
    ObjectIDName = "UAVBaseW"
    Burning = "0"
    ClosedOut = "0"
    BurnedOut = "0"
    FireBreak = "0"
    All = "0 0 0 0" />

  # The number of fire events for UAV Base
  <ObjectTypeFireEventCount
    ObjectIDNr = "13"
    ObjectIDName = "UAVBaseC"
    Burning = "0"
    ClosedOut = "0"
    BurnedOut = "0"
    FireBreak = "0"
    All = "0 0 0 0" />

  # The number of fire events for UAV Base
  <ObjectTypeFireEventCount
    ObjectIDNr = "14"
    ObjectIDName = "UAVBaseE"
    Burning = "0"
    ClosedOut = "0"
    BurnedOut = "0"
    FireBreak = "0"
    All = "0 0 0 0" />

  # The number of fire events for UAV Base
  <ObjectTypeFireEventCount
    ObjectIDNr = "15"
    ObjectIDName = "UAVBaseSW"
    Burning = "0"
    ClosedOut = "0"
    BurnedOut = "0"
    FireBreak = "0"
    All = "0 0 0 0" />

  # The number of fire events for UAV Base
  <ObjectTypeFireEventCount
    ObjectIDNr = "16"
    ObjectIDName = "UAVBaseS"
    Burning = "0"
    ClosedOut = "0"
    BurnedOut = "0"
    FireBreak = "0"
    All = "0 0 0 0" />

  # The number of fire events for UAV Base
  <ObjectTypeFireEventCount
    ObjectIDNr = "17"
    ObjectIDName = "UAVBaseSE"
    Burning = "0"
    ClosedOut = "0"
    BurnedOut = "0"
    FireBreak = "0"
    All = "0 0 0 0" />

# The number of fire burning cells that each unit (fire fighting unit) manager to close out.
</ObjectTypesFireEventCountList>

<UnitClosedOutFireList>

  # Unit "F1" closed the fire in 4 cells.
  <UnitClosedOutFire
    UnitIDNr = "0"
    UnitIDName = "F1"
    ClosedOut = "4" />

  # Unit "F2" closed the fire in 20 cells.
  <UnitClosedOutFire
    UnitIDNr = "1"
    UnitIDName = "F2"
    ClosedOut = "20" />

  <UnitClosedOutFire
    UnitIDNr = "2"
    UnitIDName = "F3"
    ClosedOut = "10" />

  <UnitClosedOutFire
    UnitIDNr = "3"
    UnitIDName = "F4"
    ClosedOut = "0" />

  <UnitClosedOutFire
    UnitIDNr = "4"
    UnitIDName = "F5"
    ClosedOut = "0" />

  <UnitClosedOutFire
    UnitIDNr = "5"
    UnitIDName = "F6"
    ClosedOut = "45" />

  <UnitClosedOutFire
    UnitIDNr = "6"
    UnitIDName = "F7"
    ClosedOut = "4" />

  <UnitClosedOutFire
    UnitIDNr = "7"
    UnitIDName = "F8"
    ClosedOut = "1" />

  <UnitClosedOutFire
    UnitIDNr = "8"
    UnitIDName = "F9"
    ClosedOut = "0" />

  <UnitClosedOutFire
    UnitIDNr = "9"
    UnitIDName = "L10"
    ClosedOut = "0" />

  <UnitClosedOutFire
    UnitIDNr = "10"
    UnitIDName = "L11"
    ClosedOut = "0" />

  <UnitClosedOutFire
    UnitIDNr = "11"
    UnitIDName = "L12"
    ClosedOut = "0" />

  <UnitClosedOutFire
    UnitIDNr = "12"
    UnitIDName = "R13"
    ClosedOut = "0" />

  <UnitClosedOutFire
    UnitIDNr = "13"
    UnitIDName = "R14"
    ClosedOut = "0" />

</UnitClosedOutFireList>

</FireCalculations>

Command Calculation

If the CommandCount is set to true in the C3FireCalculationConfig.xml file.
A file with the number of commands the player did do for the units is generated.
  <CommandCount
    ProcessThis     = "True" />

Mail Calculation

If the MailCount is set to true in the C3FireCalculationConfig.xml file.
A file with the number of mails the players did send is generated.
  <MailCount
    ProcessThis     = "True"
    UseSendToAll    = "True" />

Troubleshooting

Mac

If you have stored the log flies on a Mac computer or used a Mac to copy the files, the Mac system can have added some system files in all the log folder.
Examples on added files are:

  • ._c3fire-60.log
  • ._c3fire-60
  • .DS_Store


If these files exist in the log file structure the calculation step will not work, and you need to delete them.

In the Windows file structure these files will be classified as system file and are normally not visible.
To view these files, in the file viewer head menu select View and activate view of Hidden items.

Error Mac
Figure 15: View hidden items.

The error message in the process window will display the following message if this problem occur.

Version Update done
Figure 16: Calculation Error.