Last updated July 13, 2010 19:45, by Bruce Schubert

Campbell Prediction System Wiki


The Campbell Prediction System (CPS) project is a visualization tool for wildland fire behavior students, instructors and tacticians. The purpose of the tool is to provide an analysis of a fireground's fire behavior potential and to visualize the areas of risk and/or opportunity. The project is an effort to enhance the class room training of both wildland firefighters and fire behavior analysts, and to provide useful output on active wildland fires as well as historical fires.

This Wiki is oriented towards developers and users who are interested in the lower level details of the CPS implementation. If you are interested in a high-level view of the system or a Quick Start guide you should visit my Emxsys website.

This project is based on the work and training material developed by Doug Campbell. The following is a summary of Doug's work:

The Campbell Prediction System is a practical way to use on-scene observations in order to determine fire behavior strategies and tactics. A combination of scientific research and the knowledge of the successful firefighters' methods and practices are utilized to explain fire behavior. In these situations the observed fire behavior becomes the baseline for fire behavior predictions. A special logic replaces intuition allowing an explanation of how tactics are developed. Developing a strong case for acting on the potential rather than waiting for the fire to make the change, would avoid the loss of life due to firefighters late reactions. If people could explain what the potential of the fire is in their situation, fewer accidents would occur. The Campbell Prediction System provides the logic and language to do so.

The program's fireground analysis logic leverages the BEHAVE algorithms of Rothermel and Albini, as well as the study of Uncertainty Propagation in Wildland Fire Behavior Modeling by Andreas Bachmann. Thanks to Andi Bachmann for contributing his Behave java classes.

The 3D visualization features leverage the NASA WorldWind Java SDK and the VisAD SDK. This project is destined to become a NetBeans module within the Emxsys (Emergency Management Expert System) project.


There are several ways that you can participate in the CPS project:

  • Monitor Message Forums - Read and discuss fire behavior and/or programming issues in the message forums. Kenai membership is required to post messages, but reading messages does not. The General Discussion forum is for CPS and fire behavior related topics; the Developers Forum is for programming issues.
    • Note, if you bookmark this project, then recent forum messages will be conveniently displayed at the bottom of your Kenai My Page.
    • Also note that you can setup an RSS news feed to the CPS Forums -- look for the RSS feed icon in the forum pages.
  • Download and Test - Download and test the CPS software. Testing is a critical component in the development of quality software. Bug reports can be submitted and monitored via JIRA Issue Tracking.
  • Become a Contributor or Developer - When you bookmark this project you become and Observer and I will send you an email with instructions on how to increase your site privileges.
  • Follow on Twitter - You can follow this project on Twitter under Emxsys.

Are you a Project Kenai member? An account is required to access some features of this project. Creating a user account is free (no strings attached). To join, simply click in the Join Now link at the top of the page.

-- Bruce Schubert

CPS Software


Following is a context diagram depicting the boundaries and connections to the system.

Figure 1. Context Diagram.

Screen Shots

Following are some screen shots of the v1.0 application developed in the Construction Phase of this project.

Figure 2. Version 1.0 Example.

Figure 2 shows a typical screen layout.

Note that on the left hand side of the screen, three panels are arrayed vertically to emphasize the "alignment of forces" concept taught by the Campbell Prediction System method. The center of the screen contains a map and terrain viewer for selecting and viewing a location of interest. And the right hand side of the screen depicts the fire behavior calculations in various charts.

Figure 3. Haul Chart.

Figure 3 shows an example of a fire behavior outputs that are familiar with wildland firefighters. This chart is reactive to all fire environmental inputs, particularly fuel model, wind, slope and time of day (solar preheating).

Figure 4. Fuel Temperature Chart

Figure 4 shows an example of diurnal fuel temperature. This display emphasizes the effect of solar preheating of the fuel bed. This display is very reactive to changes in location (i.e., the terrain aspect).

Figure 5. Spread Direction Chart

Figure 4 shows another example fire behavior output, in this case it shows the fire's spread direction and flame length. This very sensitive to wind. At lower wind speeds, slope plays a more significant factor.

Current Status

The objective of the v1.0 release is to convert the application over to the NetBeans RCP (rich client platform) architecture and to vet the fire behavior calculations against BehavePlus.

Current development on v1.0 is taking place within the Subversion trunk repository.

