The SEDRIS Data Representation Model
APPENDIX A - Classes Property Characteristic |
---|
An instance of this DRM class specifies additional information about how to use, interpret or further specify a <Property> subclass. It consists of an enumeration that designates the type of information, and a value for the designated attribute.
A <Model> classified as ECC_BRIDGE has a <Property Value> representing its length. The <Property Value> has two <Property Characteristic> components to specify maximum length and length precision:
First <Property Characteristic>
meaning | EVC_MAXIMUM_VALUE | |||
---|---|---|---|---|
characteristic_value. value_type | EDCS_AVT_REAL | |||
characteristic_value.u. real_value | EUC_METRE | ESC_UNI | EDCS_NVT_SINGLE_VALUE | 32767.0 |
Second <Property Characteristic>
meaning | EVC_TOLERANCE | |||
---|---|---|---|---|
characteristic_value. value_type | EDCS_AVT_REAL | |||
characteristic_value.u. real_value | EUC_METRE | ESC_UNI | EDCS_NVT_SINGLE_VALUE | 1.0 |
A <Property Grid> containing a <Table Property Description> with meaning = { SE_ELEM_CODE_TYP_ATTRIBUTE, { EAC_AIR_TEMPERATURE }}
describes air temperature measurements over the specified region. In some locations, no measurements were taken, so a sentinel value (deliberately chosen to lie outside the range of possible data values) is needed to indicate those locations.
Consequently, the <Table Property Description> for EAC_AIR_TEMPERATURE in this example has a <Property Characteristic> with meaning = EVC_MISSING and characteristic_value of, say, -10000.
Any cell data element for this <Table Property Description> which has a value of -10000 is therefore interpreted as meaning that the measurement is missing.
Note that the <Table Property Description> may have other <Property Characteristic> components, provided that they have different meaning values. For example, this <Table Property Description> may have another <Property Characteristic> specifying EVC_MINIMUM_VALUE.
A <Property Grid> containing a <Table Property Description> with meaning = { SE_ELEM_CODE_TYP_ATTRIBUTE, { EAC_SALINITY }}
describes water salinity data over the region specified for the grid. However, in this example, part of the grid lies over land, so that water salinity measurements not only were not taken there, but make no sense. A sentinel value (deliberately chosen to lie outside the range of possible data values) is needed to indicate those locations.
Consequently, the <Table Property Description> for EAC_SALINITY in this example has a <Property Characteristic> with meaning = EVC_NOT_APPLICABLE and a characteristic_value of, say, -1.
Any cell data element for this <Table Property Description> which has a value of -1 is therefore interpreted as meaning that the measurement is not applicable.
Note that the <Table Property Description> may have other <Property Characteristic> components, provided that they have different meaning values. For example, this <Table Property Description> may have another <Property Characteristic> specifying EVC_MINIMUM_VALUE.
If a <Property Value> had associated with it a valid range of values or a precision value (as is sometimes found in FACC attribute specifications), then each of these associated values could be attached to the <Property Value> with a <Property Characteristic>.
However, a <Property Value> does not require <Property Characteristics> that specify sentinel values, since they are meaningful only in the context of <Data Tables>.
They can be, but metadata information is not readily accessible in software. For example, in an application which plots tabular data, access to information specifying the valid range of values is useful in scaling the plot. As a second example, precision information can be used to determine appropriate round-off when converting between units of measure.
In addition to specifying value ranges, precision, and tolerances, a given <Table Property Description> of a <Data Table> can use a <Property Characteristic> to specify information that applies to all cells in the <Data Table>, such as a sentinel value that flags a special meaning to certain values. A <Property Characteristic> can also be used to indicate that a certain <Data Table> property is in fact constant in this particular instance of the table.
Often <Data Tables> are incomplete for various reasons. Typically a set of special values is selected to flag missing data. Such special values are selected to be out of the valid range of values for the parameter in question. Since the valid range of a parameter varies by data set as well by <Property> type, these special values vary accordingly. <Property Characteristics> provide a means to associate specific sentinel values and their meaning with a specific <Property> of a specific <Data Table>.
The sentinel mechanism that is often used with numeric attributes use out-of-valid-range values in conjunction with <Property Characteristic> instances for this purpose. The only valid EE codes for a given EA are specified in the EE dictionary. Any non-valid code for the EE (such as a negative value) may be used for a characteristic value.
The characteristic_value is measured with the same unit as the <Property> subclass that aggregates it.
EVC_MAXIMUM_VALUE and EVC_MINIMUM_VALUE are intended to give the nominal or legal range of values for this type of data as opposed to this instance of the data. EVC_UPPER_BOUND and EVC_LOWER_BOUND are intended to supply a tighter bound for the given instance of numeric data. If both sets of characteristics are supplied, then:
EVC_UPPER_BOUND | <= | EVC_MAXIMUM_VALUE |
EVC_LOWER_BOUND | <= | EVC_MINIMUM_VALUE |
Not necessarily. But the tighter the bound the more useful is the information provided. If possible they should be the least upper greatest lower bounds.
They can be used by the data consumer for scaling graphs, checking data validity, etc. When supplied for a <Table Property Description>, together with EVC_TOLERANCE or EVC_SIGNIFICANT_DIGITS values, a SEDRIS API implementation may be able to use this information to compress the <Data Table>.
EDCS_Value_Characteristic_Code | meaning; | (notes) |
---|---|---|
EDCS_Attribute_Value | characteristic_value; | (notes) |
The meaning field specifies the semantic represented by the given <Property Characteristic> instance.
The characteristic_value field specifies the data value of the given <Property Characteristic> instance.
|