documenting data quality ted habermann, noaa national geophysical data center

50
Documenting Data Quality Habermann, NOAA National Geophysical Data Center

Upload: allyson-atkins

Post on 03-Jan-2016

229 views

Category:

Documents


0 download

TRANSCRIPT

Documenting Data QualityTed Habermann, NOAA National Geophysical Data Center

Data Quality - Documents

Data Quality - Granules

<<DataType>>DQ_Scope

+ level : MD_ScopeCode + extent [0..1] : EX_Extent + levelDescription [0..*] :

MI_Metadata

Data Quality - Standards

<<Abstract>>DQ_Element

DQ_ConformanceResult

+ specification : CI_Citation+ explanation : CharacterString+ pass : Boolean

<<CodeList>>MD_EvaluationMethodTypeCode

+ directInternal + directExternal+ indirect

DQ_DataQuality

+ scope : DQ_Scope+ standAloneReport 0..1

DQ_QuantitativeResult

+ valueType [0..1] : RecordType + valueUnit : UnitOfMeasure + errorStatistic [0..1] : CharacterString + value [1..*] : Record

<<CodeList>>MD_ScopeCode

+ attribute + feature + attributeType + featureType+ collectionHardware + propertyType+ collectionSession + fieldSession+ dataset + software+ series + service+ nonGeographicDataset + model+ dimensionGroup + tile

DQ_CoverageResult

+ report 0..*

DQ_StandaloneReportInformation

+ reportReference : CI_Citation+ abstract: CharacterString

DQ_MeasureReference DQ_Evaluation DQ_Result

+ resultScope: DQ_Scope [0..1]

DQ_DescriptiveResult

<<Union>>MD_ScopeDescription

+ attributes : Set<GF_AttributeType> + features : Set<GF_FeatureType> + featureInstances : Set<GF_FeatureType> + attributeInstances : Set<GF_AttributeType> + dataset : CharacterString + other : CharacterString

LI_Lineage

GOES-R Data Quality - Documents

Level 2+ Volcanic Ash: Detection and HeightL2+ Volcanic Ash Science DescriptionL2+ Volcanic Ash Algorithm DescriptionL2+ Volcanic Ash Source InformationL2+ Volcanic Ash Applicable ATBDsL2+ Volcanic Ash Quality AlgorithmsL2+ Volcanic Ash Source Data InputsL2+ Volcanic Ash Production NotesL2+ Volcanic Ash Data Fields (TBR-16)L2+ Volcanic Ash Metadata Description and DefinitionL2+ Volcanic Ash Expected Periodicity

Documents = Standards

• Science Description - MD_DataIdentification/abstract• Algorithm Description - LE_Algorithm/description• Source Information - MD_DistributionInformation• Applicable ATDBs - LE_Algorithm/citation• Quality Algorithms - DQ_DataQuality/DQ_MeasureReference• Source Data Inputs - LI_Lineage/source• Production Notes - processStep/description• Data Fields- MD_ContentInfo• Metadata Description and Definition - seems redundant• Expected Periodicity - resourceMaintenance

Documentation Objects = Standards

NESDIS Documentation Object MappingMetadata DocumentSystem Description DocumentSystem Maintenance ManualInterface Control DocumentAlgorithm Theoretical Basis Document

Multiple Dialects of the Same Content

Documents

CI_Citation

XSLT Translation

XML Reference

Granules/Catalogs Standards

<<DataType>>DQ_Scope

+ level : MD_ScopeCode + extent [0..1] : EX_Extent + levelDescription [0..*] :

MI_Metadata

DQ_DataQuality - 19157

<<Abstract>>DQ_Element

DQ_ConformanceResult

+ specification : CI_Citation+ explanation : CharacterString+ pass : Boolean

<<CodeList>>MD_EvaluationMethodTypeCode

+ directInternal + directExternal+ indirect

DQ_DataQuality

+ scope : DQ_Scope+ standAloneReport 0..1

DQ_QuantitativeResult

+ valueType [0..1] : RecordType + valueUnit : UnitOfMeasure + errorStatistic [0..1] : CharacterString + value [1..*] : Record

