water data in the unified modeling language

17
Water Data in the Unified Modeling Language Xitian Cai Center for Research in Water Resources The University of Texas at Austin

Upload: wylie

Post on 25-Feb-2016

32 views

Category:

Documents


1 download

DESCRIPTION

Water Data in the Unified Modeling Language. Xitian Cai. Center for Research in Water Resources The University of Texas at Austin. CUAHSI-HIS Status. Facilitate better interoperability and promote better dissemination, understanding and collaboration between water data users - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Water Data in the  Unified Modeling Language

Water Data in the Unified Modeling Language

Xitian Cai

Center for Research in Water ResourcesThe University of Texas at Austin

Page 2: Water Data in the  Unified Modeling Language

CUAHSI-HIS Status

• Facilitate better interoperability and promote better dissemination, understanding and collaboration between water data users

• Make possible access to hydrological data sets by other interested domains

• OGC Hydrology working group; World Meteorological Organization (WMO)

• An international standard• UML

Page 3: Water Data in the  Unified Modeling Language

WaterML

LocationsVariable Codes

Date Ranges

GetSiteInfoGetVariableInfoGetValues

WaterOneFlowWeb Service

Client

STORET

NAMNWIS

DataRepositories

Data

DataData

EXTRACTTRANSFORMLOAD

WaterML

WaterML is an XML language for communicating water data(Maidment, 2007)

Page 4: Water Data in the  Unified Modeling Language

eXtensible Markup Language (XML)

• XML was designed to transport and store data

• Environmental Markup Language (EML) • Earth Science Markup Language (ESML)• Mathematical Markup Language (MathML)• Field Data Markup Language  (FDML)• Geography Markup Language (GML)

Page 5: Water Data in the  Unified Modeling Language

Previous Work

Page 6: Water Data in the  Unified Modeling Language

Enterprise Architect

Page 7: Water Data in the  Unified Modeling Language

class CuahsiTimeSeries _v1_0

«XSDcomplexType»SiteInfoType

«XSDelement»+ siteName: string+ elevation_m: double [0..1]+ verticalDatum: string [0..1]+ altname: string

«XSDcomplexType»SiteInfoType::siteCode

«XSDattribute»+ defaultId: boolean+ network: normalizedString+ siteID: normalizedString+ agencyCode: normalizedString+ agencyName: normalizedString

string

«XSDsimple...string

«XSDcompl ...SiteInfoType::geoLocation

«XSDcomplexType»SiteInfoType::geoLocation::

localSiteXY

«XSDelement»+ X: double+ Y: double+ Z: double [0..1]

«XSDattribute»+ projectionInformation: string

«XSDcomplexType»TsValuesSingleVariableType

«XSDattribute»+ timeZoneShiftApplied: boolean+ count: nonNegativeInteger+ unitsAreConverted: boolean

«XSDcompl ...VariableInfoType

«XSDsequence»ModelGroup1

«XSDelement»+ variableName: string [0..1]+ variableDescription: string [0..1]+ NoDataValue: string [0..1]

«XSDcompl ...ModelGroup1::

related

«XSDcompl ...ModelGroup1::

related::parentID

«XSDcompl...ModelGroup1::

related::relatedID

«XSDcomplexType»ModelGroup1::timeSupport

«XSDelement»+ timeInterval: int [0..1]«XSDattribute»+ isRegular: boolean

«XSDcomplexType»QueryInfoType

«XSDelement»+ creationTime: dateTime [0..1]+ queryURL: string [0..1]+ querySQL: string [0..1]

«XSDcomplexType»QueryInfoType::criteria

«XSDelement»+ locationParam: string [0..1]+ variableParam: string [0..1]

«XSDcomplexType»QueryInfoType::criteria::

timeParam

«XSDelement»+ beginDateTime: string [0..1]+ endDateTime: string [0..1]

«XSDtopLev...variables

«XSDcomplexT...variables::

ComplexTypeClass1

«XSDattributeGr...VocabularyAttributes

«XSDattribute»+ network: string+ vocabulary: string+ default: boolean

«XSDattributeGroup»DbIdentifiers

«XSDattribute»+ oid: normalizedString+ metadataDateTime: dateTime

«XSDtopLev...timeZoneInfo

«XSDcomplexType»timeZoneInfo::ComplexTypeClass2

«XSDattribute»+ siteUsesDaylightSavingsTime: boolean

«XSDcomplexTy.. .timeZoneInfo::

ComplexTypeClass2::defaultTimeZone

«XSDcomplexType»timeZoneInfo::

