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

S Br sbr.climate at gmail.com
Fri Jul 7 04:31:13 MDT 2017


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
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170707/3b6c25cb/attachment.html 


More information about the ncl-talk mailing list