<<CodeList>>MD_ScopeCode

+ attribute + feature + attributeType + featureType+ collectionHardware + propertyType+ collectionSession + fieldSession+ dataset + software+ series + service+ nonGeographicDataset + model+ dimensionGroup + tile

DQ_CoverageResult

+ report 0..*

DQ_StandaloneReportInformation

+ reportReference : CI_Citation+ abstract: CharacterString

DQ_MeasureReference DQ_Evaluation DQ_Result

+ resultScope: DQ_Scope [0..1]

DQ_DescriptiveResult

<<Union>>MD_ScopeDescription

+ attributes : Set<GF_AttributeType> + features : Set<GF_FeatureType> + featureInstances : Set<GF_FeatureType> + attributeInstances : Set<GF_AttributeType> + dataset : CharacterString + other : CharacterString

23

2

2

2

4

5

5 55

4

LI_Lineage

1

ISO Lineage Model

Source Source Source Source Source

Step Step Step Product

Processing and Algorithm Descriptions

LI_Lineage

Attributes:role [how many] : object type

how many = [minimum..maximum]minimum = 0: optionalminimum = 1: required* = any number

how many = blank: required, onehow many = [1..*] : required, any numberhow many = [1..2] : required, one or twohow many = [0..1] : optional, zero or onehow many = [0..*] : optional, any number

Type: package abbreviation_type

UML package abbreviation =XML namespace = Document section

Role: what this object does for mecontact: CI_ResponsiblePartydescription: CharacterString

Operations: generally not used in ISO UML

UML.1

UML.2

LI_Lineage =the LI_Lineageclass is in the Lineage (LI) Package

statement [0..1] : CharacterString = LI_Lineage can have up to one statement which is a

CharacterString

extent [0..1] : EX_Extent = LI_Lineage can have any number of sources which are LI_Sources

processStep [0..*] : LI_Lineage can have any number of processSteps which are LE_ProcessSteps

Volcanic Ash Detection Sources

Volcanic Ash Detection Processing

ISO Lineage

DQ_Lineage (19115-2)

MI_Metadata

+ lineage 0..1

LI_Lineage

+ statement [0..1] : CharacterString

LE_Source

+ description [0..1] : CharacterString+ scaleDenominator [0..1] : MD_RepresentativeFraction+ sourceReferenceSystem [0..1] : MD_ReferenceSystem+ sourceCitation [0..1] : CI_Citation+ sourceExtent [0..*] : EX_Extent+ processedLevel[0..1] : MD_Identifier+ resolution[0..1] : LE_NominalResolution+ sourcemetadata [0..*] : MD_Reference

LE_ProcessStep

+ description : CharacterString+ rationale [0..1] : CharacterString+ dateTime [0..1] : DateTime+ processor [0..*] : CI_ResponsibleParty+ extent [0..*] : EX_Extent+ reference [0.*] : CI_Citation

+ source 0..* + processStep 0..*

+ output, source0..*

If(count(source) + count(processStep) =0) and(DQ_DataQuality.cope.level = 'dataset' or 'series')then statement is mandatory

LE_Processing

+ identifier : MD_Identifier+ softwareReference[0..*] : CI_Citation+ procedureDescription[0..1] : CharacterString+ documentation[0..*] : CI_Citation+ runTimeParameters[0..1] : CharacterString

LE_Algorithm

+ citation: CI_Citation+ description : CharacterString

+ processingInformation0..*

+ algorithm 0..*LE_ProcessStepReport

+ name : CharacterString+ description[0..1] : CharacterString+ fileType[0..1] : CharacterString

+ report 0..*

+ sourceStep0..*

Granule Lineage - 1

Granule Lineage - 2

Volcanic Ash Detection Lineage in the GranuleOption 1: one identifier:<nc:attribute name="history" value="uniqueIdentifier"/>

