Data Tables Technical Guide
Section 4 - PUTTING IT ALL TOGETHER
4.1 Overview

This section presents several examples that use the DRM classes discussed

4.2 <Property Table> Examples
4.2.1 <Property Table>: Backscatter Table Example

Consider the following 2-dimensional table of electromagnetic backscatter properties for some material. One axis, representing angle of incidence, is a regularly-spaced numeric axis, starting at 15 degrees and incrementing by 15 degrees for a total of 6 tick marks. The other axis specifies 5 electromagnetic bands.

15 30 45 60 75 90
RF 300 290 240 207 198 170
microwave 160 230 180 167 158 130
infrared 165 152 78 22 8 1.5
visible 179 122 45 11 6 1
ultraviolet 200 90 40 9 4 0.1

The ECC for this data set is ECC_ELECTROMAGNETIC_MATERIAL_PROPERTY_SET, while the EACs for the backscatter data and the two axes are EAC_SURFACE_BACKSCATTER, EAC_INCIDENCE_ELEV_ANGLE_LOCAL, and EAC_EM_BAND.

Mapping this to the DRM, we have a <Property Table> with a <Classification Data> identifying it as a ECC_ELECTROMAGNETIC_MATERIAL_PROPERTY_SET, together with two <Axis> components and a <Table Property Description> component.

Since EAC_EM_BAND is an enumerated EA, the corresponding axis is represented as an <Enumeration Axis> instance, wherein the field values are
axis_type { SE_ELEMTYPCOD_ATTRIBUTE, { EAC_EM_BAND }}
value_unit EUC_UNITLESS
value_unit_scale ESC_UNI
axis_value_count 5
axis_value_array[] { EEC_EMBAND_RADIO_FREQUENCY, EEC_EMBAND_MICROWAVE, EEC_EMBAND_INFRARED, EEC_EMBAND_VISIBLE, EEC_EMBAND_ULTRAVIOLET }

On the other hand, EAC_INCIDENCE_ELEV_ANGLE_LOCAL is a numeric EA and has regular tick mark spacing for the axis in this example, so it is represented as a <Regular Axis>, wherein the field values are

axis_type          = { SE_ELEMCODTYP_ATTRIBUTE,
                       { EAC_INCIDENCE_ELEV_ANGLE_LOCAL }
value_unit         = EUC_DEGREE_ARC
value_unit_scale        = ESC_UNI
axis_value_count   = 6
interpolation_type = SE_INTERPOLATION_TYP_LINEAR
first_value        = { EDCS_AVT_INTEGER, 15 }
spacing            = { EDCS_AVT_INTEGER, 15 }
spacing_type       = SE_SPACING_TYP_ARITHMETIC
axis_alignment     = SE_AXIS_ALNMNT_NONE

Since interpolation makes sense for the EAC_INCIDENCE_ELEV_ANGLE_LOCAL axis, linear interpolation is selected as an example. Note that the <Axis> is not aligned, because it is not a spatial axis.

Now for the actual backscatter data itself, which is modelled via a <Table Property Description> with the following fields, completing the definition of the structure of the cells in the <Property Table>.

meaning     = { SE_ELEMCODTYP_ATTRIBUTE,
                { EAC_SURFACE_BACKSCATTER },
value_unit  = EUC_DB
value_unit_scale = ESC_UNI
value_type  = EDCS_AVT_REAL

Suppose that we have the following additional information about the backscatter values.

  • Minimum value: 0.0 dB
  • Maximum value: 400.0 dB
  • Tolerance: 0.1 dB

This information can be represented by adding three <Property Characteristic> components to the <Table Property Description> component, wherein the field values of each <Property Characteristic> correspond to one of the rows in the following table.

meaning characteristic_value
EVC_MINIMUM_VALUE EDCS_AVT_REAL 0.0
EVC_MAXIMUM_VALUE EDCS_AVT_REAL 400.0
EVC_TOLERANCE EDCS_AVT_REAL 0.1

Note that the actual backscatter values do not appear explicitly in the DRM representation; instead, they are placed in the <Data Table> by the SE_PutDataTableData() function of the SEDRIS API, and can then be retrieved via the SE_GetDataTableData() function.

4.2.2 <Property Table>: Emissivity Table Example

Consider the following emissivity table corresponding to the same material as that being modelled in the previous example.

15 30 45 60 75 90
RF .32 .97 .38 207 .98 .70
microwave .24 .93 .48 167 .58 .30
infrared .56 .59 .78 22 .8 .5
visible .73 .58 .45 .51 .6 .1
ultraviolet .51 .43 .47 .19 .14 0.1

Since the axes of this table are identical to those in the previous example, and since the data herein describes further EM properties of the same material, we can easily represent the two tables as a single <Property Table> rather than representing each separately, just by adding a second <Table Property Description> for the emissivity property (and subsequently using the API to add the corresponding element to each cell) to the existing <Property Table>, thus giving it a two "element" signature. NOTE: This can be done while creating the <Property Table> instance initially, but cannot currently be done in update mode; that is, in update mode the signature of a <Data Table> for which the cell data has already been created cannot be modified.

The difference between this <Property Table> and that in the preceding example is that a second <Table Property Description> with the field values shown below would be added before the cell data was created.

meaning     = { SE_ELEMCODTYP_ATTRIBUTE, { EAC_EMISSIVITY },
value_unit  = EUC_UNITLESS
value_unit_scale = ESC_UNI
value_type  = EDCS_AVT_REAL