ComplexTypeClass2::daylightSavingsTimeZone

«XSDattributeGroup»ValueAttr

«XSDattribute»+ qualifiers: string+ dateTime: dateTime+ methodID: int+ sourceID: int+ accuracyStdDev: double+ codedVocabulary: boolean+ codedVocabularyTerm: string+ sampleID: int

«XSDattributeGroup»timeZoneAttr

«XSDattribute»+ ZoneAbbreviation: normalizedString+ ZoneOffset: string

«XSDtopLev...optionGroup

«XSDcomplexT...optionGroup::

ComplexTypeClass3

«XSDcomplexT...DocumentationType

token

«XSDunion»DocumentationEnumTypes

«enumeration»DocumentationEnumTypes::

SimpleTypeClass1

funding history processing_level rights summary

«XSDattribut...XLinkAttr

«XSDattribute»+ href: string+ title: string+ show: string

«XSDtopLev...options

«XSDcomplexT...options::

ComplexTypeClass4

«XSDcompl .. .SourceInfoType

«XSDcomplexType»DataSetInfoType

«XSDelement»+ dataSetIdentifier: string+ dataSetDescription: string

«XSDtopLev.. .datasetInfo

«XSDcompl ...TimePeriodType

«XSDcomplexType»TimeIntervalType

«XSDelement»+ beginDateTime: dateTime+ endDateTime: dateTime

«XSDcomplexType»TimeSingleType

«XSDelement»+ timeSingle: dateTime+ beginDateTime: dateTime+ endDateTime: dateTime

«XSDcomplexType»TimePeriodRealTimeType

«XSDelement»+ realTimeDataPeriod: duration+ beginDateTime: dateTime+ endDateTime: dateTime

«XSDcompl...GeogLocationType

«XSDattribute»+ srs: string

«XSDcompl...LatLonPointType

«XSDtopLev...latLonPoint

«XSDcompl...LatLonBoxType

«XSDtopLev...latLonBox

double

«XSDsimple...Longitude

double

«XSDsimple...Latitude

«XSDcomplexType»seriesCatalogType

«XSDattribute»+ menuGroupName: string+ serviceWsdl: anyURI

«XSDcomplex...seriesCatalogType::

series

«XSDcomplexType»seriesCatalogType::series::

valueCount

«XSDattribute»+ countIsEstimated: boolean

int

«XSDsimple.. .int

«XSDattributeGroup»offsetAttr

«XSDattribute»+ offsetValue: double+ offsetTypeID: int+ offsetDescription: string+ offsetUnitsAbbreviation: string+ offsetUnitsCode: string

«enumeratio...CensorCodeEnum

lt gt nc nd pnq

«XSDcompl ...QualifiersType

«XSDcomplexType»QualifiersType::qualifier

«XSDelement»+ qualifierCode: token«XSDattribute»+ qualifierID: int

«XSDcompl...TimeSeriesType

«XSDattribute»+ name: string

«XSDtopLevelE...variablesResponse

«XSDtopLevelEl ...timeSeriesResponse

«XSDtopLev...sitesResponse

«XSDcompl...NoteType

«XSDattribute»+ type: string

«XSDtopLev...option

«XSDcomplexType»option::ComplexTypeClass5

«XSDattribute»+ name: normalizedString+ optionID: integer+ optionCode: token

«XSDtopLev...variableCode

«XSDcomplexType»variableCode::

ComplexTypeClass6

«XSDattribute»+ variableID: integer

«XSDtopLev...units

«XSDcomplexT...units::

ComplexTypeClass7

«XSDattributeGroup»unitsAttr

«XSDattribute»+ unitsAbbreviation: normalizedString+ unitsCode: token

«enumeration»UnitsTypeEnum

Angle Area Dimensionless Energy Energy Flux Flow Force Frequency Length Light Mass Permeability Power Pressure/Stress Resolution Scale Temperature Time Velocity Volume

«XSDcomplexTy...ValueSingleVariable

decimal

«XSDsimple...decimal

«XSDtopLev.. .qualifier

«XSDcomplexType»QualifiersType::qualifier::

ComplexTypeClass8

«XSDattribute»+ qualifierCode: token+ qualifierID: integer

anyType

«XSDtopLev...extension

«XSDcomplexType»VariablesResponseType

«XSDcomplexType»TimeSeriesResponseType

«XSDcomplexTyp...SiteInfoResponseType

«XSDtopLev...site

«XSDcomplexT.. .site::

ComplexTypeClass9