The current down-loadable release is CPS v1.0. Version 1.0 incorporates the NASA WorldWind Java SDK for the terrain viewer. Fire behavior calculations are point based using general winds and local terrain calculations with diurnal air temperature and relative humidity inputs. All of the USFS standard fuels models are available, with helpful guides in the help section.

Version v1.0 can be downloaded here.

Upcoming Milestones

  • Download and use LANDFIRE Fuel Model data from the USGS
  • Perform fire behavior calculations for a fire ground area instead of just a point
  • Augmenting fire behavior predictions with observed fire signatures
  • Discovering trigger points and fire tracks via data mining


Automated setups are under construction. Until then, simply download the appropriate OS dependent zip file and unzip at your desired location. For PC/Linux, within the folder hierarchy you will find a "bin" folder that contains the application launcher. For the Mac, the zip file contains and application ready to run.

The current documentation and screenshots (v1.0) can be viewed at the page.

Software Development


I have adopted a subset of the Rational Unified ProcessĀ® (or RUPĀ®) for the CPS project. RUP is a disciplined software engineering process which can be adapted to small or agile projects. Within the RUP software lifecycle, development progresses through four sequential phases: inception, elaboration, construction and transition. One pass through these phases is a development cycle. Within a single phase, each pass though software development activities that produces a stable-release is know as an iteration. There may be several iterations within a phase. Collectively, this is known as iterative development.

Currently, the Campbell Prediction System is the beginning of the Elaboration Phase.

Information Sets

Software development activities, known as disciplines, produce an number of artifacts such as documents, plans, and executables. These artifacts have been organized into a matrix for easy access (see Table 1 below). The artifacts are grouped together by discipline. An X or an O indicates which phase(s) will update the artifact. The 'X markers are hyper-linked to the artifact.

Users and stakeholders should read the documents in the Requirements section, in particular, Vision and Use-Cases. If you are interested in the development of this product, you should read the documents within the Project Management section.

In addition to the Requirements, developers should pay particular attention to the Analysis and Design and Environment sections, in particular, Software Architecture Document and Development Case.

Information Set Matrix

Information Set Matrix Key
X indicates that an artifact exists in this phase.
O indicates that an artifact is anticipated, or TBD.
A blank cell indicates that an artifact is not anticipated.
Inception Elaboration Construction Transition Artifact
X Vision
X Use-Cases
X Supplementary Specifications
X User Interface Prototype
X Glossary
Analysis and Design
X Analysis Model
O Software Architecture Document
O Design Model
O O O Test Plan
O O O Test Evaluation Summary
X Product
X End-User Support Material
X Release Notes
Project Management
O Risk List
X Software Development Plan
X O O O Iteration Plan
X Development Case
X Programming Guidelines
Table 1. Information Sets Matrix

Requirements Artifacts

CPS Vision Document

The Vision document collects, analyzes and defines the high-level needs and features of the Campbell Prediction System project. It provides the problem and vision statements.

CPS Glossary

Terms and definitions used within the Campbell Prediction System project. (UNDER DEVELOPMENT)

Analysis & Design Artifacts

CPS Software Architecture Document

The Software Architecture Document provides a comprehensive architectural overview of the system, using a number of different architectural views to depict different aspects of the system. (UNDER DEVELOPMENT)

Project Manangement Artifacts

CPS Software Development Plan

The software development plan is a comprehensive composite artifact that gathers all information required to manage the project. It encloses a number of artifacts developed during the Inception phase and is maintained throughout the project.

Environment Artifacts

CPS Development Case Document

The development case shows how the generic RUP applies to the context of this project. A development case also provides an overview of the process to be followed, something understood by everyone on the project.

CPS Programming Guidelines

The programming guidelines describe the conventions to be used when working with the Java programming language and the NetBeans IDE.

Developer FAQ

NetBeans Rich Client Platform (RCP) and NASA WorldWind Notes

Implementation notes and FAQ regarding NetBeans, JOGL and WorldWind have been moved to the DeveloperFAQ "Lessons Learned" page.

  • Mysql
  • Glassfish
  • Jruby
  • Rails
  • Nblogo
Terms of Use; Privacy Policy;
© 2014, Oracle Corporation and/or its affiliates
(revision 20160708.bf2ac18)
Please Confirm