Option 2: lineage group with filenames as unique identifiers: <nc:group name="lineage"> <nc:attribute name="Source:clear_sky_masks" value="filename"/> <nc:attribute name="Source:global_emissivity_MODIS" value="filename"/> <nc:attribute name="Source:global_emissivity_MODIS" value="filename"/> <nc:attribute name="Source:global_land_cover_UMD" value="filename"/> <nc:attribute name="Source:cloud_probablilty_LUT" value="filename"/> <nc:attribute name="Source:volcanic_ash_coefficient_file" value="filename"/> <nc:attribute name="Source:NWP_GFS_current_analysis_and_forecast_data" value="filename"/> <nc:attribute name="Algorithm:GOESR_ABI_ATBD_Aviation_VolAsh_v2.0.doc"/> </nc:group>

Option 3: lineage group with uniqueIdentifiers:<nc:group name="lineageInformation">

<nc:attribute name = "processStep" value="uniqueIdentifier"/> includes processingInformation / algorithm / output

<nc:attribute name="sourceName" value="uniqueIdentifier"/><nc:attribute name="sourceName" value="uniqueIdentifier"/><nc:attribute name="sourceName" value="uniqueIdentifier"/>

</ nc:group>

Database and XML Keys

CitationIDTitleDateFriend_IDLocation_ID

CitationIDTitleDateFriend_IDLocation_ID

PersonIDNameEMail

PersonIDNameEMail

OnlineResourceIDNameURL

OnlineResourceIDNameURL

XML<person id=JaneDoe> <friend xlink:href="#JohnDoe"/></person>…………<person id=JohnDoe> <friend xlink:href="#JaneDoe"/></person>

XML Attributes: Objects and ReferencesISO XML consists of tags, elements (with or without content), and attributes. An attribute is a name/value pair that exists within a start-tag or empty-element tag. Attributes provide additional information about an element which is not part of the data. Attribute values must contain either single or double quotes. This example shows a step element with one attribute, number with a value of “3”:<step number="3">Connect A to B.</step>

Many of the XML attributes used in the ISO Standards fall into two groups: identifiers and references:Identifiers: id and uuidReferences: uuidref and xlink:href

Objects that start with upper case letters have identifiers (id and uuid)Roles that start with lower case letters have references (uuidref and xlink:href)

object:CI_ResponsiblePartyid="JaneDoe"

object:CI_ResponsiblePartyid="JohnDoe"

role: friend xlink:href=#JohnDoe role: friend xlink:href=#JaneDoe

ISO Lineage Model - 2

Source Astep ps1

Source Bstep ps1

Source Cstep ps2

Source Dstep ps2

Source Estep ps3

Step ps1source Asource Boutput C

Step ps2source Csource Doutput E

Step ps3source E

Product

Processing and Algorithm Descriptions

ISO Lineage

DQ_Lineage (19115-2)

MI_Metadata

+ lineage 0..1

LI_Lineage

+ statement [0..1] : CharacterString

LE_Source

+ description [0..1] : CharacterString+ scaleDenominator [0..1] : MD_RepresentativeFraction+ sourceReferenceSystem [0..1] : MD_ReferenceSystem+ sourceCitation [0..1] : CI_Citation+ sourceExtent [0..*] : EX_Extent+ processedLevel[0..1] : MD_Identifier+ resolution[0..1] : LE_NominalResolution+ sourcemetadata [0..*] : MD_Reference

LE_ProcessStep

+ description : CharacterString+ rationale [0..1] : CharacterString+ dateTime [0..1] : DateTime+ processor [0..*] : CI_ResponsibleParty+ extent [0..*] : EX_Extent+ reference [0.*] : CI_Citation

+ source 0..* + processStep 0..*

+ output, source0..*

If(count(source) + count(processStep) =0) and(DQ_DataQuality.cope.level = 'dataset' or 'series')then statement is mandatory

LE_Processing

+ identifier : MD_Identifier+ softwareReference[0..*] : CI_Citation+ procedureDescription[0..1] : CharacterString+ documentation[0..*] : CI_Citation+ runTimeParameters[0..1] : CharacterString

LE_Algorithm

+ citation: CI_Citation+ description : CharacterString

+ processingInformation0..*

+ algorithm 0..*LE_ProcessStepReport