«enumeration»QualityControlLevelEnum

Raw data Quality controlled data Derived products Interpreted products Knowledge products Unknown

«XSDtopLevel...qualityControlLevel

«XSDcomplexType»qualityControlLevel::ComplexTypeClass10

«XSDelement»+ qualityControlLevelID: normalizedString«XSDattribute»+ qualityControlLevelCode: string

«XSDcomplexType»QualityControlLevelType

«XSDattribute»+ qualityControlLevelID: int

«enumeration»SampleMediumEnum

Surface Water Ground Water Sediment Soil Air Tissue Precipitation Unknown Other Snow Not Relevant

«enumeration»generalCategoryEnum

Water Quality Climate Hydrology Geology Biota Unknown Inst rumentation

«enumeration»dataTypeEnum

Continuous Instantaneous Cumulative Incremental Average Maximum Minimum Constant Over Interval Categorical Best Easy Systematic Estimator Unknown Variance Median Mode Best Easy Systematic Estimator Standard Deviat ion Skewness Equivalent Mean Sporadic Unknown

«enumeratio...sampleTypeEnum

FD FF FL LF GW PB PD PE PI PW RE SE SR SS SW TE TI TW VE VI VW Grab Unknown No Sample

«enumeration»valueTypeEnum

Field Observation Sample Model Simulation Result Derived Value Unknown

«XSDcomplexType»UnitsType

«XSDelement»+ UnitName: string+ UnitDescription: string+ UnitAbbreviation: string

«XSDattribute»+ UnitID: int

«XSDcomplexType»MethodType

«XSDelement»+ MethodDescription: string+ MethodLink: string

«XSDattribute»+ methodID: int

«XSDcomplexType»SampleType

«XSDelement»+ labSampleCode: string«XSDattribute»+ sampleID: int

«XSDcomplexType»LabMethodType

«XSDelement»+ labName: string [0..1]+ labOrganization: string [0..1]+ LabMethodName: string [0..1]+ labMethodDescription: string [0..1]+ labMethodLink: string

«XSDattribute»+ labMethodID: int

«XSDcomplexType»SourceType

«XSDelement»+ Organization: string [0..1]+ SourceDescription: string [0..1]+ SourceLink: anyURI [0..1]

«XSDattribute»+ sourceID: int

«XSDcomplexType»ContactInformationType

«XSDelement»+ ContactName: string+ TypeOfContact: string [0..1]+ Phone: string [0..1]+ Email: string [0..1]+ Address: anyType [0..1]

«XSDcomplexType»MetaDataType

«XSDelement»+ TopicCategory: string [0..1]+ Title: string [0..1]+ Abstract: string [0..1]+ ProfileVersion: string [0..1]+ MetadataLink: anyURI [0..1]

«XSDcomplexType»OffsetType

«XSDelement»+ offsetValue: float+ offsetDescription: string+ offsetIsVertical: boolean [0..1]+ offsetHorizDirectionDegrees: int [0..1]

«XSDattribute»+ offsetTypeID: int

«XSDextension»

«XSDextension»

+note 1..*

1..1

+variable

0..*

+censorCode«XSDattribute»

+qualityControlLevel«XSDattribute»

1..*+type«XSDattribute»

1..1

0..1

0..*

0..1

+note

0..*

+dataSetLocation

0..11..1

«XSDextension» «XSDextension» «XSDextension»

«XSDextension»

+latitude 1..1 +longitude 1..1

«XSDextension»

«XSDextension»

0..1 +geogLocation 1..1

+note

0..*+note 0..*

1..1

+value

1..*0..*0..*

+method

0..*

+unit

0..1

+offset

0..*

+south 1..11..*

+valueType

0..1

+dataType

0..1+generalCategory

0..1

+sampleMedium 0..1

0..10..1

+note

0..*

«XSDextension»«XSDextension»

+source

0..*

+queryInfo

1..1

+unitsType«XSDattribute»

«XSDextension»

«XSDextension»

+queryInfo 1..11..1

«XSDextension»

+timeSeries

1..1

0..*

+siteInfo

1..1

+seriesCatalog 1..*

1..1

«XSDextension»

+UnitType

1..1

+SampleType

1..1

+LabMethod 0..1

+Metadata 0..1+ContactInformation 0..1

+queryInfo 1..1+Source 0..1

+west 1..1+north 1..1 +east 1..1

+note

0..*+dataType

0..1

+variable

1..1

«XSDextension»

+variableTimeInterval

1..1

+valueType 0..1+general Category 0..1

+Method

