SlideShare a Scribd company logo
1 of 16
CityGML - Time Dependent Variables
Debbie Wilson – Snowflake Software
Peter Parslow - Ordnance Survey
Volker Kraut - MOSS
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?
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
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
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
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
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
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
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
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
Example – Option 1 – Creating a Thematic Heat Map
Creating a Thematic Heat Map City Object
• Option 2
• Model the ThematicHeatMap as a new CityObject that
uses the a generic time dependent variable attributeclass Noise Map: Generic Attribute
«FeatureType»
SurfaceNoiseMap_GenericAttribute
+ lod0Surface :GM_MultiSurface [0..1]
+ lod1Surface :GM_MultiSurface [0..1]
«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..*]
+generalizesTo 0..*
class Noise Map: Generic Attribute
«FeatureType»
SurfaceNoiseMap_GenericAttribute
+ lod0Surface :GM_MultiSurface [0..1]
+ lod1Surface :GM_MultiSurface [0..1]
«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..*]
+generalizesTo 0..*
Or
Conclusions

More Related Content

Similar to CityGML Time Dependent Variables

Deformable DETR Review [CDM]
Deformable DETR Review [CDM]Deformable DETR Review [CDM]
Deformable DETR Review [CDM]Dongmin Choi
 
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...GeeksLab Odessa
 
Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...
Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...
Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...Codemotion
 
OrientDB - Time Series and Event Sequences - Codemotion Milan 2014
OrientDB - Time Series and Event Sequences - Codemotion Milan 2014OrientDB - Time Series and Event Sequences - Codemotion Milan 2014
OrientDB - Time Series and Event Sequences - Codemotion Milan 2014Luigi Dell'Aquila
 
Android Architecture Component in Real Life
Android Architecture Component in Real LifeAndroid Architecture Component in Real Life
Android Architecture Component in Real LifeSomkiat Khitwongwattana
 
Behind OOD: domain modelling in post-OO world.
Behind OOD:  domain modelling in post-OO world.Behind OOD:  domain modelling in post-OO world.
Behind OOD: domain modelling in post-OO world.Ruslan Shevchenko
 
Lifting the hood on spark streaming - StampedeCon 2015
Lifting the hood on spark streaming - StampedeCon 2015Lifting the hood on spark streaming - StampedeCon 2015
Lifting the hood on spark streaming - StampedeCon 2015StampedeCon
 
Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022
Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022
Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022InfluxData
 

Similar to CityGML Time Dependent Variables (12)

Deformable DETR Review [CDM]
Deformable DETR Review [CDM]Deformable DETR Review [CDM]
Deformable DETR Review [CDM]
 
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...
Java/Scala Lab: Анатолий Кметюк - Scala SubScript: Алгебра для реактивного пр...
 
Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...
Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...
Il tempo vola: rappresentare e manipolare sequenze di eventi e time series co...
 
OrientDB - Time Series and Event Sequences - Codemotion Milan 2014
OrientDB - Time Series and Event Sequences - Codemotion Milan 2014OrientDB - Time Series and Event Sequences - Codemotion Milan 2014
OrientDB - Time Series and Event Sequences - Codemotion Milan 2014
 
Android Architecture Component in Real Life
Android Architecture Component in Real LifeAndroid Architecture Component in Real Life
Android Architecture Component in Real Life
 
Behind OOD: domain modelling in post-OO world.
Behind OOD:  domain modelling in post-OO world.Behind OOD:  domain modelling in post-OO world.
Behind OOD: domain modelling in post-OO world.
 
OODIAGRAMS (4).ppt
OODIAGRAMS (4).pptOODIAGRAMS (4).ppt
OODIAGRAMS (4).ppt
 
OODIAGRAMS.ppt
OODIAGRAMS.pptOODIAGRAMS.ppt
OODIAGRAMS.ppt
 
OODIAGRAMS.ppt
OODIAGRAMS.pptOODIAGRAMS.ppt
OODIAGRAMS.ppt
 
Lifting the hood on spark streaming - StampedeCon 2015
Lifting the hood on spark streaming - StampedeCon 2015Lifting the hood on spark streaming - StampedeCon 2015
Lifting the hood on spark streaming - StampedeCon 2015
 
Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022
Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022
Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022
 
Travelling Through Time in Aid of Sustainability by Prof Farzad Khosrowshahi
Travelling Through Time in Aid of Sustainability by Prof Farzad KhosrowshahiTravelling Through Time in Aid of Sustainability by Prof Farzad Khosrowshahi
Travelling Through Time in Aid of Sustainability by Prof Farzad Khosrowshahi
 

Recently uploaded

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Recently uploaded (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 

CityGML Time Dependent Variables

  • 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
  • 13. Example – Option 1 – Creating a Thematic Heat Map
  • 14. Creating a Thematic Heat Map City Object • Option 2 • Model the ThematicHeatMap as a new CityObject that uses the a generic time dependent variable attributeclass Noise Map: Generic Attribute «FeatureType» SurfaceNoiseMap_GenericAttribute + lod0Surface :GM_MultiSurface [0..1] + lod1Surface :GM_MultiSurface [0..1] «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..*] +generalizesTo 0..* class Noise Map: Generic Attribute «FeatureType» SurfaceNoiseMap_GenericAttribute + lod0Surface :GM_MultiSurface [0..1] + lod1Surface :GM_MultiSurface [0..1] «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..*] +generalizesTo 0..* Or
  • 15.