+ name : CharacterString+ description[0..1] : CharacterString+ fileType[0..1] : CharacterString

+ report 0..*

+ sourceStep0..*

References

XML Attributes: Objects and References<gmd:lineage>

<gmi:LI_Lineage><gmd:processStep id="ps1">

<source xlink:href="#A"/><source xlink:href="#B"/><output xlink:href="#C"/>

</gmd:processStep><gmd:processStep id="ps2">

<source xlink:href="#C"/><source xlink:href="#D"/><output xlink:href="#E"/>

</gmd:processStep><gmd:processStep id="ps3">

<source xlink:href="#e"/></gmd:processStep><gmd:source id="A"><gmd:sourceStep xlink:href="ps1"/></gmd:source><gmd:source id="B"><gmd:sourceStep xlink:href="ps1"/></gmd:source><gmd:source id="C"><gmd:sourceStep xlink:href="ps2"/></gmd:source><gmd:source id="D"><gmd:sourceStep xlink:href="ps2"/></gmd:source><gmd:source id="E"><gmd:sourceStep xlink:href="ps3"/></gmd:source>

</gmi:LI_Lineage></gmd:lineage>

DQ_Scope

Attributes:role [how many] : object type

how many = [minimum..maximum]minimum = 0: optionalminimum = 1: required* = any number

how many = blank: required, onehow many = [1..*] : required, any numberhow many = [1..2] : required, one or twohow many = [0..1] : optional, zero or onehow many = [0..*] : optional, any number

Type: package abbreviation_type

UML package abbreviation =XML namespace = Document section

Role: what this object does for mecontact: CI_ResponsiblePartydescription: CharacterString

Operations: generally not used in ISO UML

UML.1

<<DataType>>DQ_Scope

+ level : MD_ScopeCode + extent [0..1] : EX_Extent + levelDescription [0..*] : MD_ScopeDescription

UML.2

<<DataType>>DQ_Scope =the DQ_Scopeis a DataTypein the Data Quality (DQ) Package

level : MD_ScopeCode = a DQ_Scope must have one level which is a MD_ScopeCode

extent [0..1] : EX_Extent = a DQ_Scope can have up to 1 extent which is an

EX_Extent

levelDescription [0..*] : MD_ScopeDescription = a DQ_Scope can have up to 1

levelDescription which is a MD_ScopeDescription

DQ_Scope<<DataType>>

DQ_Scope

+ level : MD_ScopeCode + extent [0..1] : EX_Extent + levelDescription [0..*] : MD_ScopeDescription

<<CodeList>>MD_ScopeCode

+ attribute + feature + attributeType + featureType+ collectionHardware + propertyType+ collectionSession + fieldSession+ dataset + software+ series + service+ nonGeographicDataset + model+ dimensionGroup + tile

<<Union>>MD_ScopeDescription

+ attributes : Set<GF_AttributeType> + features : Set<GF_FeatureType> + featureInstances : Set<GF_FeatureType> + attributeInstances : Set<GF_AttributeType> + dataset : CharacterString + other : CharacterString

Abstract Dessert

<<DataType>>EX_Extent

+description [0..1]: Character String

EX_BoundingPolygon

+polygon [0..1]: GM_Object

EX_GeographicBoundingBox+westBoundingLongitude: Decimal+eastBoundingLongitude: Decimal+southBoundingLatiitude: Decimal+northBoundingLatiitude: Decimal

EX_GeographicDescription

+geographicIdentifier: MD_Identifier

EX_VerticalExtent+minimumValue: Real+maximumValue: Real

EX_TemporalExtent+extent: TM_Primitive

EX_SpatialTemporalExtent

<<Abstract>>EX_GeographicExtent

+extentTypeCode [0..1]: Boolean="1"

count(description + geographicElement + temporalElement + verticalElement) > 0

EX_Extent

DQ_StandAloneReport

MI_Metadata

StandAloneReport

DQ_DataQuality

+ scope : DQ_Scope+ standAloneReport

0..1

DQ_StandaloneReportInformation

+ reportReference : CI_Citation+ abstract: CharacterString