0..1

1..1 +QualityControlLevel 0..1+sourceInfo 1..1

+variable

1..1 +values

1..1

«XSDextension»«XSDextension»

«XSDextension»

+sampleMedium 0..1

Page 8: Water Data in the  Unified Modeling Language

class CuahsiTimeSeries_v1_0C...

Time and Measured Values

UnitsWeb Method Queries

Variables

Space

«XSDcomplexType»SiteInfoType

«XSDelement»+ altname: string+ elevation_m: double [0..1]+ siteName: string+ verticalDatum: string [0..1]

«XSDcomplexType»TsValuesSingleVariableType

«XSDattribute»+ count: nonNegativeInteger+ timeZoneShiftApplied: boolean+ unitsAreConverted: boolean

«XSDcomplexTyp...VariableInfoType

«XSDsequence»ModelGroup1

«XSDelement»+ NoDataValue: string [0..1]+ variableDescription: string [0..1]+ variableName: string [0..1]

«XSDcomplexType»ModelGroup1::

timeSupport

«XSDattribute»+ isRegular: boolean

«XSDelement»+ timeInterval: int [0..1]

«XSDcomplexType»QueryInfoType

«XSDelement»+ creationTime: dateTime [0..1]+ querySQL: string [0..1]+ queryURL: string [0..1]

«XSDtopLev...variables

«XSDcomplexTyp...variables::

ComplexTypeClass1

«XSDattributeGroup»DbIdentifiers

«XSDattribute»+ metadataDateTime: dateTime+ oid: normalizedString

«XSDtopLevelElement»timeZoneInfo

«XSDtopLevelElement»options

«XSDcomplexType»SourceInfoType

«XSDcomplexType»DataSetInfoType

«XSDelement»+ dataSetDescription: string+ dataSetIdentif ier: string

«XSDtopLevelElement»datasetInfo

«XSDcomplexType»TimePeriodType

«XSDcomplexType»GeogLocationType

«XSDattribute»+ srs: string

«XSDcomplexType»seriesCatalogType

«XSDattribute»+ menuGroupName: string+ serviceWsdl: anyURI

«XSDcomplexType»seriesCatalogType::series

«XSDcomplexType»TimeSeriesType

«XSDattribute»+ name: string

«XSDtopLevelE...variablesResponse

«XSDtopLevelElem...timeSeriesResponse

«XSDtopLevelElement»sitesResponse

«XSDtopLevelElement»variableCode

string

«XSDcomplexType»units::

ComplexTypeClass7

«XSDattributeGroup»unitsAttr

«XSDattribute»+ unitsAbbreviation: normalizedString+ unitsCode: token

«enumeration»UnitsTypeEnum

Angle Area Dimensionless Energy Energy Flux Flow Force Frequency Length Light Mass Permeability Pow er Pressure/Stress Resolution Scale Temperature Time Velocity Volume

decimal

«XSDcomplexType»ValueSingleVariable

«XSDtopLevelElement»qualifier

«XSDcomplexType»VariablesResponseType

«XSDcomplexType»TimeSeriesResponseType

«XSDcomplexType»SiteInfoResponseType

«XSDtopLevelElement»site

«XSDcomplexType»site::ComplexTypeClass9

«XSDtopLevelElement»qualityControlLevel

string

«XSDcomplexType»QualityControlLevelType

«XSDattribute»+ qualityControlLevelID: int

«enumeration»SampleMediumEnum

Surface Water Ground Water Sediment Soil Air Tissue Precipitation Unknow n Other Snow Not Relevant

«enumeration»generalCategoryEnum

Water Quality Climate Hydrology Geology Biota Unknow n Instrumentation

«enumeration»dataTypeEnum

Continuous Instantaneous Cumulative Incremental Average Maximum Minimum Constant Over Interval Categorical Best Easy Systematic Estimator Unknow n Variance Median Mode Best Easy Systematic Estimator Standard Deviation Skew ness Equivalent Mean Sporadic Unknow n

«enumeration»valueTypeEnum

Field Observation Sample Model Simulation Result Derived Value Unknow n

«XSDcomplexType»UnitsType

«XSDelement»+ UnitAbbreviation: string+ UnitDescription: string+ UnitName: string

«XSDattribute»+ UnitID: int

«XSDcomplexType»MethodType

«XSDelement»+ MethodDescription: string+ MethodLink: string

«XSDattribute»+ methodID: int

«XSDcomplexType»SourceType

«XSDelement»+ Organization: string [0..1]+ SourceDescription: string [0..1]+ SourceLink: anyURI [0..1]

