09 Jan 2006 - Dealing with time in GML
Virtually all geographic phenomena involve time. It should come as no surprise then that GML provides constructs for the description of time, and for the representation of time dependent geographic features. GML can be used to describe a wide variety of features that are time dependent from the motion of a person or vehicle, to the development of a hurricane and the impact zone of an earthquake.
The description of time is handled by the temporal.xsd schema. This schema defines the key GML temporal objects, namely:
- TimePeriod
- TimeInstant
The description of the temporal development of a geographic feature or features is handled in the dynamicfeature.xsd which we will discuss in more detail a little later on.
<gml:TimeInstant>
<gml:timePosition>2003-02-13T12:28-08:00</gml:timePosition>
</gml:TimeInstant>
- XML Schema time or dataTime (this is also based on ISO 8601)
- CalDate - enables a very llexible encoding of calendar dates.
- A URI reference
- A decimal value
The interpretation of the timePosition value is determined by the optional attributes of timePosition. In particular the frame attribute allows the user to specify the temporal reference system to be used for interpretation of the value of gml:timePosition.
A temporal reference system can be defined in GML using the temporalReference.xsd. Such a definition might live in a coordinate reference system dictionary, possibly managed by a registry such as the OGC Web Registry Service (WRS). The frame attrbute could then reference this definition. Alternatively it could point to some other definition expressed as text ir in some other grammar.
TimePeriods are defined in the same menner. A TimePeriod (a temporal duration or interval) can be expressed in a number of different ways to allow users to tradeoff between expressiveness and simplicity. These different forms include:
<gml:TimePeriod>
<gml:begin>2003-02-13T12:28-08:00</gml:begin>
<gml:end>2003-02-13T12:30-08:00</gml:end>
<gml:TimePeriod>
Here the begin, end elements are timePositions and carry the same attributes as the timePosition discussed above.
<gml:TimePeriod>
<gml:beginPosition>
<gml:TimeInstant>
<gml:timePosition>2003-02-13T12:28-08:00</gml:timePosition>
</gml:TimeInstant>
</gml:beginPosition>
</gml:endPosition xlink:href = "… #T001"/>
<gml:TimePeriod>
Note that this form allows the TimePeriod to be defined by TimeInstant objects and allows those TimeInstant objects to be remotely referenced using the xlink:href attribute. This means that TimeInstants can be shared across multiple TimePeriod definitions. And finally:
<gml:TimePeriod gml:id="T001">
<gml:duration>PT130S</gml:duration>
<gml:TimePeriod>
This form allows the expression of a time period by its length rather than by begin and end positions in time. The value type of gml:duration is xsd:duration, which is defined by ISO 8601 (see http://books.xmlschemata.org/relaxng/ch19-77073.html) for additional details.
Time constructs are typically used as the values of temporal properties of features. These might describe the creation or termination "time" of the feature, "effective" dates, the time of sensor observations, or the time at which a feature was in a particular state.
GML includes two models to describe the time evoluation of a feature (an object of interest). These are:
- SnapShot
- TimeSlice or time history
A SnapShot is a view of a feature at an instant in time or over an interval in time (depending on the time construct used). A snapshot has a single time property whose value is a TimePeriod or a TimeInstant. For example:
<abc:Company gml:id="L31">
<gml:name>General Motors</gml:name>
<abc:location>…</abc:location>
<abc:founded>
<gml:TimeInstant>.. </gml:TimeInstant>
</abc:founded>
</abc:Company>
Each snapshot is an individual view of the feature in question and GML implies no organization of the snap shots into any sort of temporal evolution.
Such a view is, however, provided by the Dynamic Feature. A Dynamic Feature is a feature with a gml:history property, the value of which is a set of gml:TimeSlices. The time invariant properties of the feature are outside the history property. TimeSlices contain the time varying properties of the feature. The properties in a TimeSlice are determined by the application schema for the TimeSlice just as they are for the feature as a whole. Users can thus define more or less arbitrary time dependent properties for a feature. A dynamic feature has the folowing general structure:
<abc:Hurricanegml:id="I01">
<gml:name>Katrina</gml:name>
<gml:history>
<abc:TimeView gml:id="H01">
<gml:validTime>
<gml:TimeInstant> .. </gml:TimeInstant>
<gml:validTime>
<abc:position> .. </abc:position>
<abc:windSpeed> .. </abc:windSpeed>
<abc:category> .. </abc:category>
</abc:TimeView>
…
<abc:TimeView gml:id="H01">
<gml:validTime>
<gml:TimeInstant> .. </gml:TimeInstant>
<gml:validTime>
<abc:position> .. </abc:position>
<abc:windSpeed> .. </abc:windSpeed>
<abc:category> .. </abc:category>
</abc:TimeView>
<gml:history>
<abc:Hurricane>
Note that by having such a standard structure, software can be written which can visualize or analyze the hisory of a feature instance. Note that this also avoids propblems with handling multiple feature fragments (same id, different validTimes) with the same gml:id.
Users can also create additional patterns for describing the temporal evolution of feature objects.
Further information on creating dynamic feature schemas and using GML temporal constructs can be found in the book GML Foundation for the GeoWeb (http://ca.wiley.com/WileyCDA/WileyTitle/productCd-0470871539.html).
No Comments | Leave a comment»
Comments
No comments yet.
Leave a comment
Blog Entries:
23 Jul 2008 - Virtual Globes as Essential Services?07 Jul 2008 - Cascading and Federated WFS and the Concept of Geolinking
30 Jun 2008 - What is an SDI?
16 Jun 2008 - WFS - Schema Mapping is Key
05 Jun 2008 - KML Support
08 May 2008 - Looking ahead to GeoWeb 2009
21 Apr 2008 - Spatial Infrastructures, IFC & Collaborative Engineering
14 Apr 2008 - KML released as an OGC Specification
02 Apr 2008 - BIM/CAD/GIS Integration
13 Mar 2008 - Structuralism and Data Exchange
05 Mar 2008 - Building the GeoWeb in your own backyard
03 Mar 2008 - Davos of Geo in Vancouver
28 Feb 2008 - What are coordinates?
19 Feb 2008 - Does the invisible hand always get it right?
31 Jan 2008 - “Design for Test” in the GeoWeb
23 Jan 2008 - GeoWeb Local - GML in Local Government
15 Jan 2008 - GML Core and Extensions
04 Jan 2008 - GeoWeb 3D
21 Dec 2007 - What are the key issues for geographic information technology?
26 Nov 2007 - GML in the Back Office
19 Nov 2007 - CAD- BIM-GIS-Games Integration
07 Nov 2007 - What’s in a name? Searching for the right words
23 Aug 2007 - KML Placemarks as Observations
29 Jun 2007 - Where GML was right .. and wrong
17 May 2007 - From GML 1.0 onwards - a brief history
17 May 2007 - GML and Database Interoperability
10 May 2007 - GeoWeb Manifesto
09 May 2007 - Meltdown and the Maze - Toward a Real Time Geography
08 May 2007 - GML, KML, Sensor Data, Imagery
20 Apr 2007 - Transporting GML in KML
21 Mar 2007 - The Architecture of the GeoWeb
14 Feb 2007 - From Interoperability to Infrastructure
14 Feb 2007 - GML without Geometry
18 Dec 2006 - ebRIM gets the nod at the OGC
06 Oct 2006 - In praise of complexity
05 Oct 2006 - Infrastructure - the next step past interoperability
12 Jun 2006 - GML and ebRIM
21 May 2006 - Features, Observations and Authorization
21 Apr 2006 - Transfer and Transaction Models
12 Apr 2006 - Feature Catalogues/Dictionaries, GML and RDF/S
10 Apr 2006 - Genus Loci
04 Apr 2006 - GeoWeb and Survival Part II - Towards Environmental Security
04 Apr 2006 - GeoWeb and Survival
17 Mar 2006 - Schemas, Interoperability and RDBMS
14 Mar 2006 - SDI Concepts
05 Mar 2006 - GML Complexity Re-visited
05 Mar 2006 - Observations are for more than sensor data
05 Mar 2006 - Application Schemas Drive Profiles
25 Feb 2006 - The problem with XML
15 Feb 2006 - The importance of profiles
08 Feb 2006 - One person’s metadata is another person’s …
07 Feb 2006 - From Soup to Nuts
02 Feb 2006 - GeoRSS - GML in news feeds
31 Jan 2006 - Performance and the GeoWeb
27 Jan 2006 - Remote API’S, Web Services and the GeoWeb
19 Jan 2006 - GeoWeb 2006 - GeoWeb Grows Up
09 Jan 2006 - Dealing with time in GML
23 Dec 2005 - Dynamic
14 Dec 2005 - GML in the cockpit
01 Dec 2005 - SDI - What is it really?
25 Nov 2005 - GML is the same for all applications
25 Nov 2005 - Schemas and Profiles - whats the difference?
22 Nov 2005 - Schemas - why the big deal?
15 Nov 2005 - GML for Geographic Imagery
13 Nov 2005 - GML, and KML - Why the fuss?
10 Nov 2005 - Is GML a format?
09 Nov 2005 - Embedding GML in “foreign” grammars
03 Nov 2005 - Authentication and Access Control
03 Nov 2005 - OnStar in the era of the GeoWeb
03 Nov 2005 - Do we need to encode location in news feeds?
03 Nov 2005 - gMedia - Towards Geographically Aware Media
03 Nov 2005 - Where are we going?
02 Nov 2005 - Sample XSLT Style Sheet
02 Nov 2005 - Sample KML Output
02 Nov 2005 - Sample GML Data File
02 Nov 2005 - Styling GML to KML - XSLT
02 Nov 2005 - Simple Geometry Schema
01 Nov 2005 - Simple GML Geometry
18 Oct 2005 - Simple GML Geometries
18 Oct 2005 - Styling GML to KML for Visualization
18 Oct 2005 - Some Simple GML Profiles
17 Oct 2005 - Embedding GML in non-GML grammars
17 Oct 2005 - Geotags - the answer to everything?
20 Sep 2005 - GeoWeb 2006
20 Sep 2005 - GML Observations and Features
14 Sep 2005 - What is KML?
07 Sep 2005 - Time in GML
07 Sep 2005 - GML Observations
07 Sep 2005 - GML and KML Syntax
07 Sep 2005 - GeoWeb - Part II - GML and KML
07 Sep 2005 - GI Markup - Part I - Feeding the web with Geographic Information
06 Sep 2005 - GML Complexity
06 Sep 2005 - GML “Sucks”
24 Aug 2005 - Web Feeds and Geographic Information
23 Aug 2005 - What is the Geo-Web?
23 Aug 2005 - IS WGS84 Enough
04 Aug 2005 - Coordinates in GML
03 Aug 2005 - GML Profiles
03 Aug 2005 - GML and Coordinate Systems
03 Aug 2005 - Information Sources
03 Aug 2005 - Features and Geometry Properties
03 Aug 2005 - GML Geometries
03 Aug 2005 - GML FAQ for RSS Geeks and others



