<div dir="ltr">Dear Soeren, <div><br></div><div>Thanks much for the explanations and tips. Will try to document this example, as well :)</div><div><br></div><div>Best, </div><div>Vero</div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-03-02 22:09 GMT+01:00 Sören Gebbert <span dir="ltr"><<a href="mailto:soerengebbert@googlemail.com" target="_blank">soerengebbert@googlemail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<span class=""><br>
2017-03-02 13:35 GMT+01:00 Veronica Andreo <<a href="mailto:veroandreo@gmail.com">veroandreo@gmail.com</a>>:<br>
> Hi list,<br>
><br>
> Just by mistake, I did an operation between two time series (strds) with<br>
> t.rast.algebra, and only after a while I realized that they have different<br>
> granularity (while I thought they had the same). One of them is daily (from<br>
> 00:00:00 to 00:00:00, 24 hs intervals) and the other is also daily, but<br>
> intervals are from 10:30 to 22:30 (12 hours). Anyway, the second one is<br>
> temporally included/contained in the first one. However, when I make a<br>
> substraction among them, I get an empty strds as result and no error nor<br>
> warning message.<br>
<br>
</span>The default temporal-topological operator is "equal". The expression:<br>
<br>
C = A - B<br>
<br>
is the short form of:<br>
<br>
C = A {-, equal, l} B<br>
<br>
Since your timestamps are not equal, the result is an empty STRDS.<br>
>From my standpoint this is the correct result of this expression, no<br>
need to raise an error or a warning. r.mapcalc for example will not<br>
warn you, if the result of your expression is an empty raster map.<br>
<br>
Using the correct temporal-topological operator is the key in your<br>
case. Your suggestion below is correct. You need to specify the<br>
"contains" relationship to compute the desired results.<br>
<br>
The following expression:<br>
<br>
C = A {-, contains} B<br>
<br>
means, compute the difference between all maps from A and B that<br>
fulfill the "contains" temporal relationship. The temporal topological<br>
operation will be evaluated between all maps from A and B. If a map<br>
from A has a contains relationship to one or several maps of B, then<br>
the difference between the two/many maps will be computed and the<br>
timestamp of the left side of the statement (timestamps from A) will<br>
be used for the resulting maps. You can specify if the left or right<br>
timestamps should be used for the result maps or the intersection or<br>
union of the involved map timestamps. Be aware that implicit<br>
aggregation will be performed if more than one map is found to compute<br>
the difference.<br>
<br>
Best regards<br>
Soeren<br>
<span class=""><br>
><br>
> This is how I wrote the command:<br>
><br>
> t.rast.algebra -n basename=lwr_minus_orig expression="abs_lwr_minus_orig =<br>
> abs(LST_Day_2016_lwr1 - LST_Day_2016_orig)"<br>
><br>
> How should it look like for the temporal topology to be considered, then?<br>
> Something like:<br>
><br>
> expression="abs_lwr_minus_orig = abs(LST_Day_2016_lwr1 { -, contains }<br>
> LST_Day_2016_orig)"  ??<br>
><br>
> Shouldn't a warning be raised when granularities are different and no<br>
> temporal topology operator is used? Dunno if that's possible at all.<br>
><br>
> Thanks for any tips<br>
><br>
> Vero<br>
><br>
</span>> ______________________________<wbr>_________________<br>
> grass-user mailing list<br>
> <a href="mailto:grass-user@lists.osgeo.org">grass-user@lists.osgeo.org</a><br>
> <a href="https://lists.osgeo.org/mailman/listinfo/grass-user" rel="noreferrer" target="_blank">https://lists.osgeo.org/<wbr>mailman/listinfo/grass-user</a><br>
</blockquote></div><br></div>