Analysis Framework Developer's Guide
Analysis Description
The Analysis Description file provides detailed information about the various sections of an Analysis.
<analysis-description>
Attributes
NAME |
DEFAULT VALUE |
DESCRIPTION |
---|---|---|
id |
(required) |
This id MUST match the id given to the Analysis in the |
Elements
NAME |
REQUIRED |
CARDINALITY |
DESCRIPTION |
---|---|---|---|
<analysis-type> |
(required) |
1 |
|
<custom-script> |
(optional) |
0-1 |
|
<groups> |
(required) |
1 |
|
<parameter> |
(optional) |
0-many |
|
<output> |
(optional) |
0-many |
Text
This element has no text.
<analysis-type>
Attributes
NAME |
DEFAULT VALUE |
DESCRIPTION |
---|---|---|
type |
(required) |
Defines how this analysis is to be executed, currently supports |
Elements
NAME |
REQUIRED |
CARDINALITY |
DESCRIPTION |
---|---|---|---|
<property> |
(optional) |
0-many |
a |
Text
This element has no text.
Example
<analysis-type type="simpleIteration"> <property name="iteratingDatasetKey" value="bridgeDamage" /> </analysis-type>
<custom-script>
Attributes
This element has no attributes.
Elements
This element has no children.
Text
Defines a location for a custom OgreScript to use instead of auto-generating one. The format for this script will be defined on a separate page. This location is relative to the bundle in which the analysis is shipped.
Example
<custom-script>scripts/ogrescript-bridgeFunc.xml</custom-script>
<groups>
Groups are used to associate like <parameter>
elements together. There are two <group-name>
elements which have special meaning to the framework.
Required
Advanced
- Any<parameters>
elements which are associated with theAdvanced
group will not be shown by default.
Attributes
This element has no attributes.
Elements
NAME |
REQUIRED |
CARDINALITY |
DESCRIPTION |
---|---|---|---|
<group-name> |
(required) |
1-many |
Group to which the parameters can be associated. |
Text
This element has no text.
Example
<groups> <group-name>Required</group-name> </groups>
<parameter>
Attributes
NAME |
DEFAULT VALUE |
DESCRIPTION |
---|---|---|
group |
(required) |
a string which must match a member of |
format |
(required) |
the type of the parameter, currently supports |
cardinality |
(required) |
how many of this type, currently supports |
key |
(required) |
name of property for which value should be added |
friendly-name |
{required) |
name of property for which value should be added |
Elements
NAME |
REQUIRED |
CARDINALITY |
DESCRIPTION |
---|---|---|---|
<types> |
(optional) |
0-many |
A list of types that are accepted by this |
Text
This element has no text.
Example
<parameter group="Required" format="dataset" cardinality="single" key="functionalityTable" friendly-name="Functionality Table"> <types> <type>bridgeFunctionality</type> </types> </parameter>
<output>
An <output>
of type dataset
requires two <property>
elements.
base-dataset-key
- The key of the<parameter>
which is the base for this new Datasetschema
- The id of the schema that this Dataset implements.
Attributes
NAME |
DEFAULT VALUE |
DESCRIPTION |
---|---|---|
format |
(required) |
the type of the parameter, currently supports |
key |
(required) |
name of property for which value should be added. No spaces allowed. |
friendly-name |
{required) |
name of property for which value should be added |
Elements
NAME |
REQUIRED |
CARDINALITY |
DESCRIPTION |
---|---|---|---|
<property> |
(optional) |
0-many |
a |
Text
This element has no text.
Example
<output friendly-name="Bridge Functionality" key="bridgeFunctionality" format="dataset"> <property name="base-dataset-key" value="bridgeDamage" /> <property name="schema" value="ncsa.maeviz.schemas.bridgeFunctionalityResults.v1.0" /> </output>
Task class
Each Analysis MUST implement a class which extends ncsa.analysis.maeviz.ogrescript.tasks.core.SimpleFeatureTask.
In the future a choice of base class based on the specific implementation required will be available.
There are two required abstract methods.
protected abstract void preProcess() throws ScriptExecutionException; protected abstract void handleFeature( IProgressMonitor monitor ) throws ScriptExecutionException;
Requirements
For each <parameter>
there must be a corresponding set
method which corresponds to the key
attribute in the <parameter>
.
Example:
<parameter group="Required" format="dataset" cardinality="single" key="functionalityTable" friendly-name="Functionality Table" /> public void setFunctionalityTable( Dataset d );
The handleFeature
method is responsible for two things. First is computing the values that are to be added to the new Feature. Second is to populate the resultMap
.
Example:
resultMap.put( COL_LS_SLIGHT, dmg[0] ); resultMap.put( COL_LS_MODERATE, dmg[1] );
As a best practice, add public final static
constants for each column in the Feature.
ncsa.analysis.newAnalyses
extension point
Each Analysis must register an extension with the ncsa.analysis.newAnalyses
extension point. This registration allows the Analysis Framework to find all Analyses automatically.
NAME |
DEFAULT VALUE |
DESCRIPTION |
---|---|---|
id |
(required) |
This id MUST match the id given in the |
name |
(required) |
This is the "friendly name" of the Analysis and should be i18n |
tag |
(required) |
The tag MUST match the tag in the |
descriptor |
(required) |
This points to the descriptor file. |
ncsa.tools.ogrescript.ogreTasks
extension point
Each Analysis must register its implementing class with the ncsa.tools.ogrescript.ogreTasks
extension point.
NAME |
DEFAULT VALUE |
DESCRIPTION |
---|---|---|
id |
(required) |
This id SHOULD match the fully qualified class name of the task |
name |
(required) |
This is the "friendly name" of the Task and should be i18n |
tag |
(required) |
The tag MUST match the tag in the |
class |
(required) |
This points to implementing class. |