«XSDattribute»+ sourceID: int «XSDcomplexType»

OffsetType

«XSDelement»+ of fsetDescription: string+ of fsetHorizDirectionDegrees: int [0..1]+ of fsetIsVertical: boolean [0..1]+ of fsetValue: f loat

«XSDattribute»+ of fsetTypeID: int

1..*

+dataSetLocation 0..1 0..1

«XSDextension»

+variable

0..*

+unit 0..1

0..1

+sampleMedium

0..1

+generalCategory

0..1

«XSDextension»

+valueType

0..1

+variableTimeInterval

1..1

+offset 0..*

+source

0..*

+method

0..*

0..*

0..*

+value

1..*

0..1

+dataType

0..1

+seriesCatalog 1..*

+siteInfo

1..1

0..*

+queryInfo

1..1

+timeSeries 1..1

+queryInfo

1..1

1..1

+queryInfo

1..1

+unitsType«XSDattribute»

+dataType

0..1

+variable

1..1

+values

1..1

+variable 1..1

+sourceInfo

1..1

+QualityControlLevel 0..1

+Source 0..1

+Method

0..1

+sampleMedium

0..1

+generalCategory

0..1

+valueType

0..1

+UnitType

1..1

Page 9: Water Data in the  Unified Modeling Language

Web Method Queries

Page 10: Water Data in the  Unified Modeling Language

Space (Site)

Page 11: Water Data in the  Unified Modeling Language
Page 12: Water Data in the  Unified Modeling Language
Page 13: Water Data in the  Unified Modeling Language

class ODM...

Data Qualifiers

Data Collection Methods

Data Sources

Value Grouping

ODM Version

Observation Values

Variables

OffsetsUnits

Monitoring Site Locations

Categories

«column»*FK VariableID: int* DataValue: float* CategoryDescription: nvarchar(MAX)

«FK»+ FK_Categories_Variables(int)

CensorCodeCV

«column»*PK Term: nvarchar(50) Definition: nvarchar(MAX)

«PK»+ PK_CensorCodeCV_Term(nvarchar)

«check»+ CK_CensorCodeCV_Term()

DataTypeCV

«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)

«PK»+ PK_DataTypeCV_Term(nvarchar)

«check»+ CK_DataTypeCV_Term()

DataValues

«column»*PK ValueID: int* DataValue: float ValueAccuracy: f loat* LocalDateTime: datetime* UTCOffset: f loat* DateTimeUTC: datetime*FK SiteID: int*FK VariableID: int OffsetValue: float FK OffsetTypeID: int*FK CensorCode: nvarchar(50) = ('nc') FK Qualif ierID: int*FK MethodID: int = ((0))*FK SourceID: int FK SampleID: int DerivedFromID: int*FK QualityControlLevelID: int = ((-9999))

«PK»+ PK_DataValues_ValueID(int)

«unique»+ UNIQUE_DataValues(float, f loat, datetime, f loat, datetime, int, int, f loat, int, nvarchar, int, int, int, int, int, int)

«FK»+ FK_DataValues_CensorCodeCV(nvarchar)+ FK_DataValues_Methods(int)+ FK_DataValues_OffsetTypes(int)+ FK_DataValues_Qualif iers(int)+ FK_DataValues_QualityControlLevels(int)+ FK_DataValues_Samples(int)+ FK_DataValues_Sites(int)+ FK_DataValues_Sources(int)+ FK_DataValues_Variables(int)

DerivedFrom

«column»* DerivedFromID: int*FK ValueID: int

«FK»+ FK_DerivedFrom_DataValues(int)

GeneralCategoryCV

«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)

«PK»+ PK_GeneralCategoryCV_Term(nvarchar)

«check»+ CK_GeneralCategoryCV_Term()

GroupDescriptions

«column»*PK GroupID: int GroupDescription: nvarchar(MAX)

«PK»+ PK_GroupDescriptions_GroupID(int)

Groups

«column»*FK GroupID: int*FK ValueID: int

«FK»+ FK_Groups_DataValues(int)+ FK_Groups_GroupDescriptions(int)

ISOMetadata

«column»*PK MetadataID: int*FK TopicCategory: nvarchar(255) = ('Unknow n')* Title: nvarchar(255) = ('Unknow n')* Abstract: nvarchar(MAX) = ('Unknow n')* Prof ileVersion: nvarchar(255) = ('Unknow n') MetadataLink: nvarchar(500)

«PK»+ PK_ISOMetadata_MetadataID(int)