Global or Variable Attribute:<attribute name="references" value="GOES-R Product Definition and Users Guide for Geostationary Operational Environmental Satellite R-Series (GOES-R) Core Ground Segment"/>

<variable name="Band_1" shape="Time Latitude Longitude" type="float"> <attribute name="long_name" value="Band 1" /> <attribute name="valid_min" value="0" /> <attribute name="valid_max" value="255" /> <attribute name="units" value="counts" /> <attribute name="standard_name" value="band_1" /> <attribute name="scale_factor" value="0.1" /> <attribute name="number_of_good_calibration_points" value="19880" /> <attribute name="number_of_good_navigation_points" value="19880" /> <attribute name="number_of_good_overall_points" value="19880" /> <attribute name="reflectance_actual_range" type="int" value="-18 323" /> <attribute name="reflectance_Sample_Size" type="int" value="50760" /> <attribute name="reflectance_Mean" type="float" value="116.12569" /> <attribute name="reflectance_Standard_Deviation" type="float" value="114.663765" /> <attribute name="radiance_actual_range" type="int" value="-18 323" /> <attribute name="radiance_Sample_Size" type="int" value="50760" /> <attribute name="radiance_Mean" type="float" value="116.12569" /> <attribute name="radiance_Standard_Deviation" type="float" value="114.663765" /> <attribute name="brightness_temperature_actual_range" type="int" value="-18 323" /> <attribute name="brightness_temperature_Sample_Size" type="int" value="50760" /> <attribute name="brightness_temperature_Mean" type="float" value="116.12569" /> <attribute name="brightness_temperature_Standard_Deviation" type="float" value="114.663765" /> </variable>

Level 2 Metadata (NcML)

<variable name="Band_1" shape="Time Latitude Longitude" type="float"><attribute name="long_name" value="Band 1" /><attribute name="valid_min" value="0" /><attribute name="valid_max" value="255" /><attribute name="units" value="counts" /><attribute name="standard_name" value="band_1" /><attribute name="scale_factor" value="0.1" /><attribute name="number_of_good_calibration_points" value="19880" /><attribute name="number_of_good_navigation_points" value="19880" /><attribute name="number_of_good_overall_points" value="19880" /><attribute name="reflectance_actual_range" type="int" value="-18 323" /><attribute name="reflectance_Sample_Size" type="int" value="50760" /><attribute name="reflectance_Mean" type="float" value="116.12569" /><attribute name="reflectance_Standard_Deviation" type="float" value="114.663765" /><attribute name="radiance_actual_range" type="int" value="-18 323" /><attribute name="radiance_Sample_Size" type="int" value="50760" /><attribute name="radiance_Mean" type="float" value="116.12569" /><attribute name="radiance_Standard_Deviation" type="float" value="114.663765" /><attribute name="brightness_temperature_actual_range" type="int" value="-18 323" /><attribute name="brightness_temperature_Sample_Size" type="int" value="50760" /><attribute name="brightness_temperature_Mean" type="float" value="116.12569" /><attribute name="brightness_temperature_Standard_Deviation" type="float" value="114.663765" /></variable>datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata datadata

getNcML

<!-- XML encoding of Variable object --> <xsd:element name="variable"> <xsd:complexType> <xsd:sequence> <xsd:element ref="attribute" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="values" minOccurs="0"/> <xsd:element ref="variable" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="logicalView" minOccurs="0"/> <xsd:element ref="remove" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:token" use="required"/> <xsd:attribute name="type" type="DataType"/> <xsd:attribute name="shape" type="xsd:token"/> <xsd:attribute name="orgName" type="xsd:string"/> </xsd:complexType> </xsd:element>

NcML Schema Type Definition

<gmd:dimension> <gmd: SampleDimension > <gmd:otherAttributeType> <gco:RecordType xlink:href="http://www.unidata.ucar.edu/schemas/netcdf/ncml-2.2.xsd #xpointer(//element[@name='variable'])">netCDF Variable Type</gco:RecordType> </gmd:otherAttributeType> <gmd:otherAttributeValue> <gco:Record xlink:href="http://www.ngdc.noaa.gov/ncmlService/granuleIdentifier #xpointer(/netcdf/variable[@name=MemberName])"> Attributes for variable = memberName in granule = granuleIdentifier</gco:Record> </gmd:otherAttributeValue> </gmd: SampleDimension ></gmd: dimension >

