<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="NO-BOK" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Very cool! Thanks Markus.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">This sounds very useful.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">I hope I find the time soon to test it!<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> grass-user [mailto:grass-user-bounces@lists.osgeo.org]
<b>On Behalf Of </b>Markus Metz<br>
<b>Sent:</b> 28. november 2016 09:04<br>
<b>To:</b> Nikos Alexandris <nik@nikosalexandris.net>; Sajid Pareeth <spareeth@gmail.com><br>
<b>Cc:</b> GRASS user list <grass-user@lists.osgeo.org>; Abel Gelman <abel.gelman@gmail.com><br>
<b>Subject:</b> Re: [GRASS-user] Extracting vegetation phenology from Landsat-based time series<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">There is a new addon r.seasons which determines the number of seasons per pixel and extracts start and end dates for the given number of seasons from a time series.<o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">The module is designed for noisy input, e.g.<o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">time|value<br>
0|0<br>
1|0<br>
2|1<br>
3|0<br>
4|1<br>
5|1<br>
6|1<br>
7|0<br>
8|1<br>
9|1<br>
10|1<br>
11|1<br>
12|0<br>
13|0<o:p></o:p></p>
</div>
<p class="MsoNormal">with threshold 0.5 and minimum season length set to 3 would detect one season. Core season start is at 4, end at 10. Full season start is at 2, end at 10.<o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
Markus M<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Wed, Nov 9, 2016 at 4:17 PM, Nikos Alexandris <<a href="mailto:nik@nikosalexandris.net" target="_blank">nik@nikosalexandris.net</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<p class="MsoNormal" style="margin-bottom:12.0pt">Nikos Alexandris:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<p class="MsoNormal">Is the number of cycles per year in the Wiki as well?  Going through,<br>
last time, I think I didn't grasp that.  Can you pin-point?  It's<br>
exactly what we need at the moment.<o:p></o:p></p>
</blockquote>
</blockquote>
</blockquote>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
Veronica Andreo:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<p class="MsoNormal">Yes, maybe it is not well explained, but it is here:<br>
<a href="https://grasswiki.osgeo.org/wiki/Temporal_data_processing#Filling_and_reconstructing_time_series_data_with_gaps_-_HANTS" target="_blank">https://grasswiki.osgeo.org/wiki/Temporal_data_processing#Filling_and_reconstructing_time_series_data_with_gaps_-_HANTS</a><o:p></o:p></p>
</blockquote>
</blockquote>
<p class="MsoNormal"><o:p> </o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<p class="MsoNormal">and also in the manual under "NOTES"<br>
<a href="https://grass.osgeo.org/grass70/manuals/addons/r.hants.html" target="_blank">https://grass.osgeo.org/grass70/manuals/addons/r.hants.html</a><o:p></o:p></p>
</blockquote>
</blockquote>
<p class="MsoNormal"><o:p> </o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<p class="MsoNormal">The idea is, once you are happy with the result of hants, you ask for<br>
amplitude outputs and with those amplitude maps (you'll have one map per<br>
frequency) you run r.series method=max_raster. This will give you the most<br>
important frequency (according to amplitude value of that frequency) in<br>
each pixel. If the result is that the most important frequency is 0, then<br>
you have one cycle per year (that, if you use a base period of one year of<br>
course).<o:p></o:p></p>
</blockquote>
</blockquote>
<p class="MsoNormal"><o:p> </o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<p class="MsoNormal">Hope it is clearer now :)<o:p></o:p></p>
</blockquote>
</blockquote>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
Nikos:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<p class="MsoNormal">Yes. It was even before -- just me read through quickly.<br>
<br>
r.hants is awesome!<br>
<br>
We have 24 Landsat 8 derived EVI2 maps (2 for each month) for one year.<br>
Clouds and Water surfaces removed. Another set of "relatively normalised<br>
images, using `i.histo.match` is also ready.  We really need to "fix"<br>
`i.histo.match` to crunch floats directly.  The resulting ranges worry<br>
me a bit -- I just followed the "old" way as discussed some years ago in<br>
a relevant thread (floats > integers > histo-matching > floats).<br>
<br>
Anyhow, I am testing the following:<br>
<br>
for NF in 4 5 6 7 8 ;do r.hants file=evi2_maps nf=$NF fet=0.05 dod=3 base_period=24 suffix=_hants_nf_$NF amplitude=amplitude_hants_nf_$NF phase=phase_hants_nf_$NF ;done<br>
<br>
(thinking loudly... it would be super-nice to have `t.rast.hants`)<br>
<br>
Not sure about `dod`. Perhaps it should also follow a patten like 3 4 5<br>
6 and 7 for the above?<br>
<br>
for NF in 5 6 7 8 ; do t.rast.series evi2_hants_nf_$NF method=max_raster output=dominant_frequencies_hants_nf_$NF --o<o:p></o:p></p>
</blockquote>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
Just in case, the above *should* read:<br>
<br>
for NF in 4 5 6 7 8 ;do r.series input=`g.list rast pattern=amplitude*nf_${NF}* separator=comma` method=max_raster output=dominant_frequencies_hants_nf_${NF} --o ;done<br>
<br>
<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<p class="MsoNormal">"Dominant" frequencies 0, 1, 2 and 3 appear to be within the areas<br>
of our interest (agricultural surfaces).  Very good.  And convincing.<br>
Yet I am learning to interpret this correctly. And the "phase" as well.<br>
Reminds math studies, years ago.<o:p></o:p></p>
</blockquote>
<p class="MsoNormal"><br>
It is a "good" thing to actually have similar dominant frequency "maps"<br>
for all of the experimented Number of Frequencies.<br>
<br>
A confirmation would be reassuring.<br>
<br>
Thanks, Nikos<br>
<br>
[rest deleted]<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal"><br>
_______________________________________________<br>
grass-user mailing list<br>
<a href="mailto:grass-user@lists.osgeo.org" target="_blank">grass-user@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/grass-user" target="_blank">http://lists.osgeo.org/mailman/listinfo/grass-user</a><o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</body>
</html>