|
@@ -1,52 +1,57 @@
|
|
<h2>DESCRIPTION</h2>
|
|
<h2>DESCRIPTION</h2>
|
|
|
|
|
|
-t.vect.algebra performs temporal and spatial overlay and buffer functions on space time vector datasets (STVDS)
|
|
|
|
-by using the temporal vector algebra. New STVDS can be created, which are expressions of existing STVDS.
|
|
|
|
|
|
+<em>t.vect.algebra</em> performs temporal and spatial overlay and
|
|
|
|
+buffer functions on space time vector datasets (STVDS) by using the
|
|
|
|
+temporal vector algebra. New STVDS can be created, which are
|
|
|
|
+expressions of existing STVDS.
|
|
|
|
|
|
<h3>PROGRAM USE</h3>
|
|
<h3>PROGRAM USE</h3>
|
|
-The module expects an <b>expression</b> as input parameter in the following form: <br>
|
|
|
|
-<br>
|
|
|
|
-<b> "result = expression" </b>
|
|
|
|
-<br>
|
|
|
|
-<br>
|
|
|
|
|
|
+The module expects an <b>expression</b> as input parameter in the following form:
|
|
|
|
+<p>
|
|
|
|
+
|
|
|
|
+<div class="code"><pre>
|
|
|
|
+"result = expression"
|
|
|
|
+</pre></div>
|
|
|
|
|
|
The statement structure is similar to r.mapcalc, see <a href="r.mapcalc.html">r.mapcalc</a>.
|
|
The statement structure is similar to r.mapcalc, see <a href="r.mapcalc.html">r.mapcalc</a>.
|
|
Where <b>result</b> represents the name of a space time dataset (STVDS) that will
|
|
Where <b>result</b> represents the name of a space time dataset (STVDS) that will
|
|
contain the result of the calculation that is given as <b>expression</b>
|
|
contain the result of the calculation that is given as <b>expression</b>
|
|
on the right side of the equality sign.
|
|
on the right side of the equality sign.
|
|
-These expression can be any valid or nested combination of temporal
|
|
|
|
-operations and functions that are provided by the temporal vector algebra. <br>
|
|
|
|
-The algebra provides methods for map selection 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. Furthermore expressions can be nested and
|
|
|
|
-evaluated in conditional statements (if, else statements). Within if-statements the algebra
|
|
|
|
-provides temporal variables like start time, end time, day of year, time differences or
|
|
|
|
-number of maps per time interval to build up conditions. These operations can be assigned
|
|
|
|
-to space time datasets or to the results of operations between space time datasets.
|
|
|
|
-<br>
|
|
|
|
-<br>
|
|
|
|
-The type of the input space time datasets must be defined with the input
|
|
|
|
-parameter <b>type</b>. Possible options are STRDS, STVDS or STR3DS.
|
|
|
|
-The default is set to space time raster datasets (STRDS).
|
|
|
|
-<br>
|
|
|
|
-<br>
|
|
|
|
-As default, topological relationships between space time datasets will be
|
|
|
|
-evaluated only temporal. Use the <b>s</b> flag to activate the
|
|
|
|
-additionally spatial topology evaluation.
|
|
|
|
-<br>
|
|
|
|
-<br>
|
|
|
|
-The expression option must be passed as <b>quoted</b>
|
|
|
|
-expression, for example: <br>
|
|
|
|
-<div class="code"><pre>t.select expression="C = A : B"</pre></div>
|
|
|
|
-Where <b>C</b> is the new space time raster dataset that will contain maps
|
|
|
|
-from <b>A</b> that are selected by equal temporal relationships
|
|
|
|
-to the existing dataset <b>B</b> in this case. <br>
|
|
|
|
-<br>
|
|
|
|
|
|
+
|
|
|
|
+These expression can be any valid or nested combination of temporal
|
|
|
|
+operations and functions that are provided by the temporal vector
|
|
|
|
+algebra.<br>
|
|
|
|
+The algebra provides methods for map selection 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. Furthermore expressions can be nested and evaluated
|
|
|
|
+in conditional statements (if, else statements). Within if-statements
|
|
|
|
+the algebra provides temporal variables like start time, end time, day
|
|
|
|
+of year, time differences or number of maps per time interval to build
|
|
|
|
+up conditions. These operations can be assigned to space time datasets
|
|
|
|
+or to the results of operations between space time datasets.
|
|
|
|
+
|
|
|
|
+<p>
|
|
|
|
+The type of the input space time datasets must be defined
|
|
|
|
+with the input parameter <b>type</b>. Possible options are STRDS, STVDS
|
|
|
|
+or STR3DS. The default is set to space time raster datasets (STRDS).
|
|
|
|
+<p> As default, topological relationships between space time datasets
|
|
|
|
+will be evaluated only temporal. Use the <b>s</b> flag to activate the
|
|
|
|
+additionally spatial topology evaluation. <p> The expression option
|
|
|
|
+must be passed as <b>quoted</b> expression, for example: <br>
|
|
|
|
+
|
|
|
|
+<div class="code"><pre>
|
|
|
|
+t.select expression="C = A : B"
|
|
|
|
+</pre></div>
|
|
|
|
+
|
|
|
|
+Where <b>C</b> is the new space time raster dataset that will contain
|
|
|
|
+maps from <b>A</b> that are selected by equal temporal relationships to
|
|
|
|
+the existing dataset <b>B</b> in this case.
|
|
|
|
+
|
|
<h2>TEMPORAL VECTOR ALGEBRA</h2>
|
|
<h2>TEMPORAL VECTOR ALGEBRA</h2>
|
|
|
|
|
|
The temporal algebra provides a wide range of temporal operators and
|
|
The temporal algebra provides a wide range of temporal operators and
|
|
-functions that will be presented in the following section. <br>
|
|
|
|
-<br>
|
|
|
|
|
|
+functions that will be presented in the following section. <p>
|
|
|
|
|
|
<h3>TEMPORAL RELATIONS</h3>
|
|
<h3>TEMPORAL RELATIONS</h3>
|
|
|
|
|
|
@@ -87,19 +92,20 @@ overlaps A ------
|
|
B ------
|
|
B ------
|
|
|
|
|
|
over booth overlaps and overlapped
|
|
over booth overlaps and overlapped
|
|
-
|
|
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
+
|
|
The relations must be read as: A is related to B, like - A equals B - A is
|
|
The relations must be read as: A is related to B, like - A equals B - A is
|
|
-during B - A contains B <br>
|
|
|
|
-<br>
|
|
|
|
|
|
+during B - A contains B <p>
|
|
Topological relations must be specified in {} parentheses. <br>
|
|
Topological relations must be specified in {} parentheses. <br>
|
|
|
|
|
|
<h3>TEMPORAL OPERATORS</h3>
|
|
<h3>TEMPORAL OPERATORS</h3>
|
|
|
|
|
|
-The temporal algebra defines temporal operators that can be combined with other
|
|
|
|
-operators to perform spatio-temporal operations.
|
|
|
|
-The temporal operators process the time instances and intervals of two temporal
|
|
|
|
-related maps and calculate the result temporal extent by five differnt possibilities.
|
|
|
|
|
|
+The temporal algebra defines temporal operators that can be combined
|
|
|
|
+with other operators to perform spatio-temporal operations. The
|
|
|
|
+temporal operators process the time instances and intervals of two
|
|
|
|
+temporal related maps and calculate the result temporal extent by five
|
|
|
|
+differnt possibilities.
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
LEFT REFERENCE l Use the time stamp of the left space time dataset
|
|
LEFT REFERENCE l Use the time stamp of the left space time dataset
|
|
INTERSECTION i Intersection
|
|
INTERSECTION i Intersection
|
|
@@ -108,7 +114,6 @@ UNION u Union
|
|
RIGHT REFERENCE r Use the time stamp of the right space time dataset
|
|
RIGHT REFERENCE r Use the time stamp of the right space time dataset
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
-
|
|
|
|
<h3>TEMPORAL SELECTION</h3>
|
|
<h3>TEMPORAL SELECTION</h3>
|
|
|
|
|
|
The temporal selection simply selects parts of a space time dataset without
|
|
The temporal selection simply selects parts of a space time dataset without
|
|
@@ -117,51 +122,68 @@ processing raster or vector data.
|
|
The algebra provides a selection operator <b>:</b> that selects parts
|
|
The algebra provides a selection operator <b>:</b> that selects parts
|
|
of a space time dataset that are temporally equal to parts of a second one
|
|
of a space time dataset that are temporally equal to parts of a second one
|
|
by default. The following expression
|
|
by default. The following expression
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
C = A : B
|
|
C = A : B
|
|
</pre></div>
|
|
</pre></div>
|
|
-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 time stamped maps. <br>
|
|
|
|
-<br>
|
|
|
|
-In addition the inverse selection operator <b>!:</b> is defined as the complement of
|
|
|
|
-the selection operator, hence the following expression
|
|
|
|
|
|
+
|
|
|
|
+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 time stamped maps.
|
|
|
|
+
|
|
|
|
+<p>
|
|
|
|
+In addition the inverse selection operator <b>!:</b> is defined as
|
|
|
|
+the complement of the selection operator, hence the following
|
|
|
|
+expression
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
C = A !: B
|
|
C = A !: B
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
+
|
|
means: select all parts of space time time dataset A that are not equal to B
|
|
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. <br>
|
|
|
|
-<br>
|
|
|
|
-To select parts of a STDS by different topological relations to other STDS,
|
|
|
|
-the temporal topology selection operator can be used. The operator consists of
|
|
|
|
-the temporal selection operator, the topological relations, that must be separated
|
|
|
|
-by the logical OR operator <b>|</b> and the temporal extent operator.
|
|
|
|
-All three parts are separated by comma and surrounded by curly braces:
|
|
|
|
-{"temporal selection operator", "topological relations", "temporal operator"} <br>
|
|
|
|
-<br>
|
|
|
|
|
|
+and store it in space time dataset (STDS) C.<p>
|
|
|
|
+
|
|
|
|
+To select parts of a STDS by different topological relations to other
|
|
|
|
+STDS, the temporal topology selection operator can be used. The
|
|
|
|
+operator consists of the temporal selection operator, the topological
|
|
|
|
+relations, that must be separated by the logical OR operator <b>|</b>
|
|
|
|
+and the temporal extent operator. All three parts are separated by
|
|
|
|
+comma and surrounded by curly braces:
|
|
|
|
+
|
|
|
|
+<div class="code"><pre>
|
|
|
|
+{"temporal selection operator", "topological relations", "temporal operator"}
|
|
|
|
+</pre></div>
|
|
|
|
+
|
|
|
|
+<p>
|
|
|
|
|
|
Examples:
|
|
Examples:
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
C = A {:, equals} B
|
|
C = A {:, equals} B
|
|
C = A {!:, equals} B
|
|
C = A {!:, equals} B
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
+
|
|
We can now define arbitrary topological relations using the OR operator "|"
|
|
We can now define arbitrary topological relations using the OR operator "|"
|
|
to connect them:
|
|
to connect them:
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
C = A {:,equals|during|overlaps} B
|
|
C = A {:,equals|during|overlaps} B
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
+
|
|
Select all parts of A that are equal to B, during B or overlaps B. <br>
|
|
Select all parts of A that are equal to B, during B or overlaps B. <br>
|
|
|
|
|
|
In addition we can define the temporal extent of the result STDS by adding the
|
|
In addition we can define the temporal extent of the result STDS by adding the
|
|
temporal operator.
|
|
temporal operator.
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
C = A {:, during,r} B
|
|
C = A {:, during,r} B
|
|
</pre></div>
|
|
</pre></div>
|
|
-Select all parts of A that are during B and use the temporal extents from B for
|
|
|
|
-C. <br>
|
|
|
|
|
|
|
|
-<br>
|
|
|
|
|
|
+Select all parts of A that are during B and use the temporal extents
|
|
|
|
+from B for C.
|
|
|
|
+<p>
|
|
|
|
+
|
|
The selection operator is implicitly contained in the temporal topology
|
|
The selection operator is implicitly contained in the temporal topology
|
|
selection operator, so that the following statements are exactly the same:
|
|
selection operator, so that the following statements are exactly the same:
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
C = A : B
|
|
C = A : B
|
|
C = A {:} B
|
|
C = A {:} B
|
|
@@ -170,6 +192,7 @@ C = A {:,equal,l} B
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
Same for the complementary selection:
|
|
Same for the complementary selection:
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
C = A !: B
|
|
C = A !: B
|
|
C = A {!:} B
|
|
C = A {!:} B
|
|
@@ -181,13 +204,13 @@ C = A {!:,equal,l} B
|
|
|
|
|
|
Selection operations can be evaluated within conditional statements.
|
|
Selection operations can be evaluated within conditional statements.
|
|
<br>
|
|
<br>
|
|
-<div class="code"><pre>
|
|
|
|
Note A and B can either be space time datasets or expressions. The temporal
|
|
Note A and B can either be space time datasets or expressions. The temporal
|
|
relationship between the conditions and the conclusions can be defined at the
|
|
relationship between the conditions and the conclusions can be defined at the
|
|
beginning of the if statement. The relationship between then and else conclusion
|
|
beginning of the if statement. The relationship between then and else conclusion
|
|
must be always equal.
|
|
must be always equal.
|
|
|
|
|
|
-if statement decision option temporal relations
|
|
|
|
|
|
+<div class="code"><pre>
|
|
|
|
+if statement decision option temporal relations
|
|
if(if, then, else)
|
|
if(if, then, else)
|
|
if(conditions, A) A if conditions are True; temporal topological relation between if and then is equal.
|
|
if(conditions, A) A if conditions are True; temporal topological relation between if and then is equal.
|
|
if(conditions, A, B) A if conditions are True, B otherwise; temporal topological relation between if, then and else is equal.
|
|
if(conditions, A, B) A if conditions are True, B otherwise; temporal topological relation between if, then and else is equal.
|
|
@@ -196,6 +219,7 @@ if statement decision option temp
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
<h4>Logical operators</h4>
|
|
<h4>Logical operators</h4>
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
Symbol description
|
|
Symbol description
|
|
|
|
|
|
@@ -210,9 +234,11 @@ Symbol description
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
<h4>Temporal functions</h4>
|
|
<h4>Temporal functions</h4>
|
|
-The following temporal function are evaluated only for the STDS that must be given in parenthesis.
|
|
|
|
-<div class="code"><pre>
|
|
|
|
|
|
|
|
|
|
+The following temporal function are evaluated only for the STDS that
|
|
|
|
+must be given in parenthesis.
|
|
|
|
+
|
|
|
|
+<div class="code"><pre>
|
|
td(A) Returns a list of time intervals of STDS A
|
|
td(A) Returns a list of time intervals of STDS A
|
|
|
|
|
|
start_time(A) Start time as HH::MM:SS
|
|
start_time(A) Start time as HH::MM:SS
|
|
@@ -243,14 +269,20 @@ end_second(A) The second of the end time [0 - 59]
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
<h4>Comparison operator</h4>
|
|
<h4>Comparison operator</h4>
|
|
|
|
+
|
|
The conditions are comparison expressions that are used to evaluate
|
|
The conditions are comparison expressions that are used to evaluate
|
|
space time datasets. Specific values of temporal variables are
|
|
space time datasets. Specific values of temporal variables are
|
|
compared by logical operators and evaluated for each map of the STDS and
|
|
compared by logical operators and evaluated for each map of the STDS and
|
|
the related maps.
|
|
the related maps.
|
|
For complex relations the comparison operator can be used to combine conditions:
|
|
For complex relations the comparison operator can be used to combine conditions:
|
|
<br>
|
|
<br>
|
|
-The structure is similar to the select operator with the extention of an aggregation operator:
|
|
|
|
|
|
+
|
|
|
|
+The structure is similar to the select operator with the extention of an aggregation operator:
|
|
|
|
+
|
|
|
|
+<div class="code"><pre>
|
|
{"comparison operator", "topological relations", aggregation operator, "temporal operator"}
|
|
{"comparison operator", "topological relations", aggregation operator, "temporal operator"}
|
|
|
|
+</pre></div>
|
|
|
|
+
|
|
<br>
|
|
<br>
|
|
This aggregation operator (| or &) define the behaviour if a map is related the more
|
|
This aggregation operator (| or &) define the behaviour if a map is related the more
|
|
than one map, e.g for the topological relations 'contains'.
|
|
than one map, e.g for the topological relations 'contains'.
|
|
@@ -258,11 +290,15 @@ Should all (&) conditions for the related maps be true or is it sufficient to
|
|
have any (|) condition that is true. The resulting boolean value is then compared
|
|
have any (|) condition that is true. The resulting boolean value is then compared
|
|
to the first condition by the comparison operator (|| or &&).
|
|
to the first condition by the comparison operator (|| or &&).
|
|
As default the aggregation operator is related to the comparison operator: <br>
|
|
As default the aggregation operator is related to the comparison operator: <br>
|
|
-Comparison operator -> aggregation operator:
|
|
|
|
|
|
+
|
|
|
|
+Comparison operator -> aggregation operator:
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
|| -> | and && -> &
|
|
|| -> | and && -> &
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
+
|
|
Examples:
|
|
Examples:
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
Condition 1 {||, equal, r} Condition 2
|
|
Condition 1 {||, equal, r} Condition 2
|
|
Condition 1 {&&, equal|during, l} Condition 2
|
|
Condition 1 {&&, equal|during, l} Condition 2
|
|
@@ -272,52 +308,64 @@ Condition 1 {&&, equal|during, l} Condition 2 {&&,contains, |, r} Condition 3
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
<h4>Hash operator</h4>
|
|
<h4>Hash operator</h4>
|
|
|
|
+
|
|
Additionally the number of maps in intervals can be computed and used in
|
|
Additionally the number of maps in intervals can be computed and used in
|
|
conditional statements with the hash (#) operator. <br>
|
|
conditional statements with the hash (#) operator. <br>
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
A{#, contains}B
|
|
A{#, contains}B
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
+
|
|
This expression computes the number of maps from space
|
|
This expression computes the number of maps from space
|
|
time dataset B which are during the time intervals of maps from
|
|
time dataset B which are during the time intervals of maps from
|
|
space time dataset A.<br>
|
|
space time dataset A.<br>
|
|
A list of integers (scalars) corresponding to the maps of A
|
|
A list of integers (scalars) corresponding to the maps of A
|
|
-that contain maps from B will be returned. <br>
|
|
|
|
-<br>
|
|
|
|
|
|
+that contain maps from B will be returned.
|
|
|
|
+<p>
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
C = if({equal}, A {#, contains} B > 2, A {:, contains} B)
|
|
C = if({equal}, A {#, contains} B > 2, A {:, contains} B)
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
+
|
|
This expression selects all maps from A that temporally contains at least 2
|
|
This expression selects all maps from A that temporally contains at least 2
|
|
maps from B and stores them in space time dataset C. The leading equal statement
|
|
maps from B and stores them in space time dataset C. The leading equal statement
|
|
in the if condition specifies the temporal relation between the if and then part
|
|
in the if condition specifies the temporal relation between the if and then part
|
|
of the if expression. This is very important, so we do not need to specify a
|
|
of the if expression. This is very important, so we do not need to specify a
|
|
global time reference (a space time dataset) for temporal processing.
|
|
global time reference (a space time dataset) for temporal processing.
|
|
-<br>
|
|
|
|
-<br>
|
|
|
|
|
|
+<p>
|
|
Furthermore the temporal algebra allows temporal buffering, shifting
|
|
Furthermore the temporal algebra allows temporal buffering, shifting
|
|
and snapping with the functions buff_t(), tshift() and tsnap()
|
|
and snapping with the functions buff_t(), tshift() and tsnap()
|
|
respectively.
|
|
respectively.
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
buff_t(A, size) Buffer STDS A with granule ("1 month" or 5)
|
|
buff_t(A, size) Buffer STDS A with granule ("1 month" or 5)
|
|
tshift(A, size) Shift STDS A with granule ("1 month" or 5)
|
|
tshift(A, size) Shift STDS A with granule ("1 month" or 5)
|
|
tsnap(A) Snap time instances and intervals of STDS A
|
|
tsnap(A) Snap time instances and intervals of STDS A
|
|
</pre></div>
|
|
</pre></div>
|
|
-<br>
|
|
|
|
|
|
+
|
|
|
|
+
|
|
<h4>Single map with temporal extent</h4>
|
|
<h4>Single map with temporal extent</h4>
|
|
-The temporal algebra can also handle single maps with time stamps in the tmap function.
|
|
|
|
|
|
+
|
|
|
|
+The temporal algebra can also handle single maps with time stamps in
|
|
|
|
+the tmap function.
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
tmap()
|
|
tmap()
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
+
|
|
For example:
|
|
For example:
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
C = A {:,during} tmap(event)
|
|
C = A {:,during} tmap(event)
|
|
</pre></div>
|
|
</pre></div>
|
|
-This statement select all maps from space time data set A that are during the temporal extent of single map 'event'
|
|
|
|
|
|
|
|
-<br>
|
|
|
|
|
|
+This statement select all maps from space time data set A that are
|
|
|
|
+during the temporal extent of single map 'event'
|
|
|
|
|
|
<h3>Spatial vector operators</h3>
|
|
<h3>Spatial vector operators</h3>
|
|
|
|
|
|
-The module supports the following boolean vector operations: <br>
|
|
|
|
|
|
+The module supports the following boolean vector operations:<br>
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
Boolean Name Operator Meaning Precedence Correspondent function
|
|
Boolean Name Operator Meaning Precedence Correspondent function
|
|
----------------------------------------------------------------------------------
|
|
----------------------------------------------------------------------------------
|
|
@@ -326,21 +374,21 @@ The module supports the following boolean vector operations: <br>
|
|
DISJOINT OR + Disjoint union 1 (v.patch)
|
|
DISJOINT OR + Disjoint union 1 (v.patch)
|
|
XOR ^ Symmetric difference 1 (v.overlay operator=xor)
|
|
XOR ^ Symmetric difference 1 (v.overlay operator=xor)
|
|
NOT ~ Complement 1 (v.overlay operator=not)
|
|
NOT ~ Complement 1 (v.overlay operator=not)
|
|
-
|
|
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
And vector functions:
|
|
And vector functions:
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
buff_p(A, size) Buffer the points of vector map layer A with size
|
|
buff_p(A, size) Buffer the points of vector map layer A with size
|
|
buff_l(A, size) Buffer the lines of vector map layer A with size
|
|
buff_l(A, size) Buffer the lines of vector map layer A with size
|
|
buff_a(A, size) Buffer the areas of vector map layer A with size
|
|
buff_a(A, size) Buffer the areas of vector map layer A with size
|
|
</pre></div>
|
|
</pre></div>
|
|
-<br>
|
|
|
|
|
|
|
|
-<p>
|
|
|
|
<h3>Combinations of temporal, vector and select operators</h3>
|
|
<h3>Combinations of temporal, vector and select operators</h3>
|
|
|
|
|
|
-We combine the temporal topology relations, the temporal operators and the spatial/select operators to create spatio-temporal vector operators:
|
|
|
|
|
|
+We combine the temporal topology relations, the temporal operators and
|
|
|
|
+the spatial/select operators to create spatio-temporal vector
|
|
|
|
+operators:
|
|
|
|
|
|
<pre class="code">
|
|
<pre class="code">
|
|
{"spatial or select operator" , "list of temporal relations", "temporal operator" }
|
|
{"spatial or select operator" , "list of temporal relations", "temporal operator" }
|
|
@@ -356,27 +404,34 @@ If we have two STDS A and B, B has three maps: b1, b2, b3 that are all during
|
|
the temporal extent of the single map a1 of A, then the following overlay
|
|
the temporal extent of the single map a1 of A, then the following overlay
|
|
calculations would implicitly aggregate all maps of B into one result map for
|
|
calculations would implicitly aggregate all maps of B into one result map for
|
|
a1 of A:
|
|
a1 of A:
|
|
-<pre class="code">
|
|
|
|
|
|
+
|
|
|
|
+<div class="code"><pre>
|
|
C = A {&, contains} B --> c1 = a1 & b1 & b2 & b3
|
|
C = A {&, contains} B --> c1 = a1 & b1 & b2 & b3
|
|
-</pre><p>
|
|
|
|
|
|
+</pre></div>
|
|
|
|
+
|
|
Keep attention that the aggregation behaviour is not symmetric:
|
|
Keep attention that the aggregation behaviour is not symmetric:
|
|
-<pre class="code">
|
|
|
|
|
|
+
|
|
|
|
+<div class="code"><pre>
|
|
C = B {&, during} A --> c1 = b1 & a1
|
|
C = B {&, during} A --> c1 = b1 & a1
|
|
c2 = b2 & a1
|
|
c2 = b2 & a1
|
|
c3 = b3 & a1
|
|
c3 = b3 & a1
|
|
-</pre><p>
|
|
|
|
|
|
+</pre></div>
|
|
|
|
+
|
|
<h3>Examples: </h3>
|
|
<h3>Examples: </h3>
|
|
|
|
|
|
-Spatio-temporal intersect all maps from space time dataset A with all maps from space time dataset
|
|
|
|
-B which have equal time stamps and are temporary before Jan. 1. 2005 and
|
|
|
|
-store them in space time dataset D.
|
|
|
|
|
|
+Spatio-temporal intersect all maps from space time dataset A with all
|
|
|
|
+maps from space time dataset B which have equal time stamps and are
|
|
|
|
+temporary before Jan. 1. 2005 and store them in space time dataset D.
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
D = if(start_date(A) < "2005-01-01", A & B)
|
|
D = if(start_date(A) < "2005-01-01", A & B)
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
-Buffer all vector points from space time vector dataset A and B with a distance of one and
|
|
|
|
-intersect the results with overlapping, containing, during and equal temporal relations
|
|
|
|
-to store the result in space time vector dataset D with intersected time stamps.
|
|
|
|
|
|
+Buffer all vector points from space time vector dataset A and B with a
|
|
|
|
+distance of one and intersect the results with overlapping, containing,
|
|
|
|
+during and equal temporal relations to store the result in space time
|
|
|
|
+vector dataset D with intersected time stamps.
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
D = buff_p(A, 1) {&,overlaps|overlapped|equal|during|contains,i} buff_p(B, 1)
|
|
D = buff_p(A, 1) {&,overlaps|overlapped|equal|during|contains,i} buff_p(B, 1)
|
|
</pre></div>
|
|
</pre></div>
|
|
@@ -384,13 +439,14 @@ D = buff_p(A, 1) {&,overlaps|overlapped|equal|during|contains,i} buff_p(B, 1)
|
|
Select all maps from space time dataset B which are during the temporal
|
|
Select all maps from space time dataset B which are during the temporal
|
|
buffered space time dataset A with a map interval of three days, else
|
|
buffered space time dataset A with a map interval of three days, else
|
|
select maps from C and store them in space time dataset D.
|
|
select maps from C and store them in space time dataset D.
|
|
|
|
+
|
|
<div class="code"><pre>
|
|
<div class="code"><pre>
|
|
D = if(contains, td(buff_t(A, "1 days")) == 3, B, C)
|
|
D = if(contains, td(buff_t(A, "1 days")) == 3, B, C)
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
<h2>REFERENCES</h2>
|
|
<h2>REFERENCES</h2>
|
|
|
|
|
|
-<tt><a href="http://www.dabeaz.com/ply/">PLY(Python-Lex-Yacc)</a></tt>
|
|
|
|
|
|
+<a href="http://www.dabeaz.com/ply/">PLY(Python-Lex-Yacc)</a>
|
|
|
|
|
|
<h2>SEE ALSO</h2>
|
|
<h2>SEE ALSO</h2>
|
|
|
|
|
|
@@ -399,9 +455,9 @@ D = if(contains, td(buff_t(A, "1 days")) == 3, B, C)
|
|
</em>
|
|
</em>
|
|
|
|
|
|
|
|
|
|
-<h2>AUTHOR</h2>
|
|
|
|
|
|
+<h2>AUTHORS</h2>
|
|
|
|
|
|
-Thomas Leppelt, Soeren Gebbert, Thuenen Institut, Germany <br>
|
|
|
|
|
|
+Thomas Leppelt, Soeren Gebbert, Thünen Institute of Climate-Smart Agriculture
|
|
|
|
|
|
<p><i>Last changed: $Date$</i>
|
|
<p><i>Last changed: $Date$</i>
|
|
|
|
|