<div dir="ltr">Hi Lyndz,<div>local_min_1d allows the user to return the indices of the local mins as opposed to the actual values. You should run it once for the values, then run it again to get the indices:</div><div><div style="font-size:12.8px">; code is untested! </div><div style="font-size:12.8px">x = (/35.91,22.43,15.84,6.62,4.71,<wbr>9.67,12.25,2.01,30.25,85.64/)</div></div><div><span style="font-size:12.8px"> </span><span style="font-size:12.8px">qmin=local_min_1d(x,False,-0.<wbr>25,0)</span><br></div><div><span style="font-size:12.8px"> i</span><span style="font-size:12.8px">min=local_min_1d(x,False,-0.<wbr>25,1)</span><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"> qmin2 = new(dimsizes(qmin),typeof(qmin))</span></div><div><span style="font-size:12.8px"> cntr = 0</span></div><div><span style="font-size:12.8px"> do gg = 0,dimsizes(qmin)-1</span></div><div><span style="font-size:12.8px">     ival = imin(gg)</span></div><div><span style="font-size:12.8px">     if (ival.ge.2.and.ival.le.(dimsizes(x)-3)) then   ; do not test on end points of timeseries</span></div><div><span style="font-size:12.8px">        if ((x(ival-2)-x(ival-1)).ge.0.and.(x(ival-1)-x(ival)).ge.0.and.(x(ival+1)-x(ival)).ge.0.and.(x(ival+2)-x(ival+1)).ge.0) then    ; apply your criteria here</span></div><div><span style="font-size:12.8px">           qmin2(cntr) = x(ival)</span></div><div><span style="font-size:12.8px">           cntr = cntr+1</span></div><div><span style="font-size:12.8px">        end if</span></div><div><span style="font-size:12.8px">     end if</span></div><div><span style="font-size:12.8px"> end do</span></div><div><span style="font-size:12.8px">print(qmin2)</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Make sure you test the above code to check that it is doing what you think it is doing. I did not test it. For my criteria I arbitrarily chose to make sure that the two points before and after the identified min were greater than the value of the identified min. You will likely want to alter that in some way.</span></div><div><span style="font-size:12.8px">Good luck. If you have any further questions please reply to the ncl-talk email list.</span></div><div><span style="font-size:12.8px">Adam</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 5, 2018 at 8:09 PM, Lyndz <span dir="ltr"><<a href="mailto:olagueralyndonmark429@gmail.com" target="_blank">olagueralyndonmark429@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div class="m_-241274879024389755gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Dear NCL experts,</div><div><br></div><div>I am trying to locate the local minima in a time series (1D) but with additional condition that it has at least 2 decreasing adjacent points(before or after the local minima).</div><div><br></div><div>Here's an example</div><div><br></div><div>   <b> x = (/35.91,22.43,15.84,6.62,4.71,<wbr>9.67,12.25,2.01,30.25,85.64/)</b></div><div><br></div><div>To detect the local minima I used the following commands:</div><div><br></div><div>    <b>qmin=local_min_1d(x,False,-0.<wbr>25,0)<br></b></div><div><b>    print(qmin)</b></div><div><br></div><div>This gives the following:</div><div>  </div><div><b>     Variable: qmin </b></div><div><b>    Type: float  </b></div><div><b>    Total Size: 8 bytes</b></div><div><b>            2 values</b></div><div><b>    Number of Dimensions: 1</b></div><div><b>    Dimensions and sizes:<span style="white-space:pre-wrap">  </span>[2]</b></div><div><b>    Coordinates: </b></div><div><b>    (0)<span style="white-space:pre-wrap">    </span>4.71</b></div><div><b>    (1)<span style="white-space:pre-wrap"> </span>2.01</b></div><div><br></div><div>The answer to my problem above should be the (0) 4.71 since the 2.01 is an abrupt decrease.</div><div><br></div><div>Here's another example:</div><div><br></div><div>    <b> y = (/14.52,20.50,22.43,3.18,9.39,<wbr>10.95,65.38,40.45,5.89,16.75/)</b><b><wbr>   </b></div><div><div style="font-weight:400;color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span>     </span><b>qmin=local_min_1d(y,False,-0.<wbr>25,0)<br></b></div><div style="text-align:start;text-indent:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><b style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px">   </b><b style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px">  print(qmin)</b></div><div style="text-align:start;text-indent:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><b style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px"><br></b></div><div style="text-align:start;text-indent:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><div style="display:inline"><b>    Variable: qmin</b></div></div><div><b>    Type: float</b></div><div><b>    Total Size: 8 bytes</b></div><div><b>            2 values</b></div><div><b>    Number of Dimensions: 1</b></div><div><b>    Dimensions and sizes:<span style="white-space:pre-wrap">      </span>[2]</b></div><div><b>    Coordinates: </b></div><div><b>    (0)<span style="white-space:pre-wrap">    </span>3.18</b></div><div><b>    (1)<span style="white-space:pre-wrap"> </span>5.89</b></div><div style="font-weight:bold"><br></div><div>The answer here should be the (0) 3.18. The second one is also an abrupt decrease. </div><div><br></div><div>Is there an efficient way to implement this in NCL? I will be applying this for many csv files.</div><div><br></div><div><br></div><div>I'll appreciate any suggestion.</div><div><br></div><div>Sincerely,</div><div><br></div><div style="font-weight:bold">Lyndz</div><b>  </b></div><div><b><br></b></div><div><b><br></b></div></div></div></div></div></div></div></div></div></div></div>
</div>
<br>______________________________<wbr>_________________<br>
ncl-talk mailing list<br>
<a href="mailto:ncl-talk@ucar.edu">ncl-talk@ucar.edu</a><br>
List instructions, subscriber options, unsubscribe:<br>
<a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank">http://mailman.ucar.edu/<wbr>mailman/listinfo/ncl-talk</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div><div><span><font color="#888888">Adam Phillips <br></font></span></div><span><font color="#888888">Associate Scientist,  </font></span><span><font color="#888888">Climate and Global Dynamics Laboratory, NCAR<br></font></span></div></div><div><span><font color="#888888"><a href="http://www.cgd.ucar.edu/staff/asphilli/" target="_blank">www.cgd.ucar.edu/staff/asphilli/</a>   </font></span><span><font color="#888888">303-497-1726 </font></span></div><span><font color="#888888"></font></span><div><div><span><font color="#888888"><br></font></span><div><span><font color="#888888"><a href="http://www.cgd.ucar.edu/staff/asphilli" target="_blank"></a></font></span></div></div></div></div></div></div></div></div></div></div></div>
</div>