[ncl-talk] Vertical motion with zonal wind

Dennis Shea shea at ucar.edu
Tue Feb 27 19:58:15 MST 2018


*** The most important rule in data processing is "look at your data".  ***
------

The reason that ncl-talk recommends using

printVarSummary(...)

and

printMinMax(..., ...)
------

is so that *users* can examine a variable's

(a) data type
(b) dimension sizes and dimension names
(c) units
etc

You have


   T = in->t                                    ; select variable to ave
   W = in->w
   W=-W
   V = in->v
   U = in->u
   Q = in->q

  printVarSummary(T)
  printVarSummary(W)
  printVarSummary(V)
  printVarSummary(U)
  printVarSummary(hyam)
  printVarSummary(hybm)
 printVarSummary(PS)


then you immediately do the vertical interpolation

;---Define other arguments required by vinth2p
   interp = 2
   pnew   =
(/1000,975,950,900,850,800,750,700,600,500,400,300,250,200,150,100,50/)
   pnew at units = "mb"

;---Interpolate to pressure levels on pressure levels
  t = vinth2p(T,hyam,hybm,pnew,PS,interp,P0mb,1,False)

=========
The initial

printVarSummary(T)

Variable: T
*Type: short*
Total Size: 2724120 bytes
            1362060 values
Number of Dimensions: 4
Dimensions and sizes:   [time | 1] x [level | 60] x [latitude | 161] x
[longitude | 141]
Coordinates:
            time: [969705..969705]
            level: [   1..  60]
            latitude: [40.. 0]
            longitude: [65..100]
Number Of Attributes: 7
  standard_name :       air_temperature
  long_name :   Temperature
  units :       K
*  add_offset :  249.3816473297584*


*  scale_factor :        0.002009905912815991*
Before use, you ***must***


* UNPACK the variable---*
Please read the documentation of the following:

https://www.ncl.ucar.edu/Document/Functions/Contributed/short2flt.shtml


*  T = short2flt(in->t)                                    ; select
variable: unpack;  later ave*

*  printVarSummary(T)*


*  printMinMax(T,0)*
Please look at the output.

---
So, unpack each variable that is type short on the file. Thendo the
vertical interpolation, etc


Good Luck





On Tue, Feb 27, 2018 at 5:25 AM, Jenny Taylor <jenny63taylor91 at gmail.com>
wrote:

