Dear Veronica
I think I found a simple solution using temporal raster
modules. Here is an example:
#evaluating info of the strds
eval `t.info mystrds -g`
#getting the starting day (of the year, 0-365) of my
strds
startday=$(date -d "$start_time" "+%j")
#Creating a new strds where each pixel has the value of
the count of the days starting from the start_day of my
strds (the start day in my dataset is in 2016)
t.rast.mapcalc inputs=mystrds
_expression_="(start_year()-2016)*365-${startday}
+start_doy()" output=days basename=days nprocs=xxx --o
#fitting the trend equation
r.regression.series xseries="`t.rast.list in=days
columns=name sep=, format=line`" yseries="` t.rast.list
in=mystrds columns=name sep=, format=line`"
out=regression_offset,regression_slope,regression_rsq,regression_t
meth=offset,slope,rsq,t
#detrending
t.rast.mapcalc input=mystrds,days
_expression_="mystrds_detrend
= mystrds-(regression_offset+regression_slope*days)"
output=mystrds_detrend basename=mystrds_detrend
nprocs=xxx method=start --o
Best
Ivan
On 23/12/23 14:53, Ivan Marchesini wrote:
Hi Veronica
Thank you. It goes in the direction of my idea evn
if my problem is exactly trying to take into account
the correct gaps between that data
I have another idea.
if it works I will come back here to explain how I
did
thank you again
Ivan
On 22/12/23 13:45, Veronica Andreo wrote:
Hello Ivan,
AFAIU you could use the slope and offset maps
from t.rast.series within t.rast.algebra to
detrend the values of the maps within the strds,
something like "detrended_strds = trend_strds -
(trend_strds*map(slope) + map(offset))". Others
suggest, to detrend by subtracting the previous
value, i.e. that would imply using the temporal
algebra with the temporal index, something like
"detrended_strds = trend_strds[1] -
trend_strds[0]".
I haven't tested any of these, just a couple of
ideas ;-) However, I do not know how this might
interact with seasonality within data, or
irregular gaps.
hth somehow
Vero
Dear
colleagues
I would like to the advantage of the t.* modules
for detrending a strd.
In the strd I have earth observation data
irregularly sampled (2 or 3
times per month), in the period November-February,
for 7 years. They are
not equally spaced (i.e gaps have different
duration)
A simple t.rast.series analysis
(opion=slope,offset) highlights that
probably there is a descending trend when
considering the maps ordered
by id.
I would like to fit a proper time depending
fitting curve for each pixel
and then subtract the function from the real data.
any hints on how I can do this task exploiting the
GRASS GIS modules or
some simple bash/python scripting?
thank you
Ivan
_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user