«check»+ CK_ISOMetadata_Title()+ CK_ISOMetadata_Prof ileVersion()

«FK»+ FK_ISOMetadata_TopicCategoryCV(nvarchar)

LabMethods

«column»*PK LabMethodID: int* LabName: nvarchar(255) = ('Unknow n')* LabOrganization: nvarchar(255) = ('Unknow n')* LabMethodName: nvarchar(255) = ('Unknow n')* LabMethodDescription: nvarchar(MAX) = ('Unknow n') LabMethodLink: nvarchar(500)

«PK»+ PK_LabMethods_LabMethodID(int)

«check»+ CK_LabMethods_LabName()+ CK_LabMethods_LabOrganization()+ CK_LabMethods_LabMethodName()

Methods

«column»*PK MethodID: int* MethodDescription: nvarchar(MAX) MethodLink: nvarchar(500)

«PK»+ PK_Methods_MethodID(int)

ODMVersion

«column»* VersionNumber: nvarchar(50)

«check»+ CK_ODMVersion_VersionNumber()

OffsetTypes

«column»*PK OffsetTypeID: int*FK OffsetUnitsID: int* OffsetDescription: nvarchar(MAX)

«PK»+ PK_OffsetTypes_OffsetTypeID(int)

«FK»+ FK_OffsetTypes_Units(int)

Qualifiers

«column»*PK Qualif ierID: int Qualif ierCode: nvarchar(50)* Qualif ierDescription: nvarchar(MAX)

«PK»+ PK_Qualif iers_Qualif ierID(int)

«check»+ CK_Qualif iers_Qualif ierCode()

QualityControlLevels

«column»*PK QualityControlLevelID: int* QualityControlLevelCode: nvarchar(50)* Definition: nvarchar(255)* Explanation: nvarchar(MAX)

«PK»+ PK_QualityControlLevels_QualityControlLevelID(int)

«check»+ CK_QualityControlLevels_QualityControlLevelCode()+ CK_QualityControlLevels_Definition()

SampleMediumCV

«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)

«PK»+ PK_SampleMediumCV_Term(nvarchar)

«check»+ CK_SampleMediumCV_Term()

Samples

«column»*PK SampleID: int*FK SampleType: nvarchar(255) = ('Unknow n')* LabSampleCode: nvarchar(50)*FK LabMethodID: int = ((0))

«PK»+ PK_Samples_SampleID(int)

«check»+ CK_Samples_LabSampleCode()

«FK»+ FK_Samples_LabMethods(int)+ FK_Samples_SampleTypeCV(nvarchar)

SampleTypeCV

«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)

«PK»+ PK_SampleTypeCV_Term(nvarchar)

«check»+ CK_SampleTypeCV_Term()

SeriesCatalog

«column»*PK SeriesID: int SiteID: int SiteCode: nvarchar(50) SiteName: nvarchar(255) VariableID: int VariableCode: nvarchar(50) VariableName: nvarchar(255) Speciation: nvarchar(255) VariableUnitsID: int VariableUnitsName: nvarchar(255) SampleMedium: nvarchar(255) ValueType: nvarchar(255) TimeSupport: float TimeUnitsID: int TimeUnitsName: nvarchar(255) DataType: nvarchar(255) GeneralCategory: nvarchar(255) MethodID: int MethodDescription: nvarchar(MAX) SourceID: int Organization: nvarchar(255) SourceDescription: nvarchar(MAX) Citation: nvarchar(MAX) QualityControlLevelID: int QualityControlLevelCode: nvarchar(50) BeginDateTime: datetime EndDateTime: datetime BeginDateTimeUTC: datetime EndDateTimeUTC: datetime ValueCount: int

«PK»+ PK_SeriesCatalog_SeriesID(int)

Sites

«column»*PK SiteID: int* SiteCode: nvarchar(50)* SiteName: nvarchar(255)* Latitude: f loat* Longitude: f loat*FK LatLongDatumID: int = ((0)) Elevation_m: f loat FK VerticalDatum: nvarchar(255) LocalX: f loat LocalY: float FK LocalProjectionID: int PosAccuracy_m: f loat State: nvarchar(255) County: nvarchar(255) Comments: nvarchar(MAX)

«PK»+ PK_Sites_SiteID(int)

«unique»+ AK_Sites_SiteCode(nvarchar)

«check»+ CK_Sites_SiteCode()+ CK_Sites_SiteName()+ CK_Sites_Latitude()+ CK_Sites_Longitude()+ CK_Sites_State()+ CK_Sites_County()