Level 2 Metadata (ISO)RecordType

Record

<<DataType>>DQ_Scope

+ level : MD_ScopeCode + extent [0..1] : EX_Extent + levelDescription [0..*] :

MD_Metadata

DQ_DataQuality - 19115

LI_Lineage

<<Abstract>>DQ_Element

+ nameOfMeasure [0..*] : CharacterString + measureIdentification [0..1] : MD_Identifier + measureDescription [0..1] : CharacterString + evaluationMethodType [0..1] : DQ_EvaluationMethodTypeCode + evaluationMethodDescription [0..1] : CharacterString + evaluationProcedure [0..1] : CI_Citation + dateTime [0..*] : DateTime + result [1..2] : DQ_Result

DQ_ConformanceResult

+ specification : CI_Citation+ explanation : CharacterString+ pass : Boolean

<<CodeList>>MD_EvaluationMethodTypeCode

+ directInternal + directExternal+ indirect

DQ_DataQuality

+ scope : DQ_Scope+ lineage 0..1

DQ_QuantitativeResult

+ valueType [0..1] : RecordType + valueUnit : UnitOfMeasure + errorStatistic [0..1] : CharacterString + value [1..*] : Record

"report" or "linage" role is mandatory if scope.DQ_Scope.level = 'dataset'

"levelDescription" is mandatory if "level" notEqual 'dataset' or 'series'

<<Abstract>>DQ_Result

<<CodeList>>MD_ScopeCode

+ attribute + feature + attributeType + featureType+ collectionHardware + propertyType+ collectionSession + fieldSession+ dataset + software+ series + service+ nonGeographicDataset + model+ dimensionGroup + tile

DQ_CoverageResult

+ report 0..*

<<DataType>>DQ_Scope

+ level : MD_ScopeCode + extent [0..1] : EX_Extent + levelDescription [0..*] :

MD_Metadata

DQ_DataQuality

<<Abstract>>DQ_Element

+ nameOfMeasure [0..*] : CharacterString + measureIdentification [0..1] : MD_Identifier + measureDescription [0..1] : CharacterString + evaluationMethodType [0..1] : DQ_EvaluationMethodTypeCode + evaluationMethodDescription [0..1] : CharacterString + evaluationProcedure [0..1] : CI_Citation + dateTime [0..*] : DateTime + result [1..2] : DQ_Result

DQ_ConformanceResult

+ specification : CI_Citation+ explanation : CharacterString+ pass : Boolean

<<CodeList>>MD_EvaluationMethodTypeCode

+ directInternal + directExternal+ indirect

DQ_DataQuality

+ scope : DQ_Scope+ standAloneReport 0..1

DQ_QuantitativeResult

+ valueType [0..1] : RecordType + valueUnit : UnitOfMeasure + errorStatistic [0..1] : CharacterString + value [1..*] : Record

"report" or "linage" role is mandatory if scope.DQ_Scope.level = 'dataset'

"levelDescription" is mandatory if "level" notEqual 'dataset' or 'series'

<<Abstract>>DQ_Result

<<CodeList>>MD_ScopeCode

+ attribute + feature + attributeType + featureType+ collectionHardware + propertyType+ collectionSession + fieldSession+ dataset + software+ series + service+ nonGeographicDataset + model+ dimensionGroup + tile

DQ_CoverageResult

+ report 0..*

DQ_StandaloneReportInformation

+ reportReference : CI_Citation+ abstract: CharacterString

<<DataType>>DQ_Scope

+ level : MD_ScopeCode + extent [0..1] : EX_Extent + levelDescription [0..*] :

MI_Metadata

DQ_DataQuality - 19157

<<Abstract>>DQ_Element

DQ_ConformanceResult

+ specification : CI_Citation+ explanation : CharacterString+ pass : Boolean

<<CodeList>>MD_EvaluationMethodTypeCode

