[ncl-talk] Save in netcdf

Dennis Shea shea at ucar.edu
Wed Jul 18 00:44:24 MDT 2018


;---Read needed variables from file

  itStrt = 9         ;
  itLast = 12
  lonStrt = 20
  lonLast = 100

   u       = short2flt(in->u(itStrt:itLast,:,::-1,lonStrt:lonLast))
   SPH  = short2flt(in1->q(itStrt:itLast,:,::-1,lonStrt:lonLast))
   printVarSummary(u)

 ;===> NO: lat=in->latitude(::-1)              Do not explicitly read from
file
 :===> NO: lon=in->longitude(20:100)    NCL does the book keeping
 ;===> NO: time=in->time(09:12)           as part of data structure/object
input

  u&level = u&level*100         ; over write with new values
  u&level at units = "Pa"
  printVarSummary(u)            ; LOOK at this

;--- Zonal moisture transport
---------------------------------------------------------------------
ZMT=u*SPH                                                        ; not
appropriate to use monthly means for

; for a non-linear quantity
ZMT at long_name = "zonal moisture transport"
ZMT at units="(m/s)(kg/kg)"
copy_VarCoords(u, ZMT)
printVarSummary(ZMT)

---
Use Method 1 to write netCDF ... easier

   filo = "example.nc"                    ; Output file

*   system* <http://www.ncl.ucar.edu/Document/Functions/Built-in/system.shtml>("/bin/rm
-f example.nc")   ; remove any pre-existing file

        fout  = addfile (filo, "c")            ; open output file

;===================================================================
; create global attributes of the file

        fAtt               = True            ; assign file attributes
        fAtt at title         = "NCL Simple Approach to netCDF Creation"
        fAtt at source_file   = "uvwtz_Dec2016.nc"
        fAtt at Conventions   = "None"
        fAtt at creation_date = systemfunc ("date")
        fileattdef( fout, fAtt )            ; copy file attributes

    ;===================================================================
    ; make time an UNLIMITED dimension; recommended  for most applications
    ;===================================================================
       *filedimdef*
<http://www.ncl.ucar.edu/Document/Functions/Built-in/filedimdef.shtml>(ncdf,"time",-1,True)

     fout->ZMT  = ZMT                          ; 4D


On Tue, Jul 17, 2018 at 11:05 AM, Soma Roy <somaroy892 at gmail.com> wrote:

> It again shows the following error message;
>
> fatal:Variable (lev) is undefined
> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 44 in
> file TEST1.ncl
>
> 'latitude', 'longitude', 'level' and 'time' are named as variable's
> dimensions in input file which is very clear from printVarSummary of the
> data. I modified the code as per your hints. Modified code is attached
> below. Kindly inform me where I am doing wrong again.
>
>
> Thanks,
> Soma
>
> On Tue, Jul 17, 2018 at 10:09 PM, Karin Meier-Fleischer <
> meier-fleischer at dkrz.de> wrote:
>
>> Hi Soma,
>>
>> please, reply always to ncl-talk that everybody is able to follow.
>>
>> The problem is, that you changed the name of the level dimension to lev.
>> ZMT has the dimension name level. Change lev to level and it should work or
>>
>> ZMT!1    = "lev"
>> ZMT&lev = lev
>>
>> -Karin
>>
>> Am 17.07.18 um 14:06 schrieb Soma Roy:
>>
>> In the directory there is no file named as example.nc.
>> It is created at the run time.
>>
>> Now I am getting the following error massage;
>>
>> FileAddVar, in file: NclFile.c, line: 412
>> fatal:FileAddVar: Dimension (level) is not currently defined, can't add
>> variable
>> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 77 in
>> file TEST1.ncl
>>
>> Kindly inform me what I am doing wrong in this.
>>
>> Thanking you,
>> Soma
>>
>>
>> On Tue, Jul 17, 2018, 16:31 Karin Meier-Fleischer <
>> meier-fleischer at dkrz.de> wrote:
>>
>>> Hi Soma,
>>>
>>> if the file example.nc already exists NCL can't create a new one with
>>> the same name. You have to remove the file, first.
>>>
>>>     filo = "example.nc"                    ; Output file
>>> *    system("rm -rf "+filo)*
>>>     fout  = addfile (filo, "c")            ; open output file
>>>
>>> -Karin
>>>
>>> Am 17.07.18 um 12:22 schrieb Soma Roy:
>>>
>>> I am trying to save the variable ZMT in NetCDF file following the
>>> instructions at the below-mentioned link;
>>>
>>> http://www.ncl.ucar.edu/Applications/method_2.shtml
>>>
>>> Summary of the dataset is as follows;
>>>
>>> Variable: lat
>>> Type: float
>>> Total Size: 244 bytes
>>>             61 values
>>> Number of Dimensions: 1
>>> Dimensions and sizes:   [latitude | 61]
>>> Coordinates:
>>>             latitude: [ 5..20]
>>> Number Of Attributes: 2
>>>   units :       degrees_north
>>>   long_name :   latitude
>>>
>>> Variable: lon
>>> Type: float
>>> Total Size: 324 bytes
>>>             81 values
>>> Number of Dimensions: 1
>>> Dimensions and sizes:   [longitude | 81]
>>> Coordinates:
>>>             longitude: [70..90]
>>> Number Of Attributes: 2
>>>   units :       degrees_east
>>>   long_name :   longitude
>>>
>>> Variable: time
>>> Type: integer
>>> Total Size: 16 bytes
>>>             4 values
>>> Number of Dimensions: 1
>>> Dimensions and sizes:   [time | 4]
>>> Coordinates:
>>>             time: [1025088..1025160]
>>> Number Of Attributes: 3
>>>   units :       hours since 1900-01-01 00:00:0.0
>>>   long_name :   time
>>>   calendar :    gregorian
>>>
>>>
>>> Variable: pnew
>>> Type: integer
>>> Total Size: 112 bytes
>>>             28 values
>>> Number of Dimensions: 1
>>> Dimensions and sizes:   [level | 28]
>>> Coordinates:
>>>             level: [70..1000]
>>> Number Of Attributes: 2
>>>   units :       Pa
>>>   long_name :   pressure_level
>>> (0)     7000
>>> (1)     10000
>>> (2)     12500
>>> (3)     15000
>>> ..........
>>> (26)    97500
>>> (27)    100000
>>>
>>> Variable: ZMT
>>> Type: float
>>> Total Size: 2213568 bytes
>>>             553392 values
>>> Number of Dimensions: 4
>>> Dimensions and sizes:   [time | 4] x [level | 28] x [latitude | 61] x
>>> [longitude | 81]
>>> Coordinates:
>>>             time: [1025088..1025160]
>>>             level: [70..1000]
>>>             latitude: [ 5..20]
>>>             longitude: [70..90]
>>> Number Of Attributes: 3
>>>   units :       (m/s)(kg/kg)
>>>   long_name :   zonal moisture transport
>>>   _FillValue :  -32767
>>>
>>> At run-time, I am getting the following error message;
>>>
>>> fatal:Could not create (example.nc)
>>> warning:FileSetFileOption: invalid file or format
>>> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 65 in
>>> file TEST1.ncl
>>>
>>> My script is attached below.
>>>
>>> Please kindly inform me what is wrong with this code and how to fix it.
>>>
>>> Thanking you,
>>> Soma
>>>
>>>
>>> _______________________________________________
>>> ncl-talk mailing listncl-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
>>>
>>
>
> _______________________________________________
> 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/20180718/32cfd5f9/attachment.html>


More information about the ncl-talk mailing list