3 | | Overview of the temporal algebra elements and concepts. |
| 3 | == Introduction == |
| 4 | |
| 5 | === Temporal Algebra === |
| 6 | |
| 7 | The idea of the temporal Algebra is to use operators that process space and time. |
| 8 | The spatial processing capabilities that are already implemented in GRASS GIS will be reused. |
| 9 | That are r.mapcalc for raster processing and v.buffer, v.over , v.patch for vector map processing. |
| 10 | Unfortunately the GRASS GIS temporal framework implements a separated time and space approach. |
| 11 | The only way to process several space time datasets in time is to use their temporal relationships, |
| 12 | since the time dimension has in our case an arbitrary layout. |
| 13 | |
| 14 | Here an example of the temporal Algebra that simply selects parts of a space time dataset without the processing raster or vector data: |
| 15 | |
| 16 | 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 |
| 17 | {{{ |
| 18 | C = A : B |
| 19 | }}} |
| 20 | means: Select all parts of space time dataset A that are equal to B and store it in space time dataset C. The parts are in this case time stamped maps. In addition we define the inverse selection operator '''!:''', hence the following expression |
| 21 | |
| 22 | C = A !: B |
| 23 | |
| 24 | 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. |
| 25 | |
| 26 | We defined the {topological relations, selection operator} operator to perform selection with |
| 27 | different temporal topology relations. Examples: |
| 28 | |
| 29 | {{{ |
| 30 | C = A {equals,:} B is exactly the same as C = A : B |
| 31 | C = A {equals,!:} B is exactly the same as C = A !: B |
| 32 | }}} |
| 33 | |
| 34 | We can now define arbitrary topological relations using logical or || to connect them: |
| 35 | |
| 36 | {{{ |
| 37 | C = A {equals||during||overlaps,:} B |
| 38 | }}} |
| 39 | |
| 40 | Select all parts of A that are equal B, during B or overlaps B. |
| 41 | |
| 42 | In addition we define a temporal buffer function, that buffer time instances or time intervals: |
| 43 | |
| 44 | buff_t(STDS, "time interval") |
| 45 | |
| 46 | Example: |
| 47 | |
| 48 | {{{ |
| 49 | C = buff_t(A, "1 day") |
| 50 | }}} |
| 51 | |
| 52 | Buffer all maps of STDS A with a temporal buffer of one day. |
| 53 | |
| 54 | = Overview of all temporal algebra elements = |