CR-Form-v3
CHANGE REQUEST
IGM CR ?
rev-
Current version: OGC 07-031r2For
HELP
on using this form, see bottom of this page or look at the pop-up text over the symbols.
Proposed change affects: AS Imp Spec X Best Practices Paper Other
Title: IGM change request - Improve covariance matrix encoding
Source: Arliss Whiteside
Work item code: Date: 2008-12-17
Category: C
Use one of the following categories: F (Critical correction)
A (corresponds to a correction in an earlier release) B (Addition of feature),
C (Functional modification of feature) D (Editorial modification)
Reason for change: The current encoding of covariance matrices does not allow encoding of only the non-zero sub-matrices, which would often significantly reduce the required data volume. Also, the current encoding specifically and separately supports five forms of covariance matrices, three of which are specialized uses of non-zero sub-matrices.
Summary of change: Extensively revise the encoding of covariance matrices to support simple encoding of non-zero sub-matrices.
Consequences if
not approved:
Clauses affected: 12, igm:CovarianceMatrix.xsd
Other specs Other core specifications
Affected: Abstract specifications
Best Practices Papers
Supporting Doc.
Other comments: This change request is to the previously proposed, but not accepted, Image georeferencing metadata GML 3.2 Application Schema [OGC 07031r2]. This change request currently specifies two alternatives, first specifying one alternative using ISO 19139, and then specifying the differences in the second alternative not directly using ISO 19139.
Status
Disposition
Edit Clause 12 as follows:
12 Covariance matrix
12.1 Introduction
The covariance matrix part of the Image georeferencing metadata GML Application
Schema records combined absolute and relative position error estimates. The error statistics
are in the form of covariance matrices, also called variance-covariance matrices, used with
the (most-likely) values to which the covariance matrices apply. These covariance matrices
normally represent correlations between the accuracies of different parameters, coordinates,
and positions.
These covariance matrices
are used to
contain the variance of each adjusted value estimated
in the triangulation, and the covariances between these values. These estimated values
include various parameters in georeferencing coordinate transformations, including the
camera 3D position coordinates and 3D orientation angles. The estimated values also
include point position coordinates in object CRSs.
12.2 UML model
GCM_CovarianceMatrix + nameOfMeasure [0] : CharacterString
+ measureIdentification [0] : MD_IdentifierCharacterString + measureDescription [0] : CharacterString
+ evaluationMethodType [0] : DQ_EvaluationMethodType + evaluationProcedure [0] : CI_Citation
+ dateTime [0] : DateTime + matrixSize : PositiveInteger
+ adjustedParameters : Sequence<URI> + result [1] : GCM_FullMatrix
DQ_Element
+ nameOfMeasure [0..1] : CharacterString
+ measureIdentification [0..1] : MD_IdentifierCharacterString + measureDescription [0..1] : CharacterString
+ evaluationMethodType [0..1] : DQ_EvaluationMethodType + evaluationMethodDescription [0..1] : CharacterString + evaluationProcedure [0..1] : CI_Citation
+ dateTime [0..1] : DateTime + result [1..2] : DQ_Result
(from DQ_DataQuality)
DQ_PositionalAccuracy
(from DQ_DataQuality)
DQ_Result
(from DQ_DataQuality)
DQ_QuantitativeResult
+ valueType [0..1] : RecordType + valueUnit [1] : UnitOfMeasure + errorStatistic [0..1] : CharacterString + value [1..*] : Record
(from DQ_DataQuality)
GCM_FullMatrix + valueType [0] : RecordType
+ valueUnits [1] : Sequence<UomIdentifier> + errorStatistic [0] : CharacterString
GCM_ SubMatrix + valuesList [1] : Sequence<Real> + submatrixType [1] : GCM_SubmatrixType + firstRow [1] : UnsignedInteger
+ firstColumn [1] : UnsignedInteger + rows [1] : PositiveInteger + columns [1] : PositiveInteger
1..* 11
1..* +subMatrix
GCM_SubmatrixType + diagonal
+ onDiagonal + offDiagonal
GCM_Matrix
+ valueType [0] : RecordType + valueUnit [1] : Sequence<uom> GCM_CovarianceMatrix
+ measureIdentification [0] : MD_IdentifierCharacterString + evaluationMethodType [0] : DQ_EvaluationMethodType + evaluationProcedure [0] : CI_Citation
+ dateTime [0] : DateTime + matrixSize : PositiveInteger
+ adjustedParameters : Sequence<URI> + result [1] : DQ_Result
DQ_Element
+ nameOfMeasure [0..1] : CharacterString
+ measureIdentification [0..1] : MD_IdentifierCharacterString + measureDescription [0..1] : CharacterString
+ evaluationMethodType [0..1] : DQ_EvaluationMethodType + evaluationMethodDescription [0..1] : CharacterString + evaluationProcedure [0..1] : CI_Citation
+ dateTime [0..1] : DateTime + result [1..2] : DQ_Result
(from DQ_DataQuality)
DQ_PositionalAccuracy (from DQ_DataQuality)
GCM_FullMatrix GCM_DiagonalMatrix
GCM_SparseMatrix GCM_BandedMatrix
DQ_Result (from DQ_DataQuality)
DQ_QuantitativeResult
+ valueType [0..1] : RecordType + valueUnit [1] : UnitOfMeasure + errorStatistic [0..1] : CharacterString + value [1..*] : Record
(from DQ_DataQuality)
GCM_ComplexMatrix
+ valuesList [1..*] : GCM_ ValuesList
GCM_SimpleMatrix
+ valuesList [1] : Sequence<Double>
GCM_ValuesList + row [1] : PositiveInteger
+ firstColumn [0..1] : PositiveInteger + (anonymous) [1] : Sequence<Double>
GCM_CompleteMatrix
Figure 18 — GCM_CovarianceMatrix package UML class diagram
NOTE This GCM_CovarianceMatrix package class diagram shows all the attributes in the DQ_Element and DQ_QuantitativeResult classes. However, some of the optional attributes in each are not expected to be useful in this application, and are thus prohibited in the GCM_CovarianceMatrix and GCM_FullMatrix classes.
This UML class diagram
shows defines
how
multiple types of
covariance matrices can be
efficiently recorded. The CovarianceMatrix package (for the Image georeferencing
ISO 19115. This is done by defining more-specific subclasses of DQ_PositionalAccuracy
and DQ_QuantitativeResult.
The CovarianceMatrix concrete class restricts and extends the DQ_PositionalAccuracy
abstract class for combined absolute external and relative internal positional accuracies.
This class
adds describes the measure by substituting
the size of this covariance matrix and
an ordered sequence of references to the variable parameters for this covariance matrix.
The
Full
Matrix
, SimpleMatrix, and ComplexMatrix abstract
class
es
restrict
s
the
DQ_QuantitativeResult
concrete
class for efficiently recording the values of
the non-zero
and non-overlapping submatrices in the
covariance matrix
cells
. Instead of a general
record, the “value” attribute is
changed to one or more associations to SubMatrix objects,
each of which encodes the values of cells in a submatrix that contains one or more non-zero
cell values.renamed valuesList, which contains the values of an ordered sequence of
covariance matrix cells.
The SubMatrix class contains one ordered sequence of values of cells in this submatrix,
together with information defining the position and size of this submatrix within the full
covariance matrix. That information consists of the submatrixType, firstRow index,
firstColumn index, number of “rows”, and number of “columns”. The submatrixType has
one of (currently) three values:
a)
diagonal: Only the cells on the diagonal of this square sub-matrix are non-zero, so only
the values of these diagonal cells are included.
b)
onDiagonal: The first cell in this sub-matrix lies on the diagonal of the full covariance
matrix.
c)
offDiagonal: All the cells, including the first cell, in this sub-matrix lie to the right of
the diagonal of the full covariance matrix.
The SimpleMatrix class contains just one valuesList. The Diagonal- and Complete-Matrix
classes are specialized subclasses of SimpleMatrix, which specify how the values in that
one valuesList correspond to covariance matrix cells.
The ComplexMatrix class contains at least one valuesList for each row in the covariance
matrix. The cell position in the covariance matrix of the first value in each of these
valuesLists is specified by required “row” and optional firstColumn indices. The Full-,
Sparse-, and Banded-Matrix concrete subclasses are specialized subclasses of
ComplexMatrix, which specify how the multiple valuesList objects shall be used to encode
covariance matrix cells.
Description: Covariance matrix form of error estimates, used for the estimated errors in possibly statistically-correlated sets of parameters, containing ordered list of parameter names for matrix rows and
columns. The rows and columns of a covariance matrix correspond to the same ordered list of parameters.
Stereotype: Type
Class attribute: Concrete
Inheritance from: DQ_PositionalAccuracy
Association roles: coordinateOperationAccuracy from GAG_AdjustedGroup [1]c
(Composition (TBR) association from adjusted group that determined these error estimates)
positionErrorEstimates from GOP_ImagePosition [1]
(Association from image position for these absolute and relative position error estimates)
positionErrorEstimates from GOP_ObjectPosition [1]
(Association from absolute and relative position error estimates for this object position)
Public attributes: (The first eight optional attributes listed below are inherited from DQ_Element through DQ_PositionalAccuracy, with four six of these attributes being prohibited here.)
Attribute
name identifierUML Data type Obligation occurrenceMaximum Attribute description
Name Of
Measure nameOfMeasure CharacterString O N0
a
b Name of the test applied to the data.
Measure
Identification measureIdentification MD_Identifier O 0
a Code identifying a registered standard
procedure.
O 0 a Type of method used to evaluate quality
of the dataset.
O 1 Description of the evaluation method. b
Evaluation Procedure
evaluationPr ocedure
CI_Citation O 0 a Reference to the procedure information.
Date and
Time dateTime DateTime O 0
a Date or range of dates on which a data
quality measure was applied.
Result result DQ_Result
GCM_Full
Matrix c
M 1 Value (or set of values) obtained from
applying a data quality measure.
Matrix Size matrixSize PositiveInte
ger M 1 Number or rows and columns in this covariance matrix. Adjusted
a Inclusion of this attribute is prohibited in this GCM_CovarianceMatrixclass subclass of the DQ_PositionalAccuracy subclass of the DQ_Element class.
b The measureDescription optional element is replaced by the matrixSize and adjustedParameters attributes,
which describe the rows and columns of this covariance matrix.In this GCM_CovarianceMatrixclass, this
attribute is allowed but is not expected to be included.
c Limited to a concrete subclass of the abstract GCM_Matrix class, which specializes the DQ_QuantitativeResult subclass of the DQ_Result class.
Table 29 — Defining elements of GCM_
Full
Matrix class
Description: Full covariance matrix cell values, encoded as one or more non-zero and non-overlapping sub-matrices, with each sub-matrix encoded as one sequence of cell values.Covariance matrix cell values.
Stereotype: Type
Class attribute: AbstractConcrete Inheritance from: DQ_QuantitativeResult
Association roles: (none)subMatrix to GCM_SubMatrix [1..*]
Public attributes: (All three listed attributes are inherited from DQ_QuantitativeResult, with two attributes being restricted here.)
Attribute
name identifierUML Data type Obligation occurrenceMaximum Attribute description
Value Type valueType RecordType 0 0 a Value type for reporting a data quality
result. Value Units valueUnits Sequence<uom
> b M 1 Value Ordered sequence of references to value units for reporting a data
quality resultcovariance matrix cells. b
Error
Statistic errorStatistic CharacterString 0 1
ca Statistical method used to determine
the value.
a Inclusion of the valueType and errorStatistic attributesis are prohibited in this GCM_ FullMatrix subclass of DQ_QuantitativeResult.
b In this GCM_FullMatrix class, the valueUnit attribute is replaced by valueUnits, which shall contain an ordered list sequence of references the identifiers to the units for each covariance matrix row, with the same units for each column, and with the unit for each matrix cell being the product of the corresponding row and column units. The referenced units shall be for the corresponding parameters in the adjustedParameters element. The number of valueUnits referenced shall equal the value of the matrixSize.
Table 30 — Defining elements of GCM_
SimpleMatrix SubMatrix
class
Description: Sub-matrix of a covariance matrix encoded as an ordered sequence of cell values, with attributes that specify the position and size of this sub-matrix.
Stereotype: Type Class attribute: Concrete Inheritance from: (none)
Association roles: subMatrix from GCM_FullMatrix [1] Public attributes:
Attribute
name identifierUML Data type Obligation occurrenceMaximum Attribute description
Values List valuesList Sequence<Rea
l> M 1 Ordered sequence of one or more covariance matrix cell values. a
Submatrix
Type submatrixType GCM_SubmatrixTyp M 1 Type of this sub-matrix.
First Row firstRow UnsignedInteg
er
M 1 Index of the first row in this
sub-matrix within full covariance sub-matrix. b
First
Column firstColumn UnsignedInteger M 1 Index of the first column in this sub-matrix within full covariance matrix. c
Rows rows PositiveInteger M 1 Number of rows in this sub-matrix of
the covariance matrix.
Columns columns PositiveInteger M 1 Number of columns in this sub-matrix
of the covariance matrix. d
a The cell values are ordered from left to right along each matrix row, and then down for successive rows. b The first row in the full covariance matrix has the index value zero.
c The first column in the full covariance matrix has the index value zero.
d This number of columns shall be equal to or larger than the number of rows in this sub-matrix.
Editor’s Question: Should the indices of the first row and column be “zero” (as stated
above), or should the first indices be changed to “one”?
Description: Covariance matrix encoded using a one list of cell values.
Stereotype: Type Class attribute: Abstract Inheritance from: GCM_Matrix Association roles:(none)
Public attributes: Two attributes inherited from GCM_Matrix, plus one attribute inherited and restricted from DQ_QuantitativeResuilt as follows:
Attribute name UML
identifier Data type Obligation occurrenceMaximum Attribute description
Values List a valuesList Sequence<Dou
ble> a M 1
b Ordered sequence of values for
covariance matrix cells.
a The “value” attribute is renamed “valueList”, and the Record data type is here specialized to be an ordered sequence of Double typed values.
Table 31 — Defining elements of GCM_
DiagonalMatrix SubmatrixType
class
Description: Type of this sub-matrix. Stereotype: CodeList
Class attribute: Concrete Inheritance from: (none) Association roles: (none)
Used by: GOP_SubMatrix Public attributes:
Attribute name
UML identifier
Data type Oblig
ation
Maximum occurrence
Attribute description
Diagonal diagonal Character
String C 1 Only the cells on the diagonal of this square sub-matrix are non-zero, so only the values of
these diagonal cells shall be included. a
On
Diagonal onDiagonal CharacterString C 1 The first cell in this sub-matrix lies on the diagonal of the full covariance matrix. Values
for the cells to the left of the (symmetric) covariance matrix diagonal shall thus not be included. b
Off
Diagonal offDiagonal CharacterString C 1 All the cells, including the first cell, in this sub-matrix lie to the right of the diagonal of the full covariance matrix. Values for all the cells in
this sub-matrix shall thus be included. b
Condition: One and only one of the listed attributes shall be supplied.
a In this case, the numbers of "rows" and "columns" shall be equal.
b. This sub-matrix may be either square or contain more columns than rows.
Editor’s Question: For the “on diagonal” value of this SubmatrixType, should this
sub-matrix be restricted to square (never rectangular)?
Description: Covariance matrix containing values for only the matrix diagonal cells. (Such a matrix is for a statistically-uncorrelated set of parameters). For this Diagonal Matrix, the "valuesList" shall contain an ordered list of the values of only the cells on the matrix diagonal.
Stereotype: Type Class attribute: Concrete
Inheritance from: GCM_SimpleMatrix Association roles:(none)
Table 32 — Defining elements of GCM_CompleteMatrix class
Description: Covariance matrix containing values for diagonal and upper-right cells of symmetrical
covariance matrix. (Such a matrix is for a statistically-correlated set of parameters). For this CompleteMatrix, the "valuesList" element shall contain an ordered list of the values in each row starting with the diagonal cell in each row and continuing to the right. May be used for a 2D covariance matrix, and thus contain three values for cells (1 1), (1 2), and (2 2). May be used for a 3D covariance matrix, and thus contain six values for cells (1 1), (1 2), (1 3), (2 2), (2 3), and (3 3).
Stereotype: Type Class attribute: Concrete
Inheritance from: GCM_SimpleMatrix Association roles:(none)
Public attributes: Three attributes inherited from GCM_SimpleMatrix
Table 33 — Defining elements of GCM_ComplexMatrix
class
Description: Generic covariance matrix error estimates, for statistically-correlated sets of parameters.
Stereotype: Type Class attribute: Abstract Inheritance from: GCM_Matrix Association roles:(none)
Public attributes: Two attributes inherited from GCM_Matrix, plus one attribute inherited and restricted from DQ_QuantitativeResuilt as follows:
Attribute name UML
identifier
Data type Oblig
ation
Maximum occurrence
Attribute description
Values List a valuesList GCM_ValueLi
st a M N Ordered sequence of values for adjacent covariance matrix cells,
Table 34 — Defining elements of GCM_ValueList class
Description: Ordered sequence of one or more covariance matrix cell values, beginning at (row firstColumn) and continuing to the right.
Stereotype: Type Class attribute: Concrete Inheritance from: (none) Association roles:(none) Public attributes:
Attribute
name identifierUML Data type Obligation occurrenceMaximum Attribute description
Row row Positive
Integer M 1 Index of row in covariance matrix of first cell value included.
First Column firstColumn Positive
Integer C
a 1 Index of column in covariance
matrix of first cell value included.
(anonymous) (anonymous) Sequence<Dou
ble>
M 1 Ordered sequence of values for
adjacent covariance matrix cells. a Default value is the value of associated "row". Attribute should be omitted when value would be same as associated "row". Value shall not be less than the value of associated "row".
Table 35 — Defining elements of GCM_FullMatrix class
Description: Covariance matrix containing values for all matrix cells in a symmetric matrix. For this Full Matrix, one "valuesList" element (containing row and firstColumn attributes) shall be included for each matrix row. Each valuesList element shall contain the value of one diagonal matrix cell, followed by the values of all other cells to the right in that matrix row (and down in that matrix column). Each sequence shall end when the right edge of this matrix is reached.
Stereotype: Type Class attribute: Concrete
Inheritance from: GCM_ComplexMatrix Association roles:(none)
Public attributes: Three attributes inherited from GCM_ComplexMatrix
Table 36 — Defining elements of GCM_SparseMatrix class
Description: Covariance matrix containing only or mostly values of non-zero matrix cells, for a symmetric matrix. For this Sparse Matrix, at least one "valuesList" element shall be included for each matrix row. Each valuesList sequence shall end when several sequential zero cell values are reached or the right edge of this matrix is reached. Each valuesList element shall contain a list of the values of this sequence of (mostly non-zero) matrix cells.
Stereotype: Type Class attribute: Concrete
Inheritance from: GCM_ComplexMatrix Association roles:(none)
Table 38 — Defining elements of GCM_BandedMatrix class
Description: Covariance matrix containing values of all non-zero matrix cells, for a symmetric matrix with only zero values in the top-right and bottom-left corners. For this Banded Matrix, one "valuesList" element (containing row and firstColumn attributes) shall be included for each matrix row. Each valuesList element shall contain the value of one diagonal matrix cell, followed by the values of other cells to the right in that matrix row (and down in that matrix column). Each sequence shall end when there are no more non-zero cell values in that row or the right edge of this matrix is reached.
Stereotype: Type Class attribute: Concrete
Inheritance from: GCM_ComplexMatrix Association roles:(none)
Public attributes: Three attributes inherited from GCM_ComplexMatrix
12.3 XML encoding
The GCM_CovarianceMatrix UML package is encoded in the igmCovarianceMatrix.xsd
XML Schema Document,
and normally uses the igmSubmatrixTypes.xml document. The
igmCovarianceMatrix.xsd which
imports the gmd/
dataQualitygmd
.xsd and gco/gco.xsd
XML Schema Documents from ISO 19139. The ISO 19115 classes used in the UML model
are encoded by the ISO 19139 XML elements as listed in Table 5. The contents of the
igmCovarianceMatrix.xsd XML Schema Document
and igmSubmatrixTypes.xml
document
shall be as specified in the attached file
s
.
NOTE The following examples use “999” as a place holder for specific numerical values.
EXAMPLE 1 An example XML fragment for a 2 by 2 diagonal CovarianceMatrix using a 2 by 2
DiagonalMatrix, suitable for an a measured ImagePosition, encoded using one “diagonal” SubMatrix, is:
<CovarianceMatrix>
<matrixSize>2</matrixSize>
<adjustedParameters>row column</adjustedParameters> <result>
<FullMatrix>
<valueUnits>GridSpacing GridSpacing</valueUnits> <subMatrix>
<SubMatrix>
<valuesList>0.999 0.999</valuesList> <submatrixType
codeSpace="igmSubmatrixTypes.xml">diagonal</submatrixType> <firstRow>0</firstRow>
<firstColumn>0</firstColumn> <rows>2</rows>
<columns>2</columns> </SubMatrix>
</subMatrix> </FullMatrix> </result>
</CovarianceMatrix>
<CovarianceMatrix id="CovarianceMatrix999> <matrixSize>2</matrixSize>
<valueUnit>rowSpacing columnSpacing</valueUnit> <valuesList>0.999 0.999</valuesList>
</DiagonalMatrix> </result>
</CovarianceMatrix>
EXAMPLE 2 An example XML fragment for a CovarianceMatrix using a 3 by 3 CompleteMatrixcomplete
CovarianceMatrix, suitable for an a computed ObjectPosition, encoded using one onDiagonal SubMatrix, is:
<CovarianceMatrix>
<matrixSize>3</matrixSize>
<adjustedParameters>Easting Northing Elevation</adjustedParameters> <result>
<FullMatrix>
<valueUnits>m m m</valueUnits> <subMatrix>
<SubMatrix>
<valuesList>0.999 0.999 0.999 0.999 0.999 0.999</valuesList>
<submatrixType
codeSpace="igmSubmatrixTypes.xml">onDiagonal</submatrixType> <firstRow>0</firstRow>
<firstColumn>0</firstColumn> <rows>3</rows>
<columns>3</columns> </SubMatrix>
</subMatrix> </FullMatrix> </result>
</CovarianceMatrix>
<CovarianceMatrix id="CovarianceMatrix999> <matrixSize>3</matrixSize>
<adjustedParameters>X Y Z</adjustedParameters> <result>
<CompleteMatrix>
<valueUnit >m m m</valueUnit>
<valuesList>0.999 0.999 0.999 0.999 0.999 0.999</valuesList> </CompleteMatrix>
</result>
</CovarianceMatrix>
EXAMPLE 3 An example XML fragment for a 4 by 4 banded CovarianceMatrix,encoded using a 4 by 4
BandedMatrixfour onDiagonal sub-matrices, is:
<CovarianceMatrix>
<matrixSize>4</matrixSize>
<adjustedParameters>X Y Z T</adjustedParameters> <result>
<FullMatrix>
<valueUnits>m m m s</valueUnits> <subMatrix>
<SubMatrix>
<valuesList>0.999 0.999</valuesList> <submatrixType
<firstColumn>0</firstColumn>
<adjustedParameters>X Y Z T</adjustedParameters> <result>
<BandedMatrix>
<valueUnit>m m m</valueUnit>
<valuesList row="1">0.999 0.999 </valuesList> <valuesList row="2">0.999 0.999 </valuesList> <valuesList row="3">0.999 0.999 </valuesList> <valuesList row="4">0.999</valuesList>
</BandedMatrix> </result>
Add new igmSubmatrixTypes.xml dictionary file as follows:
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary xmlns="http://www.opengis.net/gml/3.2" xmlns:gml="http://www.opengis.net/gml/3.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/gml/3.2 ../../gml/3.2.1/gml.xsd"
gml:id="SubmatrixTypes">
<description>This dictionary specifies the standard values for submatrix types specified in the IGM 1.0 specification. </description> <identifier codeSpace="">igmSubmatrixTypes</identifier>
<!-- ===================================================== --> <dictionaryEntry>
<Definition gml:id="diagonal">
<description>Only the cells on the diagonal of this square sub-matrix are non-zero, so only the values of these diagonal cells shall be included. In this case, the numbers of "rows" and "columns" shall be equal. </description>
<identifier
codeSpace="igmSubmatrixTypes.xml">diagonal</identifier> </Definition>
</dictionaryEntry>
<!-- ===================================================== --> <dictionaryEntry>
<Definition gml:id="onDiagonal">
<description>The first cell in this sub-matrix lies on the diagonal of the full covariance matrix. Values for the cells to the left of the (symmetric) covariance matrix diagonal shall thus not be included. This sub-matrix may be either square or contain more columns than rows. </description>
<identifier
codeSpace="igmSubmatrixTypes.xml">onDiagonal</identifier> </Definition>
</dictionaryEntry>
<!-- ===================================================== --> <dictionaryEntry>
<Definition gml:id="offDiagonal">
<description>All the cells, including the first cell, in this sub-matrix lie to the right of the diagonal of the full covariance matrix. Values for all the cells in this sub-matrix shall thus be included. This sub-matrix may be either square or contain more columns than rows. </description>
<identifier
codeSpace="igmSubmatrixTypes.xml">offDiagonal</identifier> </Definition>
</dictionaryEntry>
<!-- ===================================================== --> </Dictionary>
Replace igmCovarianceMatrix.xsd as follows:
xmlns:gmd="http://www.isotc211.org/2005/gmd"
<appinfo>igmCovarianceMatrix.xsd 2008-12-08</appinfo> <documentation>This XML Schema Document encodes the
CovarianceMatrix UML package of the "Image georeferencing metadata GML 3.2 application schema", as an application schema of ISO 19139. This XML Schema Document also uses parts of GML 3.2.
Copyright (c) 2008 Open Geospatial Consortium, Inc. All Rights Reserved. </documentation>
</annotation>
<!-- ============================================================== includes and imports
============================================================== --> <import namespace="http://www.isotc211.org/2005/gmd"
schemaLocation="../../iso/19139\20070417/gmd/gmd.xsd"/> <import namespace="http://www.isotc211.org/2005/gco" schemaLocation="../../iso/19139\20070417/gco/gco.xsd"/> <import namespace="http://www.opengis.net/gml/3.2" schemaLocation="../../gml/3.2.1/gml.xsd"/>
<!-- ============================================================== elements and types
============================================================== --> <element name="CovarianceMatrix" type="igm:CovarianceMatrixType" substitutionGroup="gco:AbstractObject">
<annotation>
<documentation>Covariance matrix form of error estimates, used for the estimated errors in possibly-statistically-correlated sets of parameters. The measureDescription optional element is replaced by the matrixSize and adjustedParameters elements, which describe the rows and columns of this covariance matrix. The rows and columns of a covariance matrix correspond to the same ordered list of parameters.
</documentation>
<documentation>This element extends gco:AbstractObject_Type to produce the needed restriction of gco:AbstractDQ_PositionalAccuracy_Type, since the definition of gco:AbstractDQ_PositionalAccuracy_Type cannot be validly restricted as needed. The nameOfMeasure, measureIdentification, measureDescription, evaluationMethodType, and evaluationProcedure
optional elements in the gco:AbstractDQ_PositionalAccuracy_Type are omitted, since their values are implied by the element name
CovarianceMatrix. The dateTime optional element is also omitted, since this information is provided elsewhere. </documentation>
</annotation> </element>
<!-- =========================================================== --> <complexType name="CovarianceMatrixType">
<complexContent>
<extension base="gco:AbstractObject_Type"> <sequence>
</annotation> </element>
<element name="adjustedParameters" type="gml:QNameList"> <annotation>
<documentation>Ordered sequence of the names of all adjusted parameters included in this covariance matrix. The number of names included shall equal the value of the matrixSize. </documentation> <documentation>This element might be changed to an ordered sequence of references to ordered lists of the groups of adjusted parameters. </documentation> In a covariance matrix element, this element should indicate whether this matrix was fully computed (with all covariance values) or just estimated (with zero values of some covariance cells). </documentation>
</annotation> </element>
<element name="result" type="igm:FullMatrixPropertyType"> <annotation> <complexType name="CovarianceMatrixPropertyType">
<annotation>
<documentation>Association to a CovarianceMatrix object, often referenced. </documentation>
<documentation>The attribute gco:nilReason is omitted, since a CovarianceMatrix shall not be referenced when it does not exist.
</documentation> </annotation> <sequence>
<element ref="igm:CovarianceMatrix" minOccurs="0"/> </sequence>
<attributeGroup ref="gco:ObjectReference"/> </complexType>
<!-- =========================================================== --> <!-- =========================================================== --> <element name="FullMatrix" type="igm:FullMatrixType"
substitutionGroup="gmd:AbstractDQ_Result"> <annotation>
definition of DQ_QuantitativeResult_Type cannot be validly restricted as needed. The valueType and errorStatistic optional elements in the
DQ_QuantitativeResult_Type are omitted, since their values are implied by the CovarianceMatrix name of the containing element. </documentation> </annotation>
</element>
<!-- =========================================================== --> <complexType name="FullMatrixType">
<complexContent>
<extension base="gmd:AbstractDQ_Result_Type"> <sequence>
<element name="valueUnits"> <annotation>
<documentation>Ordered sequence of the identifiers of the units for covariance matrix cells. In this FullMatrix element, these units shall be an ordered list of the units for each covariance matrix row, with the same units being used for each column, and with the unit for each matrix cell being the product of the corresponding row and column units. The referenced units shall be for the corresponding
parameters in the adjustedParameters element. The number of valueUnits referenced shall equal the value of the matrixSize. </documentation> <documentation>This element is changed from ISO 19139 to only identify (not define) the units, and to allow referencing a list of units as needed for the many rows and columns of covariance matrix cells. </documentation>
<element name="subMatrix" type="igm:subMatrixPropertyType" maxOccurs="unbounded">
<annotation>
<documentation>Unordered list of one or more (non-zero and non-overlapping) sub-matrices encoded within this full
covariance matrix. This subMatrix element shall be repeated for each non-zero and non-overlapping sub-matrix used to encode the full covariance matrix.</documentation> <complexType name="FullMatrixPropertyType">
<annotation>
<element name="SubMatrix" type="igm:SubMatrixType" substitutionGroup="gml:AbstractObject">
<annotation>
<documentation>Sub-matrix of a covariance matrix encoded as an ordered sequence of cell values, with property elements that specify the position and size of this sub-matrix. </documentation>
<documentation>An element in the igm:SubMatrix substitutionGroup which binary encodes a SubMatrix could be specified in an IGM extension application schema. </documentation>
</annotation> </element>
<!-- =========================================================== --> <complexType name="SubMatrixType">
<sequence>
<element name="valuesList"> <annotation>
<documentation>Ordered sequence of one or more covariance matrix cell values. The cell values are ordered from left to right along each matrix row, and then down for successive rows. Only the number of useful digits in each covariance cell value needs to be included,
omitting all less significant digits of the xsd:float mantissa that are either zero or not useful. </documentation>
</annotation> <simpleType>
<list itemType="float"/> </simpleType>
</element>
<group ref="igm:submatrixPositionAndSize"/> </sequence>
</complexType>
<!-- =========================================================== --> <complexType name="subMatrixPropertyType">
<annotation>
<documentation>Association to a SubMatrix object, always encoded in-line. </documentation> <group name="submatrixPositionAndSize">
<annotation>
<documentation>This group is specified to facilitate defining other elements in the igm:SubMatrix substitutionGroup. </documentation> </annotation>
<sequence>
<element ref="igm:submatrixType"> <annotation>
<documentation>Type of this sub-matrix. </documentation> </annotation>
</element>
<documentation>Index of the first row in this sub-matrix within the full covariance matrix. The first row in the full covariance matrix has the index value zero. </documentation>
</annotation> </element>
<element name="firstColumn" type="unsignedInt"> <annotation>
<documentation>Index of the first column in this sub-matrix within the full covariance sub-matrix. This firstColumn value shall not be less than the value of the associated firstRow. The first column in the full covariance matrix has the index value zero. </documentation> </annotation>
</element>
<element name="rows" type="positiveInteger"> <annotation>
<documentation>Number of rows in this sub-matrix of the covariance matrix. </documentation>
</annotation> </element>
<element name="columns" type="positiveInteger"> <annotation>
<documentation>Number of columns in this sub-matrix of the covariance matrix. This number of columns shall be equal to or larger than the number of rows in this sub-matrix. </documentation>
</annotation> </element>
</sequence> </group>
<!-- =========================================================== --> <element name="submatrixType" type="gml:CodeWithAuthorityType"> <annotation>
<documentation>Type of this sub-matrix. The required codeSpace attribute shall reference a gml:dictionary specifying the values and meanings of all the allowed string values for this property.
</documentation>
<appinfo>igmCovarianceMatrix.xsd 2007-11-06</appinfo> <documentation>This XML Schema Document encodes the
CovarianceMatrix UML package of the "Image georeferencing metadata GML 3.2 application schema", as an application schema of ISO 19139. This XML Schema Document also uses parts of GML 3.2.
includes and imports
============================================================== --> <import namespace="http://www.isotc211.org/2005/gmd"
schemaLocation="../../iso/19139\20070417/gmd/dataQuality.xsd"/> <import namespace="http://www.isotc211.org/2005/gco"
schemaLocation="../../iso/19139\20070417/gco/gco.xsd"/> <import namespace="http://www.opengis.net/gml/3.2" schemaLocation="../../gml/3.2.1/gml.xsd"/>
<!-- ============================================================== elements and types
============================================================== --> <element name="CovarianceMatrix" type="igm:CovarianceMatrixType" substitutionGroup="gco:AbstractObject">
<annotation>
<documentation>Covariance matrix form of error estimates, used for possibly statistically-correlated sets of parameters, containing ordered list of parameter names for matrix rows and columns.
</documentation>
<documentation>This element extends AbstractObject_Type to produce the needed restriction of AbstractDQ_PositionalAccuracy_Type, since the definition of AbstractDQ_PositionalAccuracy_Type cannot be validly restricted. </documentation>
</annotation> </element>
<!-- =========================================================== --> <complexType name="CovarianceMatrixType">
<complexContent>
<extension base="gco:AbstractObject_Type"> <sequence> In a covariance matrix element, this element is allowed but is not
expected to be included. </documentation> </annotation> covariance matrix element, this element is allowed but is not expected to be included. </documentation> In a covariance matrix element, this element is allowed but is not
expected to be included. </documentation> </annotation>
</element>
<documentation>Number of rows and columns in this covariance matrix. </documentation>
</annotation> </element>
<element name="adjustedParameters" type="gml:QNameList"> <annotation>
<documentation>Ordered list of names of adjusted parameters included in this covariance matrix. </documentation>
</annotation> </element>
<element name="result" type="igm:MatrixPropertyType"> <annotation> <complexType name="CovarianceMatrixPropertyType">
<annotation>
<documentation>Association to a CovarianceMatrix object, usually referenced. </documentation>
</annotation> <sequence>
<element ref="igm:CovarianceMatrix" minOccurs="0"/> </sequence>
<attributeGroup ref="gco:ObjectReference"/> <attribute ref="gco:nilReason"/>
</complexType>
<!-- =========================================================== --> <!-- =========================================================== --> <element name="AbstractMatrix" type="igm:AbstractMatrixType"
abstract="true" substitutionGroup="gmd:AbstractDQ_Result"> <annotation>
<documentation>Covariance matrix cell values. </documentation> <documentation>This element extends AbstractDQ_Result to produce the needed restriction of DQ_QuantitativeResult_Type, since the
definition of DQ_QuantitativeResult_Type cannot be validly restricted. </documentation>
</annotation> </element>
<!-- =========================================================== --> <complexType name="AbstractMatrixType" abstract="true" >
<complexContent>
<extension base="gmd:AbstractDQ_Result_Type"> <sequence>
<element name="valueUnit"> <annotation>
referenced units shall be for the corresponding items in the adjustedParameters element. </documentation>
<documentation>This element is changed from ISO 19139 to only reference the units, and to allow referencing a list of units as needed for the rows and columns of covariance matrix cells. </documentation> the value. In this AbstractMatrix element, this element is allowed but is not expected to be included. </documentation>
</annotation> <complexType name="MatrixPropertyType">
<annotation>
<documentation>Association to a Matrix object, always encoded in-line. </documentation>
</annotation> <sequence>
<element ref="igm:AbstractMatrix"/> </sequence>
</complexType>
<!-- =========================================================== --> <!-- =========================================================== --> <element name="AbstractSimpleMatrix" type="igm:SimpleMatrixType" abstract="true" substitutionGroup="igm:AbstractMatrix">
<annotation>
<documentation>Covariance matrix encoded using one list of cell values. </documentation>
</annotation> </element>
<!-- =========================================================== --> <complexType name="SimpleMatrixType">
<complexContent>
<extension base="igm:AbstractMatrixType"> <sequence>
<element name="valuesList" type="gml:doubleList"> <annotation>
<documentation>Ordered list of one or more covariance matrix cell values. </documentation>
</annotation> </element>
<!-- =========================================================== --> <element name="DiagonalMatrix" type="igm:DiagonalMatrixType"
substitutionGroup="igm:AbstractSimpleMatrix"> <annotation>
<documentation>Covariance matrix containing values for only the matrix diagonal cells. (Such a matrix is for a statistically-uncorrelated set of parameters). For this DiagonalMatrix, the "valuesList" element shall contain an ordered list of the values of only the cells on the matrix diagonal. </documentation>
</annotation> </element>
<!-- =========================================================== --> <complexType name="DiagonalMatrixType">
<complexContent>
<extension base="igm:SimpleMatrixType"/> </complexContent>
</complexType>
<!-- =========================================================== --> <element name="CompleteMatrix" type="igm:CompleteMatrixType"
substitutionGroup="igm:AbstractSimpleMatrix"> <annotation>
<documentation>Covariance matrix containing values for diagonal and upper-right cells of symmetrical covariance matrix. (Such a matrix is for a statistically-correlated set of parameters). For this
CompleteMatrix, the "valuesList" element shall contain an ordered list of the values in each row starting with the diagonal cell in each row and continuing to the right. May be used for a 2D covariance matrix, and thus contain three values for cells (1 1), (1 2), and (2 2). May be used for a 3D covariance matrix, and thus contain six values for cells (1 1), (1 2), (1 3), (2 2), (2 3), and (3 3). </documentation>
<extension base="igm:SimpleMatrixType"/> </complexContent>
</complexType>
<!-- =========================================================== --> <!-- =========================================================== --> <element name="AbstractComplexMatrix" type="igm:ComplexMatrixType" abstract="true" substitutionGroup="igm:AbstractMatrix">
<annotation>
<documentation>Covariance matrix encoded using one or more lists of cell values for each matrix row. </documentation>
</annotation> </element>
<!-- =========================================================== --> <complexType name="ComplexMatrixType">
<complexContent>
<extension base="igm:AbstractMatrixType"> <sequence>
<element name="valuesList" maxOccurs="unbounded"> <annotation>
</annotation> in covariance matrix of this valuesList. </documentation>
</annotation> in covariance matrix of first cell value included. Value shall not be less than the value of associated "row". Default value is the value of associated "row". Attribute should be omitted when value would be same as associated "row". </documentation> <element name="FullMatrix" type="igm:FullMatrixType"
substitutionGroup="igm:AbstractComplexMatrix"> <annotation>
<documentation>Covariance matrix containing values for all matrix cells in a symmetric matrix. For this Full Matrix, one
"valuesList" element (containing "row" and firstColumn attributes) shall be included for each matrix row. Each valuesList element shall contain the value of one diagonal matrix cell, followed by the values of all other cells to the right in that matrix row (and down in that matrix column). Each sequence shall end when the right edge of this matrix is reached. </documentation>
</annotation> </element>
<!-- =========================================================== --> <complexType name="FullMatrixType">
<complexContent>
<extension base="igm:ComplexMatrixType"/> </complexContent>
</complexType>
<!-- =========================================================== --> <element name="BandedMatrix" type="igm:BandedMatrixType"
substitutionGroup="igm:AbstractComplexMatrix"> <annotation>
be included for each matrix row. Each valuesList element shall contain the value of one diagonal matrix cell, followed by the values of other cells to the right in that matrix row (and down in that matrix column). Each sequence shall end when there are no more non-zero cell values in that row or the right edge of this matrix is reached. </documentation> </annotation>
</element>
<!-- =========================================================== --> <complexType name="BandedMatrixType">
<complexContent>
<extension base="igm:ComplexMatrixType"/> </complexContent>
</complexType>
<!-- =========================================================== --> <element name="SparseMatrix" type="igm:SparseMatrixType"
substitutionGroup="igm:AbstractComplexMatrix"> <annotation>
<documentation>Covariance matrix containing only or mostly values of non-zero matrix cells, for a symmetric matrix. For this Sparse Matrix, at least one "valuesList" element (containing "row" and
firstColumn attributes) shall be included for each matrix row. Each valuesList sequence shall end when several sequential zero cell values are reached or the right edge of this matrix is reached. Each valuesList element shall contain a list of the values of this sequence of (mostly non-zero) matrix cells. </documentation>
</annotation> </element>
<!-- =========================================================== --> <complexType name="SparseMatrixType">
<complexContent>
<extension base="igm:ComplexMatrixType"/> </complexContent>
</complexType>
Alternative 2
Editor’s Note: The idea for this alternative 2 arose when I realized that alternative 1 does
not use very much of ISO 19139, and that all the parts it does use have equivalents in GML
3.2.1. This alternative thus replaces all references to parts of ISO 19139 in alternative 1,
with references to the corresponding parts of GML 3.2.1. By not also referencing (all of)
ISO 19139, alternative 2 is expected to be somewhat easier to implement.
Edit Clause 12 as specified above, except edit first paragraph of Clause
12.4 as follows:
12.4 XML encoding
The GCM_CovarianceMatrix UML package is encoded in the igmCovarianceMatrix.xsd
XML Schema Document
, and normally uses the igmSubmatrixTypes.xml document. The
igmCovarianceMatrix.xsd imports only gml/3.2.1/gml.xsd
,
which imports the and does not
directly use any gmd/dataQuality.xsd and gco/gco.xsd
XML Schema Documents from ISO
19139.
The ISO 19115 classes used in the UML model are encoded by the ISO 19139 XML
elements as listed in Table 5.
The contents of the igmCovarianceMatrix.xsd XML Schema
Document
and igmSubmatrixTypes.xml document
shall be as specified in the attached
file
s
.
Add new igmSubmatrixTypes.xml dictionary file as specified above.
Replace current igmCovarianceMatrix.xsd with:
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.opengis.net/igm/1.0" xmlns:igm="http://www.opengis.net/igm/1.0"
xmlns:gml="http://www.opengis.net/gml/3.2" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
version="1.0.0" xml:lang="en"> <annotation>
<appinfo>igmCovarianceMatrix.xsd 2008-12-08</appinfo> <documentation>This XML Schema Document encodes the
CovarianceMatrix UML package of the "Image georeferencing metadata GML 3.2 application schema". Although that UML package extends ISO 19115, this encoding extends GML 3.2 instead of extending ISO 19139, in order to simplify immplementation.
Copyright (c) 2008 Open Geospatial Consortium, Inc. All Rights Reserved. </documentation>
</annotation>
<!-- ============================================================== includes and imports
============================================================== --> <import namespace="http://www.opengis.net/gml/3.2"
schemaLocation="../../gml/3.2.1/gml.xsd"/>
============================================================== --> <element name="CovarianceMatrix" type="igm:CovarianceMatrixType" substitutionGroup="gml:AbstractObject">
<annotation>
<documentation>Covariance matrix form of error estimates, used for the estimated errors in possibly-statistically-correlated sets of parameters. The rows and columns of a covariance matrix correspond to the same ordered list of parameters. </documentation>
<documentation>This element is based on the
DQ_PositionalAccuracy class of ISO 19115, but extends GML 3.2 instead of restricting gco:AbstractDQ_PositionalAccuracy_Type in ISO 19139. The measureDescription optional element is replaced by the matrixSize and adjustedParameters elements, which describe the rows and columns of this covariance matrix. The nameOfMeasure, measureIdentification,
measureDescription, evaluationMethodType, and evaluationProcedure
optional elements in gco:AbstractDQ_PositionalAccuracy_Type are omitted, since their values are implied by the element name CovarianceMatrix. The dateTime optional element is also omitted, since this information is provided elsewhere. </documentation>
</annotation> </element>
<!-- =========================================================== --> <complexType name="CovarianceMatrixType">
<sequence>
<element name="matrixSize" type="positiveInteger"> <annotation>
<documentation>Number of rows and columns in this (symmetric) covariance matrix. </documentation>
</annotation> </element>
<element name="adjustedParameters" type="gml:QNameList"> <annotation>
<documentation>Ordered sequence of the names of all adjusted parameters included in this covariance matrix. The number of names included shall equal the value of the matrixSize. </documentation> <documentation>This element might be changed to an ordered sequence of references to lists of the groups of adjusted parameters. </documentation>
</annotation> </element>
<element name="evaluationMethodDescription" type="string" minOccurs="0">
<annotation>
<documentation>Description of the evaluation method. In a covariance matrix element, this element should indicate whether this matrix was fully computed (with all covariance values) or just estimated (with zero values of some covariance cells). </documentation>
</annotation> </element>
<element name="result" type="igm:FullMatrixPropertyType"> <annotation>
<documentation>Full covariance matrix cell values. </documentation>
<!-- =========================================================== --> <complexType name="CovarianceMatrixPropertyType">
<annotation>
<documentation>Association to a CovarianceMatrix object, often referenced. </documentation>
<documentation>The attribute gml:nilReason is omitted, since a CovarianceMatrix shall not be referenced when it does not exist.
</documentation> </annotation> <sequence>
<element ref="igm:CovarianceMatrix" minOccurs="0"/> </sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/> </complexType>
<!-- =========================================================== --> <!-- =========================================================== --> <element name="FullMatrix" type="igm:FullMatrixType"
substitutionGroup="gml:AbstractObject"> <annotation>
<documentation>Full covariance matrix cell values, encoded as one or more non-zero and non-overlapping matrices, with each sub-matrix encoded as one sequence of cell values. The required valueUnit element is replaced by the valueUnits element which references the units for all the rows and columns of this covariance matrix. </documentation> <documentation>This element is based on the
DQ_QuantitativeResult class of ISO 19115, but extends GML 3.2 instead of restricting gco:DQ_QuantitativeResult_Type in ISO 19139. The valueType and errorStatistic optional elements in the DQ_QuantitativeResult_Type are omitted, since their values are implied by the name of the
CovarianceMatrix containing element. </documentation> </annotation>
</element>
<!-- =========================================================== --> <complexType name="FullMatrixType">
<sequence>
<element name="valueUnits"> <annotation>
<documentation>Ordered sequence of the identifiers of the units for covariance matrix cells. In this FullMatrix element, these units shall be an ordered list of the units for each covariance matrix row, with the same units being used for each column, and with the unit for each matrix cell being the product of the corresponding row and column units. The referenced units shall be for the corresponding parameters in the adjustedParameters element. The number of valueUnits referenced shall equal the value of the matrixSize. </documentation> <documentation>This element is changed from ISO 19115 to only identify (not define) the units, and to allow referencing a list of units as needed for the many rows and columns of covariance matrix cells. </documentation>
<documentation>Unordered list of one or more (non-zero and non-overlapping) sub-matrices encoded within this full covariance matrix. This subMatrix element shall be repeated for each zero and
non-overlapping sub-matrix used to encode the full covariance matrix. </documentation> <complexType name="FullMatrixPropertyType">
<annotation>
<documentation>Association to a (covariance) FullMatrix object, always encoded in-line. </documentation>
</annotation> <sequence>
<element ref="igm:FullMatrix"></element> </sequence>
</complexType>
<!-- =========================================================== --> <!-- =========================================================== --> <element name="SubMatrix" type="igm:SubMatrixType"
substitutionGroup="gml:AbstractObject"> <annotation>
<documentation>Sub-matrix of a covariance matrix encoded as an ordered sequence of cell values, with property elements that specify the position and size of this sub-matrix. </documentation>
<documentation>An element in the igm:SubMatrix substitutionGroup which binary encodes a SubMatrix could be specified in an IGM extension application schema. </documentation>
</annotation> </element>
<!-- =========================================================== --> <complexType name="SubMatrixType">
<sequence>
<element name="valuesList"> <annotation>
<documentation>Ordered sequence of one or more covariance matrix cell values. The cell values are ordered from left to right along each matrix row, and then down for successive rows. Only the number of useful digits in each covariance cell value needs to be included,
omitting all less significant digits of the xsd:float mantissa that are either zero or not useful. </documentation>
</annotation> <simpleType>
<list itemType="float"/> </simpleType>
</element>
<group ref="igm:submatrixPositionAndSize"/> </sequence>
</complexType>
<!-- =========================================================== --> <complexType name="subMatrixPropertyType">
<annotation>
<sequence> <group name="submatrixPositionAndSize">
<annotation>
<documentation>This group is specified to facilitate defining other elements in the igm:SubMatrix substitutionGroup. </documentation> </annotation>
<sequence>
<element ref="igm:submatrixType"> <annotation>
<documentation>Type of this sub-matrix. </documentation> </annotation>
</element>
<element name="firstRow" type="unsignedInt"> <annotation>
<documentation>Index of the first row in this sub-matrix within the full covariance matrix. The first row in the full covariance matrix has the index value zero. </documentation>
</annotation> </element>
<element name="firstColumn" type="unsignedInt"> <annotation>
<documentation>Index of the first column in this sub-matrix within the full covariance sub-matrix. This firstColumn value shall not be less than the value of the associated firstRow. The first column in the full covariance matrix has the index value zero. </documentation> </annotation>
</element>
<element name="rows" type="positiveInteger"> <annotation>
<documentation>Number of rows in this sub-matrix of the covariance matrix. </documentation>
</annotation> </element>
<element name="columns" type="positiveInteger"> <annotation>
<documentation>Number of columns in this sub-matrix of the covariance matrix. This number of columns shall be equal to or larger than the number of rows in this sub-matrix. </documentation>
</annotation> </element>
</sequence> </group>
<!-- =========================================================== --> <element name="submatrixType" type="gml:CodeWithAuthorityType"> <annotation>
<documentation>Type of this sub-matrix. The required codeSpace attribute shall reference a gml:dictionary specifying the values and meanings of all the allowed string values for this property.