[ncl-talk] NetCDF output file from NCL not opening in GrADS

Dennis Shea shea at ucar.edu
Fri Jul 7 07:20:26 MDT 2017


   fn  = "tas_aave_Asia.nc" ; define filename
   in  = addfile(fn,"r")                                 ; open netcdf file
    x  = in->tasmask(:,0:0,0:0)                   ; get data; avoid
elimination of degenerate dimension
    printVarSummary(x)                             ; x(time,lat,lon)
; ***********************************************
; create the filter weights and apply
; ***********************************************

  ihp     = 2                             ; band pass
  sigma   = 1.0                           ; Lanczos sigma

  nWgt    = 201                           ; loose 100 each end
  fca     = 1./100.                       ; start freq
  fcb     = 1./30.                        ; last  freq
  wgt     = filwgts_lanczos (nWgt, ihp, fca, fcb, sigma )
  xBPF    = wgt_runave_n ( x, wgt, 0, 0 )      ; 30-100 days
  printVarSummary(xBPF)

***********************************************
; create new date array for use on the plot
; ***********************************************
  filo = "tas_aave_Asia_bandpass30-100.nc"
  system ("/bin/rm "+filo) ; remove any pre-existing file
  fo = addfile(filo , "c") ; open output file
*;;**filedimdef*
<http://www.ncl.ucar.edu/Document/Functions/Built-in/filedimdef.shtml>
(fo,"time",-1,True)       ; make 'time' unlimited
  fo->tasmax = xBPF                      ; write ud to a file

On Fri, Jul 7, 2017 at 6:04 AM, gibies george <gibiesgeorge at gmail.com>
wrote:

