Hi all Thanks MarkusM and Vero for the detailed follow up.
I also use r.hants a lot, and recently was trying to make use of amplitude and phase outputs to infer some of the phenological parameters from the annual cycle (still not sure, if it is a feasible approach). But it seems inadequate when it comes to determine the *start and end time of the growing season* in a year. I am looking for a solution along the line as given in this paper: https://www.researchgate.net/publication/238418948_Measuring_Phenological_Variability_From_Satellite_Imagery I think once we have the start and end of growing season, rest of the related parameters are easy to compute. May be, there already exists a way in GRASS to do it using TGRASS !!. Regards Sajid On Mon, Oct 31, 2016 at 10:40 AM, Veronica Andreo <[email protected]> wrote: > Hello Nikos and all :) > > Don't know exactly which parameters you would like to extract from your > time series, Nikos, but if helpful, what I did was to use a combination of > r.hants and temporal modules to get some phenological indicators such as, > number of cycles per year, yearly max and min values, dates of yearly max > and min values, period that the variable was above a certain threshold, max > rate of change (slope between every pair of maps and then aggregate per > year with method=maximum). Some of those examples are in the wiki [0]. I > believe that much more could be done with t.rast.algebra (it seems very > powerfull), but I haven't yet tested enough. > > @Sajid, I agree it would be great to have such functionalities as > "ready-to-use" module in GRASS, too. Therefore, we could avoid all the > steps of moving a time series into r and then back again into GRASS [1] > > @MarkusM, local weighted regression sounds cool. +1 for that! It would be > also very useful to have DINEOF [2] natively implemented. It is very nice > when you want to keep the variation of the series instead of smoothing it > out [1]. > > Best, > Vero > > [0] https://grasswiki.osgeo.org/wiki/Temporal_data_processing > [1] https://grasswiki.osgeo.org/wiki/Temporal_data_processing/ > GRASS_R_raster_time_series_processing > [2] http://modb.oce.ulg.ac.be/mediawiki/index.php/DINEOF > > 2016-10-31 10:06 GMT+01:00 Nikos Alexandris <[email protected]>: > >> * Markus Metz <[email protected]> [2016-10-30 22:30:46 >> +0100]: >> >> >> On Sun, Oct 30, 2016 at 12:37 PM, Nikos Alexandris >>> <[email protected]> wrote: >>> >>>> Nikos Alexandris: >>>> >>>> is there a GRASS-native, of GRASS-friendly, practical tool or tutorial >>>>>> or implementation of models, as in the TIMESAT [0] software or SPIRITS >>>>>> [1], to exctract phenological parameters from NDVI (or, preferrably >>>>>> EVI2) times series? >>>>>> >>>>>> Thank you, Nikos >>>>>> >>>>>> [0] http://web.nateko.lu.se/timesat/timesat.asp >>>>>> [1] http://spirits.jrc.ec.europa.eu/download/software/ >>>>>> >>>>> >>>> >>>> Sajid Pareeth: >>>> >>>>> >>>>> I was also looking for the same functionalities very recently. Closest >>>>> solution i could find is the 'greenbrown' package in R. Atleast we >>>>> could >>>>> make use of the GRASS-R interface to implement the work flow. >>>>> >>>>> Phenology function in this package has a good comprehensive list of >>>>> functions as in timestat and spirits. >>>>> See fig4 here: http://greenbrown.r-forge.r-project.org/phenology.php >>>>> >>>>> If you find anything else, please do post here. >>>>> >>>>> And above all, it would be really great to have these functionalities >>>>> in >>>>> GRASS ;) >>>>> >>>> >>>> >>>> Thank you Sajid. >>>> >>>> As I am not an expert in cropping cycles monitoring, I >>>> naively thought there would be more or less some ready to use tools in >>>> the GFOSS domain (TIMESAT requires Matlab, SPIRITS works only under >>>> Windows). >>>> >>>> R is good, but there is still the back-and-forth step. There is also a >>>> "french" tool for QGIS: >>>> https://plugins.qgis.org/plugins/VERSAO_VegaMonitor/ >>>> >>>> At the moment I am looking for an over-simplified way to just >>>> hint/classify surfaces on which multiple cropping cycles per year take >>>> place (related to industrial agricultural surfaces). Something to get >>>> going. >>>> >>>> Given TGRASS, if we find a practical algorithm, it shouldn't be too hard >>>> to implement it GRASS-natively. >>>> >>> >> Markus M: >> >> [ currently trying to get a grip on MODIS version 6 time series ] >>> >>> In theory, extracting seasons such as cropping cycles is quite easy to >>> implement: whenever a parameter in a time series is above/below a >>> given threshold, start/stop the season. The question is how to store >>> the results for multiple cropping cycles: a separate raster for each >>> cycle and each start and stop date? >>> >> >> May Yann's addon i.lmf (Temporal Local Maximum Fitting of vegetation >> indices) be useful within the context? (can't test it, it >> segfaults and I have no time to debug these days). >> >> Nikos >> >> For preparation, I think that GRASS needs more tools to remove >>> outliers and fill gaps in time series. A commonly used tool is local >>> weighted regression, also known as LOESS or LOWESS. >>> >>> I would like to have a module like r.series.lwr (local weighted >>> regression) in GRASS with the options >>> >>> * order=1,2,3 with 1 = linear regression, 2 = second order polynomial >>> regression, 3 = third order polynomial regression >>> * dod = degree of over-determination because for e.g. linear >>> regression you need only 2 data points but that gives an exact fit and >>> does not remove outliers, so a number of additional points >>> (over-determination) is needed for smoothing. The number of additional >>> points should not be too large, otherwise local real fluctuations can >>> not be represented by the regression and are smoothed out. >>> * weighing function: default tricube, additional options uniform, >>> triangular, epanechnikov, quartic, triweight, cosine >>> * extreme: iteratively replace outliers with the estimate until a >>> given goodness of fit (e.g. coefficient of determination) is obtained >>> >>> Output: one output for each input map. >>> >>> Currently I am using r.hants a lot, but r.hants assumes more or less >>> regular cycles in the time series (e.g. NDVI) and fits a single >>> function to the complete time series, while a local weighted >>> regression can work with much less points and can still capture >>> short-term non-linear fluctuations. >>> >>> Markus M >>> >> _______________________________________________ >> grass-user mailing list >> [email protected] >> http://lists.osgeo.org/mailman/listinfo/grass-user >> > > > _______________________________________________ > grass-user mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/grass-user >
_______________________________________________ grass-user mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/grass-user