> My thanks to Dennis Shea and Adam Philips for valuable advice.
> I am trying to plot ERA-Interim model data at different vertical pressure
> levels. I have downloaded the 'hyam' and 'hybm' for model levels (attached
> below) as specified in the ERA-Interim link;
>
> https://rda.ucar.edu/datasets/ds627.0/docs/Eta_coordinate/index.html
>
> Downloaded the daily data (time step=4) for all 60 levels in
> the separate file (4 GB approx). Then I merged these two files in CDO and
> time mean the merged data.
>
> Summary of the final processed data is given below;
>
> Variable: PS1
> Type: short
> Total Size: 2724120 bytes
>             1362060 values
> Number of Dimensions: 4
> Dimensions and sizes:   [time | 1] x [level | 60] x [latitude | 161] x
> [longitude | 141]
> Coordinates:
>             time: [969705..969705]
>             level: [   1..  60]
>             latitude: [40.. 0]
>             longitude: [65..100]
> Number Of Attributes: 6
>   long_name :   Logarithm of surface pressure
>   units :       ~
>   add_offset :  11.19559352539406
>   scale_factor :        1.015380172027476e-05
>   _FillValue :  -32767
>   missing_value :       -32767
>
> Variable: T
> Type: short
> Total Size: 2724120 bytes
>             1362060 values
> Number of Dimensions: 4
> Dimensions and sizes:   [time | 1] x [level | 60] x [latitude | 161] x
> [longitude | 141]
> Coordinates:
>             time: [969705..969705]
>             level: [   1..  60]
>             latitude: [40.. 0]
>             longitude: [65..100]
> Number Of Attributes: 7
>   standard_name :       air_temperature
>   long_name :   Temperature
>   units :       K
>   add_offset :  249.3816473297584
>   scale_factor :        0.002009905912815991
>   _FillValue :  -32767
>   missing_value :       -32767
>
> Variable: W
> Type: short
> Total Size: 2724120 bytes
>             1362060 values
> Number of Dimensions: 4
> Dimensions and sizes:   [time | 1] x [level | 60] x [latitude | 161] x
> [longitude | 141]
> Coordinates:
>             time: [969705..969705]
>             level: [   1..  60]
>             latitude: [40.. 0]
>             longitude: [65..100]
> Number Of Attributes: 7
>   standard_name :       lagrangian_tendency_of_air_pressure
>   long_name :   Vertical velocity
>   units :       Pa s**-1
>   add_offset :  -1.799464318323461
>   scale_factor :        0.0001232090956517211
>   _FillValue :  -32767
>   missing_value :       -32767
>
> Variable: V
> Type: short
> Total Size: 2724120 bytes
>             1362060 values
> Number of Dimensions: 4
> Dimensions and sizes:   [time | 1] x [level | 60] x [latitude | 161] x
> [longitude | 141]
> Coordinates:
>             time: [969705..969705]
>             level: [   1..  60]
>             latitude: [40.. 0]
>             longitude: [65..100]
> Number Of Attributes: 7
>   standard_name :       northward_wind
>   long_name :   V component of wind
>   units :       m s**-1
>   add_offset :  -0.1744413644931722
>   scale_factor :        0.001333290509781928
>   _FillValue :  -32767
>   missing_value :       -32767
>
> Variable: U
> Type: short
> Total Size: 2724120 bytes
>             1362060 values
> Number of Dimensions: 4
> Dimensions and sizes:   [time | 1] x [level | 60] x [latitude | 161] x
> [longitude | 141]
> Coordinates:
>             time: [969705..969705]
>             level: [   1..  60]
>             latitude: [40.. 0]
>             longitude: [65..100]
> Number Of Attributes: 7
>   standard_name :       eastward_wind
>   long_name :   U component of wind
>   units :       m s**-1
>   add_offset :  -14.17403101359716
>   scale_factor :        0.002084243991189315
>   _FillValue :  -32767
>   missing_value :       -32767
>
> Variable: hyam
> Type: float
> Total Size: 240 bytes
>             60 values
> Number of Dimensions: 1
> Dimensions and sizes:   [lvl | 60]
> Coordinates:
>             lvl: [1..60]
> Number Of Attributes: 2
>   long_name :   a model ave
>   units :       Pa
>
> Variable: hybm
> Type: float
> Total Size: 240 bytes
>             60 values
> Number of Dimensions: 1
> Dimensions and sizes:   [lvl | 60]
> Coordinates:
>             lvl: [1..60]
> Number Of Attributes: 2
>   long_name :   b model ave
>   units :       Pa Pa**-1
>
> Variable: PS
> Type: float
> Total Size: 90804 bytes
>             22701 values
> Number of Dimensions: 3
> Dimensions and sizes:   [1] x [161] x [141]
> Coordinates:
> Number Of Attributes: 1
>   _FillValue :  -32767
>
> Variable: t
> Type: float
> Total Size: 1543668 bytes
>             385917 values
> Number of Dimensions: 4
> Dimensions and sizes:   [time | 1] x [lev_p | 17] x [latitude | 161] x
> [longitude | 141]
> Coordinates:
>             time: [969705..969705]
>             lev_p: [1000..50]
>             latitude: [40.. 0]
>             longitude: [65..100]
> Number Of Attributes: 1
>   _FillValue :  -32767
>
> Variable: u
> Type: float
> Total Size: 1543668 bytes
>             385917 values
> Number of Dimensions: 4
> Dimensions and sizes:   [time | 1] x [lev_p | 17] x [latitude | 161] x
> [longitude | 141]
> Coordinates:
>             time: [969705..969705]
>             lev_p: [1000..50]
>             latitude: [40.. 0]
>             longitude: [65..100]
> Number Of Attributes: 1
>   _FillValue :  -32767
>
> Variable: v
> Type: float
> Total Size: 1543668 bytes
>             385917 values
> Number of Dimensions: 4
> Dimensions and sizes:   [time | 1] x [lev_p | 17] x [latitude | 161] x
> [longitude | 141]
> Coordinates:
>             time: [969705..969705]
>             lev_p: [1000..50]
>             latitude: [40.. 0]
>             longitude: [65..100]
> Number Of Attributes: 1
>   _FillValue :  -32767
>
> Variable: w
> Type: float
> Total Size: 1543668 bytes
>             385917 values
> Number of Dimensions: 4
> Dimensions and sizes:   [time | 1] x [lev_p | 17] x [latitude | 161] x
> [longitude | 141]
> Coordinates:
>             time: [969705..969705]
>             lev_p: [1000..50]
>             latitude: [40.. 0]
>             longitude: [65..100]
> Number Of Attributes: 1
>   _FillValue :  -32767
>
> My output figure is attached below. Vertical motion is not shaped in
> proper form. The sample data used in this plot are for August 2010. Kindly
> inform me what I am doing wrong in this case.
>
> Thanking you,
> Jenny
>
>
> On Tue, Feb 27, 2018 at 3:46 AM, Dennis Shea <shea at ucar.edu> wrote:
>
>> Hybrid levels are a form of terrain following vertical coordinate
>> formulation.
>> Unlike isobaric levels where the vertical levels are the same at every
>> grid point,
>> hybrid levels differ at each grid point *(j,i) *because they are a
>> function of surface pressure
>> which varies with time and location. The climate atmospheric model uses
>> the following
>> formulation:
>>
>>    * p([t,] k,j,i) = a(k)*p0 + b(k)*ps([t,] k,j,i)        *; t=>time,
>> k=>level, j=>latitude; i=longitude
>>
>> Each calculated pressure level is called the '*m*id-level' (hya*m* and
>> hyb*m*).  Each
>> '*m*id-level' has an upper and lower boundary called the* i*nterface
>> levels (hya*i*, hyb*i*).
>>
>> http://www.ncl.ucar.edu/Document/Functions/Built-in/pres_hybrid_ccm.shtml
>>
>> There are other hybrid level formulations so be aware of what is being
>> used.
>>
>> A detailed description with some pictures is here:
>>
>> https://rda.ucar.edu/datasets/ds627.0/docs/Eta_coordinate/index.html
>>
>> ====
>> You should talk with an advisor about these topics. ncl-talk is really
>> for language issues.
>>
>> Good luck
>>
>> On Mon, Feb 26, 2018 at 2:23 PM, Adam Phillips <asphilli at ucar.edu> wrote:
>>
>>> Hi Jenny,
>>> With regards to whether the plot looks correct: It looks like you took
>>> NCL's vector_5 example script, and modified it slightly.  That script uses
>>> the atmos.nc NetCDF file, which according to the global history
>>> attribute is an old NCAR-CSM file. The data may be October averages. You're
>>> selecting 20E as the longitude to plot, but are basing your weights on
>>> 160E. All that being said, it is honestly up to you to investigate the
>>> file you are reading in, and to interpret the results. I am not an expert
>>> at looking at this kind of diagnostic.
>>>
>>> With regards to your question about hyam and hybm, that information is
>>> given within the NetCDF file, which you can see by doing a ncdump
>>> atmos.nc. More information on hyam/hybm can be found by entering either
>>> term within the NCL website search engine.
>>>
>>> If you have any further questions please respond to the ncl-talk email
>>> list.
>>> Adam
>>>
>>> On Mon, Feb 26, 2018 at 4:33 AM, Jenny Taylor <jenny63taylor91 at gmail.com
>>> > wrote:
>>>
>>>> Hello,
>>>>
>>>> I am sending you the script based on which it is made. Kindly find the
>>>> script attached below. I have one question on this matter. In the dataset (
>>>> atmos.nc) what are those variables named as 'hyam' and 'hybm'?
>>>> It is showing as 'hybrid A coefficient at layer midpoints' and 'hybrid
>>>> B coefficient at layer midpoints'.
>>>>
>>>> Kindly also inform me what I am doing wrong as per your observation
>>>> over NH.
>>>>
>>>> Thanks,
>>>> Jenny
>>>>
>>>>
>>>> On Mon, Feb 26, 2018 at 12:16 PM, Barry Lynn <barry.h.lynn at gmail.com>
>>>> wrote:
>>>>
>>>>> Hi:
>>>>>
>>>>> What did you plot?  Is that omega or vertical velocity?  I am
>>>>> wondering why the northern hemisphere winds are not convergent with the
>>>>> positive vertical motion values like they are in the southern hemisphere.
>>>>>
>>>>> Barry
>>>>>
>>>>> On Mon, Feb 26, 2018 at 8:32 AM, Jenny Taylor <
>>>>> jenny63taylor91 at gmail.com> wrote:
>>>>>
>>>>>> Thank you very much, Adam Phillips. I follow your instruction, please
>>>>>> look at my attached output figure. Kindly inform me it is in proper shape
>>>>>> or not. I think this time it makes some sense.
>>>>>>
>>>>>> Thanks again,
>>>>>> Jenny
>>>>>>
>>>>>>
>>>>>> On Sat, Feb 24, 2018 at 2:14 AM, Adam Phillips <asphilli at ucar.edu>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Jenny,
>>>>>>> You are reading in OMEGA. Note that OMEGA has opposite signs and
>>>>>>> different units from the conventional W variable.
>>>>>>>
>>>>>>> For upward motion:  W is positive and OMEGA is negative
>>>>>>> for downward motion: W is negative and OMEGA is positive
>>>>>>>
>>>>>>> A basic, simple relationship
>>>>>>>    omega = -rho*grav*w              ; Pa/s
>>>>>>> Hence:
>>>>>>>    w          = -omega/(rho*grav)    ; (say) m/s
>>>>>>>
>>>>>>> Note the sign ....
>>>>>>> -----
>>>>>>> I believe all you have to do is flip the sign of your W variable:
>>>>>>>    W = in->OMEGA
>>>>>>>    W = -W
>>>>>>> assuming you want upward arrows for upward motion.
>>>>>>>
>>>>>>> Also note that NCL has a omega_to_w function:
>>>>>>> https://www.ncl.ucar.edu/Document/Functions/Contributed/omeg
>>>>>>> a_to_w.shtml
>>>>>>>
>>>>>>> Hope that all makes sense! If not or if you have further questions
>>>>>>> please respond to the ncl-talk email list.
>>>>>>> Adam
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Feb 23, 2018 at 1:24 AM, Jenny Taylor <
>>>>>>> jenny63taylor91 at gmail.com> wrote:
>>>>>>>
>>>>>>>> Mary,
>>>>>>>>
>>>>>>>> I was trying with the following attached script. But vertical
>>>>>>>> motion near the equator, as well as the 30S and 30N, shows rising motion in
>>>>>>>> the output which is not correct in real term. Please kindly look into my
>>>>>>>> script and figure and inform me what I am missing or doing any wrong in
>>>>>>>> this.
>>>>>>>>
>>>>>>>> Data structure is below;
>>>>>>>>
>>>>>>>> Variable: t
>>>>>>>> Type: float
>>>>>>>> Total Size: 655360 bytes
>>>>>>>>             163840 values
>>>>>>>> Number of Dimensions: 4
>>>>>>>> Dimensions and sizes:   [time | 1] x [lev_p | 20] x [lat | 64] x
>>>>>>>> [lon | 128]
>>>>>>>> Coordinates:
>>>>>>>>             time: [ 791.. 791]
>>>>>>>>             lev_p: [950..50]
>>>>>>>>             lat: [-87.8638..87.8638]
>>>>>>>>             lon: [ 0..357.1875]
>>>>>>>> Number Of Attributes: 1
>>>>>>>>   _FillValue :  9.96921e+36
>>>>>>>>
>>>>>>>> Variable: u
>>>>>>>> Type: float
>>>>>>>> Total Size: 655360 bytes
>>>>>>>>             163840 values
>>>>>>>> Number of Dimensions: 4
>>>>>>>> Dimensions and sizes:   [time | 1] x [lev_p | 20] x [lat | 64] x
>>>>>>>> [lon | 128]
>>>>>>>> Coordinates:
>>>>>>>>             time: [ 791.. 791]
>>>>>>>>             lev_p: [950..50]
>>>>>>>>             lat: [-87.8638..87.8638]
>>>>>>>>             lon: [ 0..357.1875]
>>>>>>>> Number Of Attributes: 1
>>>>>>>>   _FillValue :  9.96921e+36
>>>>>>>>
>>>>>>>> Variable: v
>>>>>>>> Type: float
>>>>>>>> Total Size: 655360 bytes
>>>>>>>>             163840 values
>>>>>>>> Number of Dimensions: 4
>>>>>>>> Dimensions and sizes:   [time | 1] x [lev_p | 20] x [lat | 64] x
>>>>>>>> [lon | 128]
>>>>>>>> Coordinates:
>>>>>>>>             time: [ 791.. 791]
>>>>>>>>             lev_p: [950..50]
>>>>>>>>             lat: [-87.8638..87.8638]
>>>>>>>>             lon: [ 0..357.1875]
>>>>>>>> Number Of Attributes: 1
>>>>>>>>   _FillValue :  9.96921e+36
>>>>>>>>
>>>>>>>> Variable: w
>>>>>>>> Type: float
>>>>>>>> Total Size: 655360 bytes
>>>>>>>>             163840 values
>>>>>>>> Number of Dimensions: 4
>>>>>>>> Dimensions and sizes:   [time | 1] x [lev_p | 20] x [lat | 64] x
>>>>>>>> [lon | 128]
>>>>>>>> Coordinates:
>>>>>>>>             time: [ 791.. 791]
>>>>>>>>             lev_p: [950..50]
>>>>>>>>             lat: [-87.8638..87.8638]
>>>>>>>>             lon: [ 0..357.1875]
>>>>>>>> Number Of Attributes: 1
>>>>>>>>   _FillValue :  9.96921e+36
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanking you,
>>>>>>>> Jenny
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Feb 22, 2018 at 1:17 AM, Mary Haley <haley at ucar.edu> wrote:
>>>>>>>>
>>>>>>>>> Jenny,
>>>>>>>>>
>>>>>>>>> In order to do plot overlays of different variables, you need to
>>>>>>>>> use the "overlay" procedure in NCL.
>>>>>>>>>
>>>>>>>>> ----------------------------------------------------------------
>>>>>>>>>
>>>>>>>>> The overlay procedure works one of two ways:
>>>>>>>>>
>>>>>>>>> [1] It overlays data from one plot (called the "overlay" plot)
>>>>>>>>> into the data space of another plot (called the "base" plot).
>>>>>>>>>
>>>>>>>>> The two plots must have intersecting data spaces for this to work.
>>>>>>>>> By "data space", I mean the range of the X and Y axes of the two plots must
>>>>>>>>> intersect. Otherwise, you will not see the overlay plot at all.
>>>>>>>>>
>>>>>>>>> For an example, see overlay_8.ncl at:
>>>>>>>>>
>>>>>>>>> http://www.ncl.ucar.edu/Applications/overlay.shtml#ex8
>>>>>>>>>
>>>>>>>>> [2] It simply "lines up" the two plots in the same rectangular
>>>>>>>>> region and draws them. It's not as common to do overlays this way, because
>>>>>>>>> it requires that you do all the work of making sure the two plots are in
>>>>>>>>> the same data space.
>>>>>>>>>
>>>>>>>>> For an example, see overlay_9.ncl at:
>>>>>>>>>
>>>>>>>>> http://www.ncl.ucar.edu/Applications/overlay.shtml#ex9
>>>>>>>>>
>>>>>>>>> ----------------------------------------------------------------
>>>>>>>>>
>>>>>>>>> It doesn't matter whether you are doing contour plots, vector
>>>>>>>>> plots, or XY plots: you can overlay any of these on another one using the
>>>>>>>>> "overlay" procedure.
>>>>>>>>>
>>>>>>>>> The "overlay" examples page has several other scripts showing how
>>>>>>>>> to use the overlay procedure. In particular, you might want to look at
>>>>>>>>> overlay_1.ncl, overlay_6.ncl, and/or wrf_gsn_5.ncl:
>>>>>>>>>
>>>>>>>>> http://www.ncl.ucar.edu/Applications/overlay.shtml
>>>>>>>>>
>>>>>>>>> If you continue to have problems, please post back to ncl-talk and
>>>>>>>>> include your script and a "printVarSummary" of the data you are trying to
>>>>>>>>> plot.
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>>
>>>>>>>>> --Mary
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, Feb 16, 2018 at 9:59 AM, Jenny Taylor <
>>>>>>>>> jenny63taylor91 at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Dear NCL Users,
>>>>>>>>>>
>>>>>>>>>> I am trying to plot vector wind field at different pressure level
>>>>>>>>>> for latitute range 40N-40S. I am following the below mention script;
>>>>>>>>>> https://www.ncl.ucar.edu/Applications/Scripts/h_lat_7.ncl
>>>>>>>>>>
>>>>>>>>>> I am trying to overlay vertical motion (rising/sinking) in vector
>>>>>>>>>> arrows and zonal wind in color scheme.
>>>>>>>>>>
>>>>>>>>>> Can anyone suggest me, in that case which funtion I need to use
>>>>>>>>>> in it?
>>>>>>>>>> Any help will be appriciated.
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Jenny
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> 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
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Adam Phillips
>>>>>>> Associate Scientist,  Climate and Global Dynamics Laboratory, NCAR
>>>>>>> www.cgd.ucar.edu/staff/asphilli/   303-497-1726 <(303)%20497-1726>
>>>>>>>
>>>>>>> <http://www.cgd.ucar.edu/staff/asphilli>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> ncl-talk mailing list
>>>>>> ncl-talk at ucar.edu
>>>>>> List instructions, subscriber options, unsubscribe:
>>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Barry H. Lynn, Ph.D
>>>>> Senior Lecturer,
>>>>> The Institute of the Earth Science,
>>>>> The Hebrew University of Jerusalem,
>>>>> Givat Ram, Jerusalem 91904, Israel
>>>>> Tel: 972 547 231 170
>>>>> Fax: (972)-25662581
>>>>>
>>>>> C.E.O, Weather It Is, LTD
>>>>> Weather and Climate Focus
>>>>> http://weather-it-is.com
>>>>> Jerusalem, Israel
>>>>> Local: 02 930 9525
>>>>> Cell: 054 7 231 170
>>>>> Int-IS: x972 2 930 9525
>>>>> US 914 432 3108 <(914)%20432-3108>
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Adam Phillips
>>> Associate Scientist,  Climate and Global Dynamics Laboratory, NCAR
>>> www.cgd.ucar.edu/staff/asphilli/   303-497-1726 <(303)%20497-1726>
>>>
>>> <http://www.cgd.ucar.edu/staff/asphilli>
>>>
>>> _______________________________________________
>>> 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/20180227/27d1cfcf/attachment.html>


More information about the ncl-talk mailing list