«FK»+ FK_Sites_SpatialReferences(int)+ FK_Sites_SpatialReferences1(int)+ FK_Sites_VerticalDatumCV(nvarchar)

Sources

«column»*PK SourceID: int* Organization: nvarchar(255)* SourceDescription: nvarchar(MAX) SourceLink: nvarchar(500)* ContactName: nvarchar(255) = ('Unknow n')* Phone: nvarchar(255) = ('Unknow n')* Email: nvarchar(255) = ('Unknow n')* Address: nvarchar(255) = ('Unknow n')* City: nvarchar(255) = ('Unknow n')* State: nvarchar(255) = ('Unknow n')* ZipCode: nvarchar(255) = ('Unknow n')* Citation: nvarchar(MAX) = ('Unknow n')*FK MetadataID: int = ((0))

«PK»+ PK_Sources_SourceID(int)

«check»+ CK_Sources_Organization()+ CK_Sources_ContactName()+ CK_Sources_Phone()+ CK_Sources_Email()+ CK_Sources_Address()+ CK_Sources_City()+ CK_Sources_State()+ CK_Sources_ZipCode()

«FK»+ FK_Sources_ISOMetaData(int)

SpatialReferences

«column»*PK SpatialReferenceID: int SRSID: int* SRSName: nvarchar(255) IsGeographic: bit Notes: nvarchar(MAX)

«PK»+ PK_SpatialReferences_SpatialReferenceID(int)

«check»+ CK_SpatialReferences_SRSName()

SpeciationCV

«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)

«PK»+ PK_SpeciationCV_Term(nvarchar)

«check»+ CK_SpeciationCV_Term()

sysdiagrams

«column»* name: nvarchar(128)* principal_id: int*PK diagram_id: int version: int def inition: varbinary(MAX)

«PK»+ PK__sysdiagrams__3A81B327(int)

«unique»+ UK_principal_name(int, nvarchar)

TopicCategoryCV

«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)

«PK»+ PK_TopicCategoryCV_Term(nvarchar)

«check»+ CK_TopicCategoryCV_Term()

Units

«column»*PK UnitsID: int* UnitsName: nvarchar(255)* UnitsType: nvarchar(255)* UnitsAbbreviation: nvarchar(255)

«PK»+ PK_Units_UnitsID(int)

«check»+ CK_Units_UnitsName()+ CK_Units_UnitsType()+ CK_Units_UnitsAbbreviation()

ValueTypeCV

«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)

«PK»+ PK_ValueTypeCV_Term(nvarchar)

«check»+ CK_ValueTypeCV_Term()

VariableNameCV

«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)

«PK»+ PK_VariableNameCV_Term(nvarchar)

«check»+ CK_VariableNameCV_Term()

Variables

«column»*PK VariableID: int* VariableCode: nvarchar(50)*FK VariableName: nvarchar(255)*FK Speciation: nvarchar(255) = ('Not Applicable')*FK VariableUnitsID: int*FK SampleMedium: nvarchar(255) = ('Unknow n')*FK ValueType: nvarchar(255) = ('Unknow n')* IsRegular: bit = ((0))* TimeSupport: f loat = ((0))*FK TimeUnitsID: int = ((103))*FK DataType: nvarchar(255) = ('Unknow n')*FK GeneralCategory: nvarchar(255) = ('Unknow n')* NoDataValue: float = ((-9999))

«PK»+ PK_Variables_VariableID(int)

«unique»+ AK_Variables_VariableCode(nvarchar)

«check»+ CK_Variables_VariableCode()

«FK»+ FK_Variables_DataTypeCV(nvarchar)+ FK_Variables_GeneralCategoryCV(nvarchar)+ FK_Variables_SampleMediumCV(nvarchar)+ FK_Variables_SpeciationCV(nvarchar)+ FK_Variables_Units(int)+ FK_Variables_Units1(int)+ FK_Variables_ValueTypeCV(nvarchar)+ FK_Variables_VariableNameCV(nvarchar)

VerticalDatum CV

«column»*PK Term: nvarchar(255) Definition: nvarchar(MAX)

«PK»+ PK_VerticalDatumCV_Term(nvarchar)

«check»+ CK_VerticalDatumCV_Term()

«stored procedures»OD

«proc»+ sp_alterdiagram(sysname(128), int, int, varbinary)+ sp_creatediagram(sysname(128), int, int, varbinary)+ sp_dropdiagram(sysname(128), int)+ sp_helpdiagramdefinition(sysname(128), int)+ sp_helpdiagrams(sysname(128), int)+ sp_renamediagram(sysname(128), int, sysname(128))+ sp_upgraddiagrams()+ spUpdateSeriesCatalog()

