The SharpHog computer model is an implementation in C# and Xslt
of an entire set of earlier southern pine beetle infestation
models. From an original written at the University of
Arkansas in FORTRAN in the 1970s, the original HogModel, as it was
dubbed, underwent a series of updates, additions, and
re-implementations. Recent translations to Java for an online
implementation at Virginia Tech (JavaHog),
and then to also to C++(COMHog), resulted in equivalent models to
the original, but the complexity had grown as well. Changes a
scientist might want to make to the HogModel in these forms were
laborious at best, and error-prone as a rule. Equations used
by the model to calculate reproduction, mortality rate, initial
population, and so on, were defined multiple times in the source
code, meaning the slighest change required editing several files.
The SharpHog model has eliminated these downsides, in a
completely original implementation, based on Object-Oriented design
principles. Equivalency to the original FORTRAN has been
maintained, but in a flexible, extremely powerful, implementation
making full use of modern international
standards for data storage and manipulation; Xml and Xslt.
More information about SharpHog can be found on these
pages:
-
An application for the Windows desktop was created to provide
user access to every low-level aspect and capability of the
SharpHog Southern Pine Beetle (SPB) Infestation Model. This
powertool is consequently complex.
It's all about data.
The data used as input to the model, and the data created as
output from the model. SharpHog Model uses a single data
structure
(refered to as an SPBModel dataset)
for both input and output.
The dataset with the input is simply appended with the
corresponding output from the model, once it is
calculated.
All model data is stored as Xml, and a dataset containing both
input and output is maintained. All created output,
therefore, by the nature of the data structure, is
-
Important features of the SharpHog Southern Pine Beetle
Infestation Model are discussed in more detail on dedicated pages,
but the biggest advance is in the implementation of the equations
used by the model as loose Xslt.
The SharpHog SPB Model Is Governed By Rates.
There are mortality rates and development rates, for example,
and the equations that define these values have been removed
conceptually and literally from the structure of the SharpHog
model.
The SharpHog model itself then becomes an ever-more exacting
description of the biological system, the cyclical flow of an
infestation through
attack, reproduction, development,
& re-emergence
in this case, while the equations defining the rates of these
flows can be swapped in and out of that structure.
There are
-
Care should be taken to distinguish between several important
aspects of the SharpSpb project.
In general terms, data should be distinguished from
the description of data and the creation and
maintenance of data. There are two dataset schemas, or
descriptions of data, related to the SharpSpb project.
The Spot-Growth Database is described, or defined by, the
SpotGrowth schema. This is field data, and represents a
normalization of myriad formats field observations have taken over
the decades. The SpotGrowth packages includes means for
creating data, via methods for reading in various file-formats to
programmed interfaces for data entry by hand. Validation
methods, extrapolation methods, and other concerns are addressed as
well. What the Spot-Growth Database package Does Not do is
maintain a single file of validated
-
The SharpHog Southern Pine Beetle Infestation Model and the
related Spot-Growth Database Project were developed with eventual
deployment online as the goal from the outset, and both are fully
capable of flexible web deployment as they are right now.
The specific logistical requirements for various incarnations an
online implementation of the SharpHog model or Spot-Growth Database
deserve further exploration.
As the programmer of the two projects I have a special
relationship with their capabilities and features--I love them all.
That's why when I wrote the desktop applications for
interfacing with the model and database, I included a button or checkbox or
tab or textbox for everything. But any online implementation
would inherently be exposing a subset of these features to the
online user. I wrote