[ncl-talk] Error in running wheeler- kiladis script

Aditi Modi aditimodi91 at gmail.com
Mon Jul 24 23:30:16 MDT 2017


I sincerely apologise for having sent the incomplete script. I am aware
that the olr data is type short and have carefully converted it to type
float using the short2flt command but the error persisted. Thank you so
much for making corrections with the script. It works completely well.

Thanks and Regards,
Aditi




On 25 July 2017 at 07:00, Dennis Shea <shea at ucar.edu> wrote:

> Something 'funny' is going on here.
>
> You mention "OLR daily data from NOAA" . I assume you are referring to:
>        https://www.esrl.noaa.gov/psd/data/gridded/data.interp_OLR.html
>
> The NOAA 'olr' is type 'short'. It must be unpacked before it can be used.
> ---
> In your code, you read and use the variable directly:
>
>    olr =  f->olr
>
> 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, olr.day.mean.unpacked.nc
>
> ============
> The error message you included is from one of several * error checks *performed
> internally by the wkSpaceTime procedure*. *It checks to see if _FillValue
> (missing values) are present in the variable being processed. If
> _FillValue are encountered, wkSpaceTime  prints the following* fatal*
> error and terminates:
>
> nMsg=390635003  *User must preprocess to remove _FillValue*
> (0)               FFTs do not allow missing values!!
>
> The 390635003 indicates the overall total number of _FillValue.
>
> The key is: *User must preprocess to remove _FillValue*
>
> The *user* to whom the message is referring is you   :-)
>
> There is no magic. You must determine the continuous period that has no
> _FillValue.
> ---------
>
> Luckily, I have the original NOAA olr.day.mean.nc file. The olr variable
> is type short. Hence, short2flt must be used to to unpack the variable.
>    https://www.ncl.ucar.edu/Document/Functions/Contributed/short2flt.shtml
>
> 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 .
> ;-----------------------------------------------------------------
> ; Read the variable; Look at variable overview
> ;-----------------------------------------------------------------
>    latN = 15
>    latS = -latN
>
>    f    =  addfile("olr.day.mean.nc", "r")
>    olr =  short2flt( f->olr(*:,{latS:latN},*:) )   ; ALL times   ... <<<
> NOAA
>  ;;olr =  f->olr(*:,{latS:latN},*:) )                  ; ALL times   ...
> <<< your file
>
>    printVarSummary(olr)   *; Look at the variable!*
>    printMinMax(olr,0)
> *; Do the values look reasonable?*
>
> ;-----------------------------------------------------------------
> ; What dates are on the file?
> ; Convert 'time' to human readable  yyyymmdd
> ; https://www.ncl.ucar.edu/Document/Functions/Built-in/cd_calendar.shtml
> ;--------------------------------------------------------------------
>    ymd  = cd_calendar(olr*&*time, -2)          ; time -> yyyymmdd
>    dimo = dimsizes(olr)
>    ntim = dimo(0)                                        ; # days on file
>    print("First and Last dates on file: ymd(0)="+ymd(0)+"
> ymd(ntim-1)="+ymd(ntim-1))
>
> ;-----------------------------------------------------------------
> ; Determine the number of _FillValue in the olr variable
> ; Print the days that have _FillValue oresent
> ;-----------------------------------------------------------------
>
>    do nt=0,ntim-1      ; loop over each day; print days when _FillValue
> present
>         nmsg = num(ismissing(olr(nt,:,:)))
>         if (nmsg.ne.0) then
>             print(nt+"  "+ymd(nt) +"  nmsg="+nmsg)
>         end if
>      end do
>
> ----------
> OUTPUT:
>
> (0)    File First and Last dates: ymd(0)=19740601   ymd(ntim-1)=20131231
>
>            nt           ymd        # missing
> (*0)    1385  19780317  nmsg=10512    missing data block starts*
> (0)    1386  19780318  nmsg=10512
> [snip]
> (0)     1673  19781230  nmsg=10512
> *(0)     1674  19781231  nmsg=10512   missing data block ends*
>           ^^^^
>          Last index with _FillValue;
>
> *use next index 1674+1=1675 [ 19790101 ]*
> ============
>
> I think you should start at 1 Jan 1979 [ 19790101 ]: time index 1675.
>
>
> ; *Selected times* : 15S to 15N
>    olr =  short2flt( f->olr(*1675: ,{latS:latN}*,:) )   ;  <<< original
> NOAA file
>  ;;olr =  f->olr(1*675: ,{latS:latN}*,:) )                  ;  <<< your
> file
>
> 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
>
> **************************************
> FYI:    NCL version (6.1.2) is 4.5 years old.  You should upgrade to NCL
> version 6.4.0
>            http://www.ncl.ucar.edu/current_release.shtml
>
> On Mon, Jul 24, 2017 at 3:49 AM, Aditi Modi <aditimodi91 at gmail.com> wrote:
>
>> Dear all,
>>
>> I am trying to plot the wheeler kiladis diagram for the OLR daily data
>> from NOAA and the following ncl script shows the error:
>>
>> nMsg=390635003  User must preprocess to remove _FillValue
>> (0)               FFTs do not allow missing values!!
>>
>> Script: My NCL version (6.1.2)
>>
>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/diagnostics_cam.ncl"
>>
>>   case     = "wheeler"
>>   diro    = "./"
>>   latN    = 15
>>   latS    = -latN
>>
>>   nDayWin = 96
>>   nDaySkip =1
>>
>>    opt  = True
>>    opt at debug= True
>>    opt at pltType     = "eps"
>>    opt at cnLinesOn   = False   ; turn off contour lines
>>
>>    spd = 1
>>    var = "olr"
>>
>>  setfileoption("nc", "FileStructure", "Advanced")
>>
>>    f =  addfile("olr.day.mean.nc", "r")
>>  sla =  f->olr(:,{latS:latN},:)
>>
>> olr at _FillValue = olr at missing_value
>>
>>  wkSpaceTime (olr, diro, case, var,latN, spd, nDayWin, nDaySkip, opt  )
>>
>>
>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at ucar.edu
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170725/4da70c2e/attachment.html 


More information about the ncl-talk mailing list