+ directInternal + directExternal+ indirect

DQ_DataQuality

+ scope : DQ_Scope+ standAloneReport 0..1

DQ_QuantitativeResult

+ valueType [0..1] : RecordType + valueUnit : UnitOfMeasure + errorStatistic [0..1] : CharacterString + value [1..*] : Record

<<CodeList>>MD_ScopeCode

+ attribute + feature + attributeType + featureType+ collectionHardware + propertyType+ collectionSession + fieldSession+ dataset + software+ series + service+ nonGeographicDataset + model+ dimensionGroup + tile

DQ_CoverageResult

+ report 0..*

DQ_StandaloneReportInformation

+ reportReference : CI_Citation+ abstract: CharacterString

DQ_MeasureReference DQ_Evaluation DQ_Result

+ resultScope: DQ_Scope [0..1]

DQ_DescriptiveResult

DQ_Element<<Abstract>>DQ_Element

+ nameOfMeasure [0..*] : CharacterString + measureIdentification [0..1] : MD_Identifier + measureDescription [0..1] : CharacterString + evaluationMethodType [0..1] : DQ_EvaluationMethodTypeCode + evaluationMethodDescription [0..1] : CharacterString + evaluationProcedure [0..1] : CI_Citation + dateTime [0..*] : DateTime + result [1..2] : DQ_Result

DQ_MeasureReference

DQ_MeasureReference

+ measureIdentification: MD_Identifier [0..1]+ nameOfMeasure: CharacterString [0..*]+ measureDescription: CharacterString [0..1]

Measure Registry / Database

Data Quality - Granules

<group name="Quality:ScalarInformation"> <attribute name="volcanic_ash_mass_loading:Total_mass_of_volcanic_ash" value="1" type="float"/> <attribute name="volcanic_ash_mass_loading:Mean_ash_mass_loading_in_scene" value="1" type="float"/> <attribute name="volcanic_ash_mass_loading:Minimum_ash_mass_loading_value_in scene" value="1" type="float"/> <attribute name="volcanic_ash_mass_loading:Maximum_ash_mass_loading_value_in scene" value="1" type="float"/> <attribute name="volcanic_ash_mass_loading:Standard_deviation_ash_mass_loading_value_in scene" value="1" type="float"/> <attribute name="volcanic_ash_mass_loading:Mean_ash_cloud_height_in_scene" value="1" type="float"/> <attribute name="volcanic_ash_mass_loading:Minimum_ash_cloud_height_in scene" value="1" type="float"/> <attribute name="volcanic_ash_mass_loading:Maximum_ash_cloud_height_in scene" value="1" type="float"/> <attribute name="ash_cloud_height:count_cloud_temperature_high_quality" value="1024" type="int"/> <attribute name="ash_cloud_height:count_cloud_temperature_medium_quality" value="145" type="int"/> <attribute name="ash_cloud_height:count_cloud_temperature_low_quality" value="0" type="int"/> <attribute name="ash_cloud_height:count_cloud_emissivity_high_quality" value="1024" type="int"/> <attribute name="ash_cloud_height:count_cloud_emissivity_medium_quality" value="145" type="int"/> <attribute name="ash_cloud_height:count_cloud_emissivity_low_quality" value="0" type="int"/> <attribute name="ash_cloud_height:count_cloud_emissivity_high_quality" value="1024" type="int"/> <attribute name="ash_cloud_height:count_cloud_emissivity_medium_quality" value="145" type="int"/> <attribute name="ash_cloud_height:count_cloud_emissivity_low_quality" value="0" type="int"/> <attribute name="ash_cloud_height:count_beta_high_quality" value="1024" type="int"/> <attribute name="ash_cloud_height:count_beta_medium_quality" value="145" type="int"/> <attribute name="ash_cloud_height:count_beta_quality" value="0" type="int"/> <attribute name="ash_cloud_height:count_attempted_ash_retrievals" value="1024" type="int"/> </group>

<attribute name="variable:measureName" value="result" type="float"/>

DQ_Element

<<Abstract>>DQ_Element

