The SEDRIS Data Representation Model
APPENDIX B - Constraints
Axis Type Restrictions

Definition

The following restrictions apply.

  1. In an <Enumeration Axis> instance X,
    1.1

    The axis_type of X shall correspond to an EDCS Attribute T bound to the abstract value type EDCS_AVT_ENUMERATION.

    1.2

    The entries of X's axis_value_array shall be distinct, valid EEs for T.

  2. In <Interval Axis> instances,
    2.1

    The axis_type shall correspond to an EDCS Attribute (EA) bound to a numeric value type.

    2.2

    If the axis_type is bound to some set of EDCS Unit Equivalence classes (EQs), the value_unit shall be a member of one of the specified EQs.

    2.3

    Each individual entry in its axis_interval_value_array shall have a value_type corresponding to an interval type, and this value_type shall be the same for all entries in the axis_interval_value_array.

    2.4

    All entries in its axis_interval_value_array shall be mutually disjoint.

    2.5

    The entries in its axis_interval_value_array shall be arranged in either monotonically ascending or monotonically descending order.

  3. In <Irregular Axis> instances,
    3.1

    The axis_type shall correspond to an EDCS Attribute (EA) bound to a numeric value type.

    3.2

    If the axis_type is bound to some set of EDCS Unit Equivalence classes (EQs), the value_unit shall be a member of one of the specified EQs.

    3.3

    If the axis_type is not bound to any EQ, the value_unit and value_scale shall be set to EUC_UNITLESS and ESC_UNI, respectively.

    3.4

    each individual entry in its axis_value_array shall have an attribute_value_type consistent with the axis_type, and this attribute_value_type shall be the same for all entries in the axis_value_array.

    3.5

    all entries in its axis_value_array shall be distinct, and

    3.6

    the entries in its axis_value_array shall be arranged in either monotonically ascending or monotonically descending order.

  4. In an instance of <Regular Axis>, The attribute_value_type of the first_value and spacing field values shall be the same, and shall be consistent with the numeric data type to which the axis_type's value is bound.

    4.1

    The axis_type shall correspond to an EDCS Attribute (EA) bound to a numeric value type.

    4.2

    If the axis_type is bound to some set of EDCS Unit Equivalence classes (EQs), the value_unit shall be a member of one of the specified EQs.

    4.3

    If the axis_type is not bound to any EQ, the value_unit and value_scale shall be set to EUC_UNITLESS and ESC_UNI, respectively.

    4.4

  5. In regard to spatial <Axis> instances,
    5.1

    A spatial <Axis> is an <Axis> instance with one of the following as its axis_type.

     
    5.1.1

    For angular coordinates, such as latitude and longitude,
    EAC_SPATIAL_ANGULAR_PRIMARY_COORDINATE
    EAC_SPATIAL_ANGULAR_SECONDARY_COORDINATE

    5.1.2

    For x, y coordinates,
    EAC_SPATIAL_LINEAR_PRIMARY_COORDINATE
    EAC_SPATIAL_LINEAR_SECONDARY_COORDINATE

    5.1.3

    For z and elevation coordinates,
    EAC_SPATIAL_LINEAR_TERTIARY_COORDINATE

    5.2

    The first spatial_axes_count <Axis> components of a <Property Grid> instance shall be spatial <Axis> instances, each of which uniquely corresponds to a coordinate of the <Property Grid> instance's spatial reference frame.

    5.3

    No other <Axis> instances in any other context shall be spatial.

Rationale

  1. <Regular Axis>, <Irregular Axis>, and <Interval Axis> exist to specify some set of numeric values of an independent variable used to organize dependent values in some <Data Table> instance.

    Further, arithmetic operations are required to compute <Regular Axis>' tic values from its first_value and spacing field values.

  2. All <Axis> instances are required to specify distinct tic marks to avoid ambiguity.

  3. For ease of processing, it is desirable to organize <Interval Axis> and <Irregular Axis> values monotonically.

Example

  1. axis_type = EAC_PRIMARY_SURFACE_THERMAL_CONDITION may be used only for an <Enumeration Axis> instance, and for no instance of any other <Axis> sub-class.

FAQs

Can an EA of abstract value type INDEX be used for a <Regular Axis> or <Irregular Axis>?

Yes, but the value_unit and value_scale fields are ignored, and interpolation_type is not applicable (and shall therefore be set to SE_INTERPOLATION_TYP_DISALLOWED).

For <Interval Axis> and <Irregular Axis>, why not require ascending monotonicity, rather than allowing either ascending or descending?

In some problem domains, descending monotonicity is preferred, while in others, ascending is preferred.

Consider a <Data Table> describing atmospheric data, where an <Irregular Axis> specifies a vertical coordinate in pressure units, which decreases with increasing height. In such a table, if the <Irregular Axis> were required to be monotonically increasing, it could not be used to define a volume without "flipping the atmosphere over" to put the highest level at the first point on the axis and the lowest level at the last point on the axis, which could lead to confusion when the <Data Table> is processed by a consumer.

On the other hand, a <Data Table> describing oceanographic data with depth as an <Irregular Axis> might be naturally organized in terms of increasing depth.


Next: Classification Data Constraint. Up:Index.

Last updated: July 16, 2004 Copyright © 2004 SEDRIS