> But where is your original coordinate?
>
> On Jul 7, 2017 4:01 PM, "S Br" <sbr.climate at gmail.com> wrote:
>
>> Hi,
>> Thanks for your reply. Now I reshaped the variable and put an arbitrary
>> lat/lon value. Still, I couldn't open the file in GrADS.
>>
>> I have checked the output file, it correctly reading the dimension but
>> may be wrong with variables.
>>
>> ncdump -h tas_aave_Asia_bandpass30-100.nc
>> netcdf tas_aave_Asia_bandpass30-100 {
>> dimensions:
>> time = UNLIMITED ; // (1000 currently)
>> lat = 1 ;
>> lon = 1 ;
>> variables:
>> double tasmaskn(time, lat, lon) ;
>> tasmaskn:_FillValue = -999000000. ;
>> int lat(lat) ;
>> int lon(lon) ;
>> }
>>
>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>
>> ; ***********************************************
>> ; create new date array for use on the plot
>> ; ***********************************************
>>   filo = "tas_aave_Asia_bandpass30-100.nc"
>>   system ("/bin/rm "+filo) ; remove any pre-existing file
>>   fo = addfile(filo , "c") ; open output file
>>   filedimdef(fo,"time",-1,True)       ; make 'time' unlimited
>>   tasmask=xBPF
>>   ntime = 1000
>>   nlat = 1
>>   nlon = 1
>>   tasmaskn = reshape(tasmask,(/ntime,nlat,nlon/))
>>   printVarSummary(tasmaskn)
>>   tasmaskn!0="time"
>>   tasmaskn!1="lat"
>>   tasmaskn&lat=nlat
>>   tasmaskn!2="lon"
>>   tasmaskn&lon=nlon
>>   fo->tasmaskn = tasmaskn ; write ud to a file
>> end
>>
>>
>>
>>
>>
>>
>>
>> On Fri, Jul 7, 2017 at 8:45 AM, gibies george <gibiesgeorge at gmail.com>
>> wrote:
>>
>>> The first step I told is to reshape "tasmask" using reshape function.
>>>
>>> Secondly what I told is to put some arbitrary lat-lon coordinate value.
>>>
>>> On 6 July 2017 at 16:29, S Br <sbr.climate at gmail.com> wrote:
>>>
>>>> Hi Gibies,
>>>> Thanks for your reply. I have added as you suggested. I get some error
>>>> in the code. Do you think, I have done correctly.
>>>>
>>>> ; ***********************************************
>>>> ; create new date array for use on the plot
>>>> ; ***********************************************
>>>>   filo = "tas_aave_Asia_bandpass30-100.nc"
>>>>   system ("/bin/rm "+filo) ; remove any pre-existing file
>>>>   fo = addfile(filo , "c") ; open output file
>>>>   filedimdef(fo,"time",-1,True)       ; make 'time' unlimited
>>>>   tasmask=xBPF
>>>>   tasmask!0="time"
>>>>   tasmask!1="lat"
>>>>   tasmask&lat=*"lat" *
>>>>   tasmask!2="lon"
>>>>   tasmask&lon=*"lon"*
>>>>   fo->tasmask = tasmask ; write ud to a file
>>>> end
>>>>
>>>> I get the error as,
>>>>
>>>> fatal:Variable (tasmask) has (1) dimensions can not write to dimension
>>>> (1)
>>>> fatal:["Execute.c":8575]:Execute: Error occurred at or near line 38 in
>>>> file bandpass.ncl
>>>>
>>>> Thanks.
>>>> SB
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Jul 6, 2017 at 10:13 AM, gibies george <gibiesgeorge at gmail.com>
>>>> wrote:
>>>>
>>>>> I have seen those mails from Dr. Dennis and Dr. Adam.
>>>>>
>>>>> You can use reshape function to add additional coordinate to a
>>>>> variable. Define some single value coordinate for latitude and longitude.
>>>>>
>>>>> varname!0 ="time"
>>>>> varname!1 = "lat"
>>>>> varname&lat = .......
>>>>> varname!2 = "lon"
>>>>> varname&lon = ......
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Jul 6, 2017 2:08 PM, "S Br" <sbr.climate at gmail.com> wrote:
>>>>>
>>>>>> Hi Gibies,
>>>>>> NCL also provided the same solution as you have mentioned.
>>>>>> Could you please tell me how can I add single value coordinates
>>>>>> (time, lat, lon) to the variable.
>>>>>> Hope, you can write me the command for me.
>>>>>>
>>>>>> Thanks.
>>>>>> SB
>>>>>>
>>>>>> On Wed, Jul 5, 2017 at 5:58 PM, gibies george <gibiesgeorge at gmail.com
>>>>>> > wrote:
>>>>>>
>>>>>>> Yes, you can add single value coordinates (time lat lon) to the
>>>>>>> variable before saving it to nc file.
>>>>>>>
>>>>>>> On Jul 5, 2017 9:58 PM, "S Br" <sbr.climate at gmail.com> wrote:
>>>>>>>
>>>>>>>> Is it possible to do something inside the NCL script so that it can
>>>>>>>> be opened by GrADS.
>>>>>>>>
>>>>>>>> On Wed, Jul 5, 2017 at 5:25 PM, gibies george <
>>>>>>>> gibiesgeorge at gmail.com> wrote:
>>>>>>>>
>>>>>>>>> This is because grads required standard file coordinates
>>>>>>>>> structure. Time lat lon etc.
>>>>>>>>>
>>>>>>>>> On Jul 5, 2017 9:43 PM, "S Br" <sbr.climate at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>> I have applied bandpass filter to my one dimentional NetCDF file.
>>>>>>>>>> I have written the output to a NetCDF file but this output file is not
>>>>>>>>>> opening in GrADS. I get the following error.
>>>>>>>>>>
>>>>>>>>>> ga-> sdfopen tas_aave_Asia_bandpass30-100.nc
>>>>>>>>>> Scanning self-describing file:  tas_aave_Asia_bandpass30-100.nc
>>>>>>>>>> gadsdf: SDF file has no discernable X coordinate.
>>>>>>>>>>   To open this file with GrADS, use a descriptor file with an
>>>>>>>>>> XDEF entry.
>>>>>>>>>>   Documentation is at http://cola.gmu.edu/grads/gado
>>>>>>>>>> c/SDFdescriptorfile.html
>>>>>>>>>>
>>>>>>>>>> Could you please suggest if I am doing somewhere wrong in my NCL
>>>>>>>>>> script . The input file is perfectly fine with GrADS.
>>>>>>>>>>
>>>>>>>>>> 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"
>>>>>>>>>> begin
>>>>>>>>>>
>>>>>>>>>>    fn  = "tas_aave_Asia.nc" ; define filename
>>>>>>>>>>    in  = addfile(fn,"r")                                 ; open
>>>>>>>>>> netcdf file
>>>>>>>>>>     x  = in->tasmask(:,0,0)
>>>>>>>>>> ; get data
>>>>>>>>>>
>>>>>>>>>> ; ***********************************************
>>>>>>>>>> ; create the filter weights and apply
>>>>>>>>>> ; ***********************************************
>>>>>>>>>>
>>>>>>>>>>   ihp     = 2                             ; band pass
>>>>>>>>>>   sigma   = 1.0                           ; Lanczos sigma
>>>>>>>>>>
>>>>>>>>>>   nWgt    = 201                           ; loose 100 each end
>>>>>>>>>>   fca     = 1./100.                       ; start freq
>>>>>>>>>>   fcb     = 1./30.                        ; last  freq
>>>>>>>>>>   wgt     = filwgts_lanczos (nWgt, ihp, fca, fcb, sigma )
>>>>>>>>>>   xBPF    = wgt_runave ( x, wgt, 0 )      ; 30-100 days
>>>>>>>>>>
>>>>>>>>>>    copy_VarMeta(x,xBPF)
>>>>>>>>>>    dNames= getvardims(xBPF)
>>>>>>>>>>    dSIZES=dimsizes(xBPF)
>>>>>>>>>>    print (dNames)
>>>>>>>>>>    print (dSIZES)
>>>>>>>>>>
>>>>>>>>>> ; ***********************************************
>>>>>>>>>> ; create new date array for use on the plot
>>>>>>>>>> ; ***********************************************
>>>>>>>>>>   filo = "tas_aave_Asia_bandpass30-100.nc"
>>>>>>>>>>   system ("/bin/rm "+filo) ; remove any pre-existing file
>>>>>>>>>>   fo = addfile(filo , "c") ; open output file
>>>>>>>>>>   tasmax=xBPF(:)
>>>>>>>>>>   fo->tasmax = tasmax ; write ud to a file
>>>>>>>>>> end
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks.
>>>>>>>>>> SB
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> ncl-talk mailing list
>>>>>>>>>> ncl-talk at ucar.edu
>>>>>>>>>> List instructions, subscriber options, unsubscribe:
>>>>>>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>
>>>
>>
> _______________________________________________
> 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/20170707/24f86e94/attachment.html 


More information about the ncl-talk mailing list