Changes between Version 18 and Version 19 of Grass7/TemporalGISAlgebra
- Timestamp:
- 07/05/13 09:37:24 (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Grass7/TemporalGISAlgebra
v18 v19 1 1 = Temporal GIS Algebra for Raster and Vector Data = 2 2 3 == Temporal Algebra == 4 5 The idea is to implement a temporal algebra to process space time datasets, 3 The idea is to implement a temporal GIS algebra to process space time datasets of type raster and vector, 6 4 the new spatio-temporal datatypes in GRASS GIS 7. 7 5 Space time datasets represent time series of raster, 3D raster and vector maps. 8 6 The GRASS GIS temporal framework implements a snapshot approach, 9 7 so that time and space are separated from each other. 10 Hence, space time datasets are not truly 4 dimensional datatypes. 11 Time and space can only be processes separately from each other. 8 Hence, space time datasets are not truly 4 dimensional datatypes, time and space can only be processed separately from each other. 12 9 The spatial capabilities of GRASS GIS are used to perform the spatial 13 10 processing of the time stamped maps that are registered in the space time datasets. 14 Hence the modules r.mapcalc for raster processing and v.buffer, v.over , v.patch for vector map processing are used.11 We use the modules r.mapcalc for raster processing and v.buffer, v.over , v.patch for vector map processing in the algebra. 15 12 The temporal processing is provided by the GRASS GIS temporal framework that supports time intervals and time instances. 16 13 Mixing time instance and time intervals as well as gaps, overlapping or inclusion of intervals and instances is possible. Hence … … 19 16 The only way to process several space time datasets with arbitrary temporal layout is to use their temporal relationships. Or more precisely, the temporal relationships of the time stamped maps that are registered in the space time datasets. 20 17 The spatial operations between maps (sum, union, ...) can be performed after the temporal related maps are identified. 21 This concept leads the design of the temporal algebra. The algebra must providethe functionality to define spatio-temporal18 This concept leads the design of the temporal GIS algebra. The algebra provides the functionality to define spatio-temporal 22 19 operators that process time and space in a single expression. 23 20 24 It should be possible to select maps based on their temporal relations. It must be possible to temporally shift the time stamps, 25 to create temporal buffer and to snap time instances to create a valid temporal topology. 26 Hence many operations that are common in spatial processing should have an equivalent in the temporal processing. 21 == Temporal Algebra == 22 23 The temporal part of the temporal GIS algebra is designed to be used as is in 24 the temporal vector algebra and the temporal raster algebra. Hence it works 25 with space time datasets of any type (STRDS, STR3DS and STVDS). 26 The algebra provides methods select maps from STDS based on their temporal relations. It is also possible to temporally shift maps, to create temporal buffer and to snap time instances to create a valid temporal topology. These operations 27 can be assigned to space time datasets or to the results of operations between space time datasets. 27 28 28 29 ==== Temporal selection ==== 29 30 30 Here an example of the temporal algebra that simply selects parts of a space time dataset without the processing raster or vector data: 31 32 We define a selection operator ''':''' that by default selects parts of a space time dataset that are temporally equal to parts of a second, hence the following expression 31 Here an example of the temporal algebra that simply selects parts of a space time dataset without processing raster or vector data: 32 33 We have defined the selection operator ''':''' that by default selects parts of a space 34 time dataset that are temporally equal to parts of a second one. The following expression 33 35 {{{ 34 36 C = A : B … … 40 42 means: select all parts of space time time dataset A that are not equal to B and store it in space time dataset (STDS) C. 41 43 42 We defined the {topological relations, selection operator} operatorto perform selection with44 We have defined the operator {"topological relations", "temporal selection operator"} to perform selection with 43 45 different temporal topology relations. Examples: 44 45 46 {{{ 46 47 C = A {equals,:} B is exactly the same as C = A : B 47 48 C = A {equals,!:} B is exactly the same as C = A !: B 48 49 }}} 49 50 We can now define arbitrary topological relations using logical OR to connect them: 51 50 We can now define arbitrary topological relations using logical OR operator to connect them: 52 51 {{{ 53 52 C = A {equals||during||overlaps,:} B 54 53 }}} 55 56 54 Select all parts of A that are equal B, during B or overlaps B. 57 55 58 In addition we define a temporal functions:59 60 56 ==== Temporal buffer ==== 57 61 58 Buffer time instances or time intervals: 62 59 {{{ … … 100 97 }}} 101 98 This expression selects all maps from A that temporally contains at least 2 maps from B and stores them in space time dataset C. 102 The leading '''equal''' statement in the '''if''' condition specifies the temporal relation between the if and then part of the expression. This is very important, so we do not need to specify a time reference for temporal processing. 99 The leading '''equal''' statement in the '''if''' condition specifies the temporal relation between the if and then part of the if expression. 100 This is very important, so we do not need to specify a global time reference (a space time dataset) for temporal processing. 103 101 104 102 ==== Temporal Operators ==== 105 The temporal algebra defines temporal operators that can be combined later with the spatial operators to perform spatio-temporal operations. 103 104 The temporal algebra defines temporal operators that can be combined later with spatial operators to perform spatio-temporal operations. 106 105 The temporal operators process the time instances and intervals of temporal related maps. 107 106 {{{ … … 109 108 OR | Union 110 109 DISJOINT OR + Disjoint union 111 LEFT REFERENCE = Use the time stamp of the left space time vectordataset110 LEFT REFERENCE = Use the time stamp of the left space time dataset 112 111 }}} 113 112 For example we can compute the intersection, union or disjoint union from time stamps of maps 114 113 that temporally overlap, or we can just keep the time stamp of the left STDS. 115 {{{116 Left Operator Right117 A {equal,:} B118 }}}119 114 120 115 All supported operators and functions are documented below. … … 123 118 124 119 The temporal vector algebra includes all functions from the temporal algebra 125 and adds spatial boolean and buffer operations that can be performed on temporal related vector maps that are registered in120 and adds spatial Boolean and buffer operations that can be performed on temporal related vector maps that are registered in 126 121 space time vector datasets. 127 122 … … 143 138 144 139 Example: 145 A spatiointersection between maps of STVDS A and B that are temporally equal,140 Compute the spatial intersection between maps of STVDS A and B that are temporally equal, 146 141 resulting spatial intersection maps are stored in C with time stamps from A: 147 142 {{{ 148 143 C = A & B 149 144 }}} 150 Aspatio-temporal intersection between maps of STVDS A and B that temporally overlap,145 Compute the spatio-temporal intersection between maps of STVDS A and B that temporally overlap, 151 146 resulting spatial intersection maps are stored in C with new time stamps resulting from temporal intersection: 152 147 {{{ … … 180 175 C = A {equal,=+} B 181 176 }}} 182 Select all cells from STRDS B with equal relations to STRDS Aif the cells183 of A are in the range of [100.0, 1600] of time intervals that have more then 30 days :177 Select all cells from STRDS B with equal temporal relations to STRDS A, if the cells 178 of A are in the range of [100.0, 1600] of time intervals that have more then 30 days (Jan, Mar, Mai, Jul, Aug, Oct, Dec): 184 179 {{{ 185 180 C = if(A > 100 && A < 1600 && td(A) > 30, B) … … 208 203 209 204 All supported operators and functions are documented below. 205 206 210 207 = Overview of all supported spatio-temporal operators and functions = 211 208