I'm working with the Australian DSTO Flight Systems Branch on develoment
of generic aircraft flight models.  We are basing the datasets for this
work on the DAVE-ML DTD, with reasonable success so far.  Our datasets
are used by loading directly into a DOM encapsulated in a C++ class
which performs function evaluations based on the XML dataset and returns
the results to the calling function.

However, our work to date indicates an addition to the DTD would be
useful.  I propose that the independentVarRef element be modified as
shown below:

<!ELEMENT independentVarRef EMPTY>
<!ATTLIST independentVarRef
     varID      IDREF   #REQUIRED
     min        CDATA   #IMPLIED
     max        CDATA   #IMPLIED
     extrapolate        (neither | min | max | both) #IMPLIED
     interpolationType  CDATA #IMPLIED
     interpolationOrder CDATA #IMPLIED
>

The justifications for this change are:

For tabulated data in any form, the type of interpolation/extrapolation
applicable should be dependent on the data, not on the software in use
to interpret the data.  It is therefore appropriate to include
interpolation instructions in the XML dataset.  

A variable may be interpolated differently in different functions within
the same dataset.  Interpolation instructions therefore belong in the
independentVarRef rather than in the variableDef.  An alternative would
be to include the interpolation instruction in the bpRef attributes for
each function, if that was thought preferable.

Examples of the most common entries for these attributes are:

interpolationType="polynomial"
interpolationOrder="1"

which results in linear interpolation in the relevant degree of freedom,
with
continuity of the function, but not of its derivatives, across the
breakpoints.  Setting order to "0" allows discrete values, while higher
order can be chosen if required for rapidly-changing data.

Alternative interpolation types can represent different methods, such as
"c-spline", or different choice of basis functions, such as "legendre".

In future, it might also be useful to add further options to the
"extrapolate" attribute to determine whether the extrapolating basis
function is the same as that used for interpolation.

We await with interest any comments or suggestions.



Reply via email to