+ nameOfMeasure [0..*] : CharacterString + measureIdentification [0..1] : MD_Identifier + measureDescription [0..1] : CharacterString + evaluationMethodType [0..1] : DQ_EvaluationMethodTypeCode + evaluationMethodDescription [0..1] : CharacterString + evaluationProcedure [0..1] : CI_Citation + dateTime [0..*] : DateTime + result [1..2] : DQ_Result

<<Abstract>>DQ_Element

+ measure [0..*] : DQ_MeasureReference + evaluation [0..1] : DQ_Evaluation + result [1..2] : DQ_Result

DQ_MeasureReference

+ measureIdentification: MD_Identifier [0..1]+ nameOfMeasure: CharacterString [0..*]+ measureDescription: CharacterString [0..1]

DQ_Result

DQ_ConformanceResult

+ specification : CI_Citation+ explanation : CharacterString+ pass : Boolean

DQ_QuantitativeResult

+ valueType [0..1] : RecordType + valueUnit : UnitOfMeasure + errorStatistic [0..1] : CharacterString + value [1..*] : Record

DQ_DescriptiveResult

+ statement: CharacterString

QE_CoverageResult

+ resultFile : MX_DataFile+ resultFormat: MD_Format+ resultContentDescription: MD_CoverageDescription+ resultSpatialRepresentation: MD_SpatialRepresentation+ spatialRepresentationType : MD_SpatialRepresentationTypeCode

DQ_Result

+ resultScope: DQ_Scope [0..1]

DQ_QuantitativeResult+ valueType [0..1] : RecordType + valueUnit : UnitOfMeasure + errorStatistic [0..1] : CharacterString + value [1..*] : Record

DQ_DescriptiveResult+ statement: CharacterString

QE_CoverageResult+ spatialRepresentationType : MD_SpatialRepresentationTypeCode

MD_Band

+ peakResponse [0..1] : Real + bitsPerValue [0..1] : Integer + toneGradation [0..1] : Integer

MI_CoverageDescription RevisionsMD_Metadata

+contentInfo 0..*

<<CodeList>>MD_CoverageContentTypeCode

+ image + thematicClassification + physicalMeasurement + referenceInformation+ qualityInformation + auxilliaryData+ modelResult

MD_CoverageDescription

+ attributeDescription : RecordType + contentType [1.*]: MD_CoverageContentTypeCode+ processingLevelCode [0..1]: MD_Identifier

+dimension 0..*

MI_RangeElementDescription

+ name : CharacterString+ definition : CharacterString+ rangeElement[1..*] : Record

+rangeElementDescription 0..*

MD_SampleDimension

+ minValue [0..1] : Real + maxValue [0..1] : Real+ units [0..1] : UnitOfMeasure+ scaleFactor [0..1] : Real + offset [0..1] : Real+ numberOfValues [0..1] : Integer+ meanValue [0..1] : Real+ standardDeviation [0..1] : Real+ otherAttributeType [0..1] : RecordType+ otherAttribute [0..1] : Record

MD_RangeDimension

+ sequenceIdentifier [0..1] : MemberName+ name[0..*]: MD_Identifier + description [0..1] : CharacterString

minValue, maxValue and units must have units of length. RangeElement, otherAttributeType, and other Attribute have cardinality [0..0]

+rangeElementDescription

0..*

DQ_Evaluation

DQ_Evaluation

+ dateTime: DateTime [0..*]+ evaluationMethodDescription: CharacterString [0..1]+ evaluationProcedure: CI_Citation [0..1]+ referenceDoc: CI_Citation [0..*]+ evaluationMethodType: DQ_EvaluationMethodTypeCode [0..1]

DQ_DataEvaluation DQ_Aggregation

+ sourceQualityResult: CharacterString [2..*]

DQ_FullInspection DQ_SamplebasedInspection

+ samplingScheme: CharacterString+ lotDescription: CharacterString+ samplingRatio: CharacterString

DQ_IndirectEvaluation

<<CodeList>>DQ_EvaluationMethodTypeCode

+ directInternal+ directExternal+ indirect

DQ_Evaluation

DQ_Result