Re: ECMWF operational analysis

From: David Ian Brown <dbrown_at_nyahnyahspammersnyahnyah>
Date: Sat, 25 Mar 2006 11:33:05 -0700

Hi Dennis and Andrea,

QU2REG is the Fortran routine from ECMWF that converts quasi-regular
(thinned) GRIB grids to
regular grids. It has nothing to do with spherical harmonics. I removed
the
size restriction that causes the error message in Andrea's code last
August. Now the
memory is allocated dynamically and theoretically allows any size grid.
  Andrea, you
need to update your NCL to the most recent version.

Also with regards to the wxMaximumSize resource, the values are in
bytes. With a
modern computer you can usually set it much higher than the default
size of 16 MB.
My .hluresfile has it set to ~ 100 MB:

  *wsMaximumSize : 100000000

Hope this helps,
  -dave
On Mar 25, 2006, at 9:00 AM, Dennis Shea wrote:

> On Sat, 25 Mar 2006, Andrea Storto wrote:
>> I tried to plot Q (Rel. Hum. not in form of spherical harmonics
>> coefficients) rather than Temperature,
>> anyway I get:
>> *****************
>> QU2REG : Number of latitudes is 800, maximum allowed is 320
>> *****************
>>
> Buongiorno
>
> I have no idea where/why "QU2REG" is used.
>
> The attached script plots Q directly. [NCL version a033]
>
> ncl 'myfile="ana_yest.grb"' GRIB_Q.ncl
>
> An image may be viewed at:
> http://www.cgd.ucar.edu/web/public_html/shea/ana_yest.grb.png
> D
>
>>
>>
>>
>> Dennis Shea mi ha detto il 03/24/2006 04:19 PM:
>>
>>> Hello,
>>> Technically, I am on vacation ... :-)
>>> However, I did not want this to go unanswered.
>>> I asked Andrea to send me a sample file.
>>> ECMWF operational data are generally given as spherical harmonic
>>> coefficients. I suspected
>>> that was the problem.
>>> *Always* look at a data file before processing. Using ncl_filedump
>>> [a033] ....
>>>
>>> ncl_filedump ana_yest.grb
>>> reveals
>>> ------------------------
>>> NCAR Command Language Version 4.2.0.a033
>>> Variable: f (file variable)
>>> filename: ana_yest
>>> path: ana_yest.grb
>>> file global attributes:
>>> dimensions:
>>> lv_ISBL0 = 4
>>> real_imaginary = 2 <====== Note
>>> g50_lat_2 = 800
>>> g50_lon_3 = 800
>>> g4_lat_4 = 800
>>> g4_lon_5 = 1600
>>> variables:
>>> [snip]
>>> float T_GDS50_ISBL ( lv_ISBL0, real_imaginary, g50_lat_2,
>>> g50_lon_3 )
>>> ^^^^^^^^^^^^^^
>>> center : European Center for Medium-Range Weather
>>> Forecasts - Reading
>>> long_name : Temperature
>>> units : K
>>> _FillValue : -999
>>> level_indicator : 100
>>> gds_grid_type : 50
>>> parameter_table_version : 128
>>> parameter_number : 130
>>> forecast_time : 0
>>> initial_time : 03/19/2006 (12:00)
>>> [snip]
>>> float Q_GDS4_ISBL ( lv_ISBL0, g4_lat_4, g4_lon_5 )
>>> center : European Center for Medium-Range Weather
>>> Forecasts - Reading
>>> long_name : Specific humidity
>>> units : kg kg**-1
>>> _FillValue : -999
>>> level_indicator : 100
>>> gds_grid_type : 4
>>> parameter_table_version : 128
>>> parameter_number : 133
>>> forecast_time : 0
>>> initial_time : 03/19/2006 (12:00)
>>> [snip]
>>> --------------------------------------------
>>> Q_GDS4_ISBL are 'regular' data
>>>
>>> in = addfile(myfile,"r")
>>> lev = in->lv_ISBL0
>>> klev = dimsizes(lev)
>>>
>>> wks = gsn_open_wks("ncgm", myfile) ; open a ps file
>>> gsn_define_colormap(wks,"BlAqGrYeOrRe") ; choose colormap
>>> res = True ; plot mods desired
>>> res@cnFillOn = True ; turn on color fill
>>> res@cnLinesOn = False ; turn off contour
>>> lines
>>> res@gsnSpreadColors = True ; use full range of
>>> color map
>>> ;************************************************
>>> ; loop over levels
>>> ; plot Q directly ... it is not in complex form
>>> ; these arrays are big ... just do one at a time
>>> ;************************************************
>>>
>>> do kl=0,klev-1
>>> Q = in->Q_GDS4_ISBL(kl,:,:)
>>> res@tiMainString = Q_at_initial_time
>>> res@gsnCenterString = "lev="+lev(kl)
>>> plot = gsn_csm_contour_map_ce(wks,Q,res)
>>> end do
>>> -----------------
>>> T_GDS50_ISBL [also (not shown), Z, U, V] are spherical harmonic coef
>>> The must be synthesized before they can be used.
>>> NCL's shsgc should handle this.
>>> I will look at this next week.
>>> Regards
>>> D
>>> On Fri, 24 Mar 2006, Andrea Storto wrote:
>>>> Hi,
>>>> Of course there's a problem of definition of lat and long
>>>> coordinates,
>>>> **********************
>>>> Variable: T
>>>> Type: float
>>>> Total Size: 2560000 bytes
>>>> 640000 values
>>>> Number of Dimensions: 2
>>>> Dimensions and sizes: [g50_lat_2 | 800] x [g50_lon_3 | 800]
>>>> Coordinates:
>>>> Number Of Attributes: 10
>>>> lv_ISBL0 : 500
>>>> center : European Center for Medium-Range Weather Forecasts -
>>>> Reading
>>>> long_name : Temperature
>>>> units : K
>>>> _FillValue : -999
>>>> level_indicator : 100
>>>> grid_number : 255
>>>> parameter_number : 130
>>>> forecast_time : 0
>>>> initial_time : 03/19/2006 (12:00)
>>>> **********************
>>>> anyway, further to this, I used a new wxMaximumSize , and I get the
>>>> same message:
>>>> ************
>>>> fatal:ContourPlotDraw: Workspace reallocation would exceed maximum
>>>> size 33554432
>>>> fatal:ContourPlotDraw: draw error
>>>> ************
>>>> or
>>>> ************
>>>> fatal:ContourPlotDraw: ARSCAM - MCS TOO SMALL
>>>> fatal:ContourPlotDraw: draw error
>>>> ************
>>>> if I increase again the wsMaximumSize.
>>>> Thanks,
>>>> Andrea
>>>> Saji Njarackalazhikam Hameed mi ha detto il 03/23/2006 11:47 PM:
>>>>> Andrea,
>>>>>
>>>>> 1. It will be helpful to print out a summary of the variable
>>>>> you
>>>>> are plotting, PrintVarSummary(T), so that one knows how
>>>>> (well) the variable T is defined.
>>>>>
>>>>> 2. Try plotting with
>>>>> plot = gsn_contour(wks,T(:,:),res)
>>>>> If this works, the co-ordinate axes of T are not properly
>>>>> described. For instance, longitude should have units of
>>>>> degrees_east
>>>>> longitude_at_units="degrees_east"
>>>>>
>>>>> gsn_csm_contour_map?? expects the variable to be properly
>>>>> described
>>>>> see:
>>>>>
>>>>>
>>>>> http://www.ncl.ucar.edu/Document/Graphics/Interfaces/
>>>>> gsn_csm_contour_map.shtml
>>>>> I guess the following code snippet may make the plotting with
>>>>> gsn_csm_contour_map work
>>>>> T!0="latitude"
>>>>> T!1="longitude"
>>>>> T&longitude=g4_lon_5
>>>>> T&longitude_at_units="degrees_east"
>>>>> I don't know the name of the latitude co-ordinate
>>>>> variable, but follow the above example
>>>>>
>>>>> 3. To reallocate workspace, get a sample .hluresfile from the
>>>>> following link and modify the last entry appropriately:
>>>>> http://www.ncl.ucar.edu/Document/Graphics/hlures.shtml
>>>>>
>>>>> For instance:
>>>>> *wsMaximumSize: 32556688
>>>>> Hope these hints help,
>>>>> saji
>>>>> ....
>>>>> * Andrea Storto <andrea.storto_at_uniroma1.it> [2006-03-23 13:15:26
>>>>> +0100]:
>>>>>> Hi all,
>>>>>> maybe it's an old topic, but I couldn't find anything to solve my
>>>>>> problems, anyway,
>>>>>> I got an ECMWF operational analysis via the MARS archive,
>>>>>> (only Z,U,V,Q-rel.hum.-,T for 4 press levels),
>>>>>> In my ncl script I print out the variables and the isobaric
>>>>>> levels:
>>>>>> *********************
>>>>>> Variable: names
>>>>>> Type: string
>>>>>> Total Size: 32 bytes
>>>>>> 8 values
>>>>>> Number of Dimensions: 1
>>>>>> Dimensions and sizes: [8]
>>>>>> Coordinates:
>>>>>> (0) lv_ISBL0
>>>>>> (1) g4_lon_5
>>>>>> (2) g4_lat_4
>>>>>> (3) Q_GDS4_ISBL
>>>>>> (4) V_GDS50_ISBL
>>>>>> (5) U_GDS50_ISBL
>>>>>> (6) T_GDS50_ISBL
>>>>>> (7) Z_GDS50_ISBL
>>>>>> Variable: lv_ISBL0 (file variable)
>>>>>> Type: integer
>>>>>> Total Size: 16 bytes
>>>>>> 4 values
>>>>>> Number of Dimensions: 1
>>>>>> Dimensions and sizes: [lv_ISBL0 | 4]
>>>>>> Coordinates:
>>>>>> lv_ISBL0: [500..1000]
>>>>>> Number Of Attributes: 2
>>>>>> long_name : isobaric level
>>>>>> units : hPa
>>>>>> (0) 500
>>>>>> (1) 700
>>>>>> (2) 850
>>>>>> (3) 1000
>>>>>> ***********************
>>>>>> When I try to store a variable and plot it through the functions:
>>>>>> T = in->T_GDS50_ISBL(0,0,:,:)
>>>>>> or
>>>>>> T = in->T_GDS50_ISBL
>>>>>> and (after very simple definition of "res" attributes)
>>>>>> plot = gsn_csm_contour_map_ce(wks,T(:,:),res)
>>>>>> or
>>>>>> plot = gsn_csm_contour_map_ce(wks,T(:,:,:,:),res)
>>>>>> I found two problems:
>>>>>> 1 - Definition of long and lat:
>>>>>> *************
>>>>>> (0) check_for_y_lat_coord: Warning: Data either does not
>>>>>> contain a valid latitude coordinate array or doesn't contain one
>>>>>> at all.
>>>>>> (0) A valid latitude coordinate array should have a 'units'
>>>>>> attribute equal to one of the following values:
>>>>>> (0) 'degrees_north' 'degrees-north' 'degree_north'
>>>>>> 'degrees north' 'degrees_N' 'Degrees_north' 'degree_N' 'degreeN'
>>>>>> 'degreesN'
>>>>>> (0) check_for_lon_coord: Warning: Data either does not
>>>>>> contain a valid longitude coordinate array or doesn't contain one
>>>>>> at all.
>>>>>> (0) A valid longitude coordinate array should have a 'units'
>>>>>> attribute equal to one of the following values:
>>>>>> (0) 'degrees_east' 'degrees-east' 'degree_east' 'degrees
>>>>>> east' 'degrees_E' 'Degrees_east' 'degree_E' 'degreeE' 'degreesE'
>>>>>> *************
>>>>>> ...Perhaps... if I print the longitude variable (g4_lon_5) it's
>>>>>> ranging from 0 to 360 (all positives)!
>>>>>> Something strange or not?
>>>>>> 2 - Reallocation:
>>>>>> ****************
>>>>>> fatal:ContourPlotDraw: Workspace reallocation would exceed
>>>>>> maximum size 16777216
>>>>>> fatal:ContourPlotDraw: draw error
>>>>>> warning:WorkstationDeactivate: workstation not active or not
>>>>>> opened
>>>>>> ****************
>>>>>> I don't know how to solve it!
>>>>>> Thanks in advance, if the problem was already dealt with, please
>>>>>> link
>>>>>> the topic!
>>>>>> _______________________________________________
>>>>>> ncl-talk mailing list
>>>>>> ncl-talk_at_ucar.edu
>>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>> _______________________________________________
>>>> ncl-talk mailing list
>>>> ncl-talk_at_ucar.edu
>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk_at_ucar.edu
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
> <GRIB_Q.ncl>_______________________________________________
> ncl-talk mailing list
> ncl-talk_at_ucar.edu
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk

_______________________________________________
ncl-talk mailing list
ncl-talk_at_ucar.edu
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Sat Mar 25 2006 - 11:33:05 MST

This archive was generated by hypermail 2.2.0 : Wed Mar 29 2006 - 11:52:49 MST