1. CityGML - Time Dependent Variables
Debbie Wilson – Snowflake Software
Peter Parslow - Ordnance Survey
Volker Kraut - MOSS
2. Overview
• What is a time-dependent variable?
• Real-world objects may have dynamic properties that varying over time
• Some phenomenon such as temperature or noise are highly dynamic
over space and time
• A time-dependent variable defines property value(s)
for a specific reference time
• Requirements:
1. Must be generic and can be applied to any City Object
2. Support both simple and complex variables:
• Single scalar value (i.e. indicator or measure)
• Time-series
• Composite scalar values (e.g. min, max, mean)
3. Provide metadata about the time dependent variable
• How was the time-dependent variable derived?
3. Time Dependent Variable
• Proposed model:
• Generic TimeDependentVariable <<FeatureType>> extends
from Abstract City Object
• Follows similar modelling pattern to ISO 19156 –
Observations and Measurements
Time-Dependent
Variable
Process
Property
Type
ValueTime
4. Requirements
• Two Requirements:
1. Append properties to a City Object
that relates to a specific reference
time
2. 3D modelling of dynamic
phenomenon which vary over
space and time that do not relate
to a specific City Object:
• Thematic Heat Map or
• Thematic Contour Map
5. TimeDependentVariable
class Context Diagram: Time-Dependent Variables
«metaclass»
General Feature Model::
GF_PropertyType
{root}
+ memberName :LocalName
+ definition :CharacterString
«FeatureTyp...
observation::
OM_Process
«type»
Records and
Class Metadata::
Any
{root}
«FeatureType»
TimeDependentVariable
+ referenceTime :TM_Object
+ validTime :TM_Period [0..1]
«Union»
Variable
«dataType»
CityGML_Core::
AbstractGenericAttribute
+ name :CharacterString
«DataType»
TimeDpendentVariable -
TimeSeries::TimeSeries
Phenomenon
+property
1
Process
+procedure
0..1
Range
+variable 1
1
1 1
NOTE: v0.2 change to
“constrain” the variable type
to either:
• CityGML generic attribute
• TimeSeries
• Any – which shall be
substituted for complex
types defined within an
ADE
6. Extending AbstractCityObject
• Two Options
1. Extend AbstractCityObject to add a
timeDependentVariable as a new propertyclass CityGML ADE: Extending Abstract CityObject
«FeatureType»
TimeDependentVariable::
TimeDependentVariable
+ referenceTime :TM_Object
+ validTime :TM_Period [0..1]
«FeatureTyp...
observation::
OM_Process
«type»
Records and
Class Metadata::
Any
{root}
«ADEElement»
TimeDependentVariable::AbstractCityObject
+ timeDependentVariable :TimeDependentVariable [0..*]
«featureType»
CityGML_Core::AbstractCityObject
+ creationDate :Date [0..1]
+ terminationDate :Date [0..1]
+ externalReference :ExternalReference [0..*]
+ relativeToTerrain :RelativeToTerrain [0..1]
+ relativeToWater :RelativeToWater [0..1]
+ genericAttribute :AbstractGenericAttribute [0..*]
«metaclass»
General Feature Model::
GF_PropertyType
{root}
+ memberName :LocalName
+ definition :CharacterString
Phenomenon
+property 1
+generalizesTo 0..*
Process
+procedure
0..1
Range
+variable 1
7.
8. Extending AbstractCityObject
• Two Options
1. Extend AbstractCityObject to add a
timeDependentVariable as a new property
2. Extend AbstractGenericAttribute to add
TimeDependentVariable as a new generic attribute
class Option 3: Extending GenericAttribute
«dataType»
CityGML_Core::
UriAttribute
+ value :URI
«dataType»
CityGML_Core::
StringAttribute
+ value :CharacterString
«dataType»
CityGML_Core::
MeasureAttribute
+ value :Measure
«dataType»
CityGML_Core::
IntAttribute
+ value :Integer
«dataType»
CityGML_Core::
DateAttribute
+ value :Date
«dataType»
CityGML_Core::
DoubleAttribute
+ value :Number
«dataType»
CityGML_Core::
AbstractGenericAttribute
+ name :CharacterString
«DataType»
TimeDependentVariable::
TimeDependentAttribute
+ value :TimeDependentVariable
9.
10. Creating a Thematic Heat Map City Object
• Two Options
1. Model the TimeDependentVariable class as a new City
Object, then create a ThematicHeatMap that extends
TimeDependentVariable
11. Time Dependent Variable
TimeDependentVariable
Modelled as a City Object
class Context Diagram: Time-Dependent Variables
«featureType»
CityGML_Core::AbstractCityObject
+ creationDate :Date [0..1]
+ terminationDate :Date [0..1]
+ externalReference :ExternalReference [0..*]
+ relativeToTerrain :RelativeToTerrain [0..1]
+ relativeToWater :RelativeToWater [0..1]
+ genericAttribute :AbstractGenericAttribute [0..*]
«metaclass»
General Feature Model::
GF_PropertyType
{root}
+ memberName :LocalName
+ definition :CharacterString
«FeatureTyp...
observation::
OM_Process
«type»
Records and
Class Metadata::
Any
{root}
«FeatureType»
TimeDependentVariable
+ referenceTime :TM_Object
+ validTime :TM_Period [0..1]
«Union»
Variable
«dataType»
CityGML_Core::
AbstractGenericAttribute
+ name :CharacterString
«DataType»
TimeDpendentVariable -
TimeSeries::TimeSeries
+generalizesTo 0..*
Phenomenon
+property
1
Process
+procedure
0..1
Range
+variable 1
1
1 1
Option 1
12. class Context Diagram: Noise Heat Map
«FeatureType»
ThematicHeatMapSurface
+ lod0Surface :GM_MultiSurface [0..1]
+ lod1Surface :GM_MultiSurface [0..1]
AbstractCityObject
«FeatureType»
TimeDependentVariable::
TimeDependentVariable
+ referenceTime :TM_Object
+ validTime :TM_Period [0..1]
«DataType»
NoiseExposureDataRecord
+ minLAeq :Measure
+ maxLAeq :Measure
+ meanLAeq :Measure
«FeatureType»
observation::OM_Process
«FeatureType»
SurfaceNoiseMap
constraints
{/* variable must be a NoiseExposureDataRecord */
inv: self.variable.oclIsKindOf(NoiseExposureDataRecord)}
«FeatureType»
RasterThematicHeatMap
constraints
{/* variable must be a GM_RectifiedGridCoverage*/
inv: self.variable.oclIsKindOf(GM_RectifiedGridCoverage)}
«metaclass»
General Feature Model::
GF_PropertyType
{root}
Phenomenon
+property 1
+variable
1
Process
+procedure 0..1
Creating a Thematic Heat Map City Object
Option 1
Can then extend the
TimeDependentVariable feature
to generate ThematicHeatMap
features and can specify ‘profile’
the variable type