+FK_Samples_LabMethods

0..*

(LabMethodID =LabMethodID)

+PK_LabMethods_LabMethodID 1

+FK_DataValues_CensorCodeCV 0..*

(CensorCode =Term)

+PK_CensorCodeCV_Term 1

+FK_DataValues_Methods

0..*

(MethodID =MethodID)

+PK_Methods_MethodID 1+FK_DataValues_OffsetTypes

0..*(OffsetTypeID=OffsetTypeID)

+PK_OffsetTypes_OffsetTypeID

1

+FK_DataValues_Qualifiers

0..*

(QualifierID =Qualif ierID)

+PK_Qualifiers_Qualif ierID

1

+FK_DataValues_QualityControlLevels

0..*

(QualityControlLevelID=QualityControlLevelID)

+PK_QualityControlLevels_QualityControlLevelID

1

+FK_DataValues_Samples0..*

(SampleID =SampleID)

+PK_Samples_SampleID

1

+FK_DataValues_Sites

0..*(SiteID =SiteID)

+PK_Sites_SiteID

1

+FK_DataValues_Sources

0..*(SourceID =SourceID)

+PK_Sources_SourceID

1

+FK_DataValues_Variables

0..*

(VariableID =VariableID)

+PK_Variables_VariableID

1 +FK_DerivedFrom_DataValues 0..*

(ValueID =ValueID)

+PK_DataValues_ValueID 1

+FK_Groups_DataValues

0..*

(ValueID =ValueID)

+PK_DataValues_ValueID 1

+FK_Groups_GroupDescriptions

0..*

(GroupID =GroupID)

+PK_GroupDescriptions_GroupID

1

+FK_Categories_Variables 0..*

(VariableID =VariableID)

+PK_Variables_VariableID 1

+FK_OffsetTypes_Units

0..*(OffsetUnitsID =UnitsID)

+PK_Units_UnitsID

1

+FK_Variables_VariableNameCV 0..*(VariableName =Term)

+PK_VariableNameCV_Term

1

+FK_Samples_SampleTypeCV

0..* (SampleType =Term)

+PK_SampleTypeCV_Term

1

+FK_Sites_SpatialReferences

0..*(LatLongDatumID =SpatialReferenceID)

+PK_SpatialReferences_SpatialReferenceID

1

+FK_Sites_SpatialReferences1

0..*(LocalProjectionID=SpatialReferenceID)

+PK_SpatialReferences_SpatialReferenceID

1

+FK_Sites_VerticalDatumCV

0..*(VerticalDatum =Term)

+PK_VerticalDatumCV_Term

1

+FK_Sources_ISOMetaData

0..*(MetadataID =MetadataID)

+PK_ISOMetadata_MetadataID

1

+FK_Variables_DataTypeCV0..*

(DataType = Term)

+PK_DataTypeCV_Term

1

+FK_Variables_GeneralCategoryCV

0..*

(GeneralCategory = Term)

+PK_GeneralCategoryCV_Term

1

+FK_Variables_SampleMediumCV

0..*(SampleMedium = Term)

+PK_SampleMediumCV_Term

1

+FK_Variables_SpeciationCV

0..*(Speciation = Term)

+PK_SpeciationCV_Term

1

+FK_Variables_Units

0..*

(VariableUnitsID =UnitsID)

+PK_Units_UnitsID

1

+FK_Variables_Units1

0..*

(TimeUnitsID =UnitsID)

+PK_Units_UnitsID

1

+FK_Variables_ValueTypeCV 0..*

(ValueType = Term)

+PK_ValueTypeCV_Term

1

+FK_ISOMetadata_TopicCategoryCV

0..*(TopicCategory =Term)

+PK_TopicCategoryCV_Term

1

Page 14: Water Data in the  Unified Modeling Language
Page 15: Water Data in the  Unified Modeling Language

Generate XML Schema

Page 16: Water Data in the  Unified Modeling Language

Conclusion

• UML provide a standard platform to build and visualize a system's architectural blueprints

• Enterprise Architect is powerful dealing with diagram and code– C, C++, C#, Delphi, Java, PHP, Python, Visual Basic and

VB.NET• It is an opportunity to create international

standard for hydrological data• This term project currently don’t relate to GIS

Page 17: Water Data in the  Unified Modeling Language

Questions?

Thanks!