<div dir="ltr"><div><div>Something 'funny' is going on here. <br><br><div>You mention "OLR daily data from NOAA" . I assume you are referring to:<br> <a href="https://www.esrl.noaa.gov/psd/data/gridded/data.interp_OLR.html" target="_blank">https://www.esrl.noaa.gov/psd/<wbr>data/gridded/data.interp_OLR.h<wbr>tml</a></div><br></div><div>The NOAA 'olr' is type 'short'. It must be unpacked before it can be used.<br></div><div>---<br></div><div>In your code, you read and use the variable directly:<br><br> olr = f->olr<br></div><div> <b><br></b><div>I can only speculate that 'someone' unpacked the original NOAA OLR data and overwrote the original file. In my opinion, this is not good practice. A different file name should have been used: eg, <a href="http://olr.day.mean.unpacked.nc" target="_blank">olr.day.mean.unpacked.nc</a><b><br></b></div><br></div><div>============<br>The error message you included is from one of several <b> error checks </b>performed internally by the wkSpaceTime procedure<b>. </b>It checks to see if _FillValue (missing values) are present in the variable being processed.<b> </b>If _FillValue are encountered,<b> </b>wkSpaceTime<b> </b> prints the following<b> fatal</b> error and terminates:<b><br></b><br><div><div>nMsg=390635003 <b>User must preprocess to remove _FillValue</b></div><div>(0)<span class="gmail-m_3203004573618911010gmail-m_7802296798451148650m_-8599159757930805512m_-8696381555177108316m_-955502072596689012gmail-m_-450753619854072856m_9072145605408096830gmail-m_5722687567346561232gmail-Apple-tab-span" style="white-space:pre-wrap">        </span> FFTs do not allow missing values!! <br></div></div></div><br></div><div>The 390635003 indicates the overall total number of _FillValue.<br><br></div>The key is: <b>User must preprocess to remove _FillValue</b><div><div><div><br></div><div>The <b>user</b> to whom the message is referring is you :-)<br><br></div><div>There is no magic. You must determine the continuous period that has no _FillValue. <br></div><div>---------<br><br></div><div>Luckily, I have the original NOAA <a href="http://olr.day.mean.nc" target="_blank">olr.day.mean.nc</a> file. The olr variable is type short. Hence, short2flt must be used to to unpack the variable.<br> <a href="https://www.ncl.ucar.edu/Document/Functions/Contributed/short2flt.shtml" target="_blank">https://www.ncl.ucar.edu/Docum<wbr>ent/Functions/Contributed/shor<wbr>t2flt.shtml</a><br><br>Also, I (arbitrarily) used 15S to 15N and will use NCL's coordinate subscripting {...} to select the desired latitudes. You can use the latitude bounds that you want but I suggest thinking about the appropriate latitude band for your objective. Perhaps, talk to an adviser . <br>;-----------------------------------------------------------------<br></div><div>; Read the variable; Look at variable overview<br>;-----------------------------------------------------------------<br></div><div> latN = 15<br></div><div> latS = -latN<br></div><div><br> f = addfile("<a href="http://olr.day.mean.nc" target="_blank">olr.day.mean.nc</a>", "r")<br> olr = short2flt( f->olr(<b>:,{latS:latN},</b>:) ) ; ALL times ... <<< NOAA<br> ;;olr = f->olr(<b>:,{latS:latN},</b>:) ) ; ALL times ... <<< your file<br><br> printVarSummary(olr) <b>; Look at the variable!</b><br></div><div> printMinMax(olr,0) <b>; Do the values look reasonable?<br></b></div><div><br>;-----------------------------------------------------------------<br>; What dates are on the file?<br>; Convert 'time' to human readable yyyymmdd<br>; <a href="https://www.ncl.ucar.edu/Document/Functions/Built-in/cd_calendar.shtml" target="_blank">https://www.ncl.ucar.edu/Docum<wbr>ent/Functions/Built-in/cd_cale<wbr>ndar.shtml</a></div><div>;--------------------------------------------------------------------<br> ymd = cd_calendar(olr<b>&</b>time, -2) ; time -> yyyymmdd<br> dimo = dimsizes(olr)<br> ntim = dimo(0) <wbr> ; # days on file<br> print("First and Last dates on file: ymd(0)="+ymd(0)+" ymd(ntim-1)="+ymd(ntim-1))<br><br>;-----------------------------------------------------------------<br>; Determine the number of _FillValue in the olr variable<br></div><div>; Print the days that have _FillValue oresent<br></div><div>;-----------------------------------------------------------------<br><br> do nt=0,ntim-1 ; loop over each day; print days when _FillValue present<br> nmsg = num(ismissing(olr(nt,:,:)))<br> if (nmsg.ne.0) then<br> print(nt+" "+ymd(nt) +" nmsg="+nmsg)<br> end if<br> end do<br><br>----------<br></div><div>OUTPUT:<br></div><div><br>(0) File First and Last dates: ymd(0)=19740601 ymd(ntim-1)=20131231<br><br></div><div> nt ymd # missing<br></div><div>(<b>0) 1385 19780317 nmsg=10512 missing data block starts</b><br>(0) 1386 19780318 nmsg=10512<br></div><div>[snip]<br></div><div>(0) 1673 19781230 nmsg=10512<br><b>(0) 1674 19781231 nmsg=10512 missing data block ends</b><br> ^^^^<br></div><div> Last index with _FillValue; <b>use next index 1674+1=1675 [ 19790101 ]<br><br></b></div><div>============<br><br></div><div>I think you should start at 1 Jan 1979 [ 19790101 ]: time index 1675. <br><br> <wbr> <wbr> ; <b>Selected times</b> : 15S to 15N <br> olr = short2flt( f->olr(<b>1675: ,{latS:latN}</b>,:) ) ; <<< original NOAA file<br> ;;olr = f->olr(1<b>675: ,{latS:latN}</b>,:) ) ; <<< your file<br><br></div><div>Attached is a script that creates the Wheeler-Kiladis plots using olr between 15S and 15N. Change to read your data file and use your desired latS & latN<br><br></div>******************************<wbr>********<br>FYI: NCL version (6.1.2) is 4.5 years old. You should upgrade to NCL version 6.4.0<br> <a href="http://www.ncl.ucar.edu/current_release.shtml" target="_blank">http://www.ncl.ucar.edu/curren<wbr>t_release.shtml</a><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 24, 2017 at 3:49 AM, Aditi Modi <span dir="ltr"><<a href="mailto:aditimodi91@gmail.com" target="_blank">aditimodi91@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">Dear all,<div><br></div><div>I am trying to plot the wheeler kiladis diagram for the OLR daily data from NOAA and the following ncl script shows the error:</div><div><br></div><div><div>nMsg=390635003 User must preprocess to remove _FillValue</div><div>(0)<span class="m_-2389715254086519651gmail-Apple-tab-span" style="white-space:pre-wrap">        </span> FFTs do not allow missing values!! </div></div><div><br></div><div>Script: My NCL version (6.1.2)</div><div><br></div><div><div>load "$NCARG_ROOT/lib/ncarg/<wbr>nclscripts/csm/gsn_code.ncl"</div><div>load "$NCARG_ROOT/lib/ncarg/<wbr>nclscripts/csm/gsn_csm.ncl"</div><div>load "$NCARG_ROOT/lib/ncarg/<wbr>nclscripts/csm/contributed.<wbr>ncl"</div><div>load "$NCARG_ROOT/lib/ncarg/<wbr>nclscripts/csm/diagnostics_<wbr>cam.ncl"</div><div><br></div><div> case = "wheeler"</div><div> diro = "./"</div><div> latN = 15</div><div> latS = -latN</div><div><br></div><div> nDayWin = 96</div><div> nDaySkip =1</div><div><br></div><div> opt = True</div><div> opt@debug= True</div><div> opt@pltType = "eps"</div><div> opt@cnLinesOn = False ; turn off contour lines</div><div><br></div><div> spd = 1</div><div> var = "olr"</div><div><br></div><div> setfileoption("nc", "FileStructure", "Advanced")</div><div><br></div><div> f = addfile("<a href="http://olr.day.mean.nc" target="_blank">olr.day.mean.nc</a>", "r")</div><div> sla = f->olr(:,{latS:latN},:)</div><div><br></div><div>olr@_FillValue = olr@missing_value</div><div><br></div><div> wkSpaceTime (olr, diro, case, var,latN, spd, nDayWin, nDaySkip, opt )</div><div><br></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></div>