[ncl-talk] Error while handling multiple WRF output files

swati shewale shewaleswati16 at gmail.com
Mon Oct 9 07:10:23 MDT 2017


above attached plot is just to show the scale (rightmost) and left side
titles that I want. I know the resource for left side is tiYAxisString /
tiXAxisString. but unable to make plotting from top to bottom

On Mon, Oct 9, 2017 at 6:25 PM, swati shewale <shewaleswati16 at gmail.com>
wrote:

> Dear Mary,
>
> The resources that you set in your demo script like left and right space
> for panel (first panel of six plot vertically and another panel of three
> plot vertically) as below
>
>
> ;---Define space for leftmost column of plots, and their labelbar width
>   pres at gsnPanelLeft       = 0.
>   pres at gsnPanelRight      = 2./3
>   pres at pmLabelBarWidthF   = 0.6
>   gsn_panel(wks,(/plot1,plot2,plot3,plot4,plot5,plot6/),(/3,2/),pres)
>
> ;---Define space for righmost column of plots, and their labelbar width
>   delta = 0.028
>   pres at gsnPanelLeft       = pres at gsnPanelRight - delta   ; Left plots
> don't stretch all the way to
>
>           ; 2/3, so move right plots a little to left.
>   pres at gsnPanelRight      = 1.0 - delta
>   pres at pmLabelBarWidthF   = pres at pmLabelBarWidthF * 0.5  ; half the width
> of other labelbar
>   gsn_panel(wks,(/plot7,plot8,plot9/),(/3,1/),pres)
>
>
>
> If I wish to do plots from top to bottom instead of left to right, along
> with both scales vertical (which should have position to the extreme right).
> I just did change in your script as follow
>
>
>
> ;---Set some panel resources common to both sets of plots
>   pres                    = True
>  pres at txFontHeightF = .010
>   pres at txString                   = "   WUCM
> NOUCM                                     WUCM - NOUCM"
>   pres at gsnPanelLabelBar   = True
>   pres at gsnMaximize        = True
>   pres at pmLabelBarHeightF  = 0.08
>   pres at lbLabelFontHeightF = 0.01
>   pres at gsnFrame           = False    ; Needed for paneling two sets of
> plots on same frame.
>   pres at gsnPanelYWhiteSpacePercent = 4
>   pres at gsnPanelXWhiteSpacePercent = 4
>   pres at gsnPanelBoxes = True      ; debugging tool
>
> ;---Define space for leftmost column of plots, and their labelbar width
>   pres at gsnPanelTop       = 0.
>   pres at gsnPanelBottom      = 2./3
>   pres at pmLabelBarWidthF   = 0.6
>   gsn_panel(wks,(/plot0,plot1,plot2,plot3,plot4,plot5/),(/2,3/),pres)
>
> ;---Define space for righmost column of plots, and their labelbar width
>   delta = 0.005
>   pres at gsnPanelTop      = pres at gsnPanelBottom - delta   ; Left plots
> don't stretch all the way to
>
>            ; 2/3, so move right plots a little to left.
>   pres at gsnPanelBottom      = 1.0 - delta
>   pres at pmLabelBarWidthF   = pres at pmLabelBarWidthF * 0.5  ; half the width
> of other labelbar
>   gsn_panel(wks,(/plot6,plot7,plot8/),(/3,1/),pres)
>
>   txres               = True
>   txres at txFontHeightF = 0.02
>   gsn_text_ndc(wks,"Temperature at 2m (degC) over Patna
> city",0.5,0.92,txres)
>
> gives me error as
>
> (0)    Warning: gsn_panel: attribute gsnPanelTop must be > 0.0 and <= 1.0
> (0)    Defaulting to 1.
> (0)    Warning: gsn_panel: font height (0.01) of main string is too large
> to fit in space provided. Either decrease font size or set gsnPanelTop.
> (0)    Warning: gsn_panel: font height (0.02) of main string is too large
> to fit in space provided. Either decrease font size or set gsnPanelTop.
> (0)    Error: gsn_panel: attribute gsnPanelTop (0.661667) must be greater
> (0)    than gsnPanelBottom (0.995).
>
> Also Please tell me, how should I fix scale vertically that to extreme
> right.  Actually I want plot from top to bottom because I want to provide
> resources at left side (for example purpose attached a plot).
>
> I have model runs two types ....named WUCM and NOUCM
> I want it like......first row  contain 3 plot (WUCM)
>                        second row contain 3 plot (NOWUCM)
> above two rows have same scale
>                        third row contain 3 plot of above difference (WUCM
> - NOWUCM)
> this one have different scale (as it is difference between WUCM - WUCM)
>
> I hope, I tried better to convey things I want.
>
>
>
>
>
>
>
>
> On Mon, Oct 9, 2017 at 11:30 AM, swati shewale <shewaleswati16 at gmail.com>
> wrote:
>
>> Thanks a lot Mary for giving detail info along with demo script.
>> I have mentioned special lat2d/lon2d attributes in gsn script (named
>> convention in my a script is lat/lon). Anyway I will go through the script
>> and link. Thanks again.
>>
>> On Sat, Oct 7, 2017 at 12:46 AM, Mary Haley <haley at ucar.edu> wrote:
>>
>>> Hello,
>>>
>>> Thanks for providing clean scripts and explanations.
>>>
>>> 1. This warning is because when you use gsn_csm_contour_map to plot
>>> curvilinear data, you must associate the lat/lon arrays with the data being
>>> plotted. Otherwise, it does't know where on the map the data is supposed to
>>> go.
>>>
>>> If you looked at the wrf_gsn_1.ncl and wrf_gsn_2.ncl scripts, you'll see
>>> they are both using special lat2d/lon2d attributes to accomplish this:
>>>
>>>   hgt       = wrf_user_getvar(a,"HGT",it)    ; Terrain elevation
>>>   hgt at lat2d = wrf_user_getvar(a,"XLAT",it)   ; latitude/longitude
>>>   hgt at lon2d = wrf_user_getvar(a,"XLONG",it)  ; required for plotting
>>>
>>> However, you would have to do this for every variable you plot.
>>>
>>> Instead, you can set these two resources before any calls to
>>> gsn_csm_contour_map:
>>>
>>> res at sfXArray = lon
>>> res at sfYArray = lat
>>>
>>>
>>> ​2. ​
>>> I think the issue with cnConstFEnableFill
>>> ​ is that you are setting that resource *after* plots #0-5 have been
>>> created.  You need to make sure this line:
>>>
>>>     res at cnConstFEnableFill= True ; allow constant values (1=sig) to
>>> fill
>>>
>>>
>>> ​is *before* all of your gsn_csm_contour_map calls.
>>>
>>> ​3. In order to panel two sets of plots on the same page, you first need
>>> to set:
>>>
>>> pnlres at gsnFrame = False
>>>
>>> so that the frame doesn't get advanced after each one. You will then
>>> need to advance the frame yourself when done:
>>>
>>> frame(wks)
>>>
>>> The other issue with paneling two sets of plots, is that you need to
>>> make sure they don't get drawn on top of each other. There are many
>>> examples on our "Panels
>>> <http://www.ncl.ucar.edu/Applications/panel.shtml>" example page that
>>> show how to do various configurations of plots and labelbars. Here are some
>>> that might help:
>>>
>>> http://www.ncl.ucar.edu/Applications/panel.shtml#ex12
>>> http://www.ncl.ucar.edu/Applications/panel.shtml#ex22
>>>
>>> The important thing is that you need to set gsnPanelRight / gsnPanelLeft
>>> to control which part of the frame each set of plots is drawn in.  Since
>>> the first set is 3 x 2 plots and the second set is 3 x 1 plots, this means
>>> the 3 x 2 plots should take up 2/3 of the width, and the 3 x 1 plots will
>>> take up 1/3 of the width.
>>>
>>> See attached script which uses dummy data.
>>>
>>> --Mary
>>>
>>>
>>>
>>>
>>> On Fri, Oct 6, 2017 at 2:04 AM, swati shewale <shewaleswati16 at gmail.com>
>>> wrote:
>>>
>>>> Hello Mary,
>>>>
>>>> As per your suggestion I went through the links provided by you. I will
>>>> explain one by one the issues I came across while doing plot using inbuilt
>>>> wrf function as well as gsn function separately. I have attached scripts
>>>> along with plot. the kind of titles (as well as left and side string), I
>>>> want is reflected in gsn plot which am unable to do in wrf plot. I have
>>>> given suitable names to scripts as well as plot for your convenience. Hope
>>>> you wont get confuse.
>>>>
>>>> In first script (1_plot_using_wrf_function)
>>>> 1. after mentioning re at cnConstFEnableFill  = True, getting warning as
>>>> warning:ContourPlotInitialize: scalar field is constant; no contour
>>>> lines will appear; use cnConstFEnableFill to enable fill
>>>>
>>>> actually using wrf in built function gives nice plot but unable to make
>>>> self explanatory (giving strings and titles) plot so thought of ploting
>>>> using gsn function
>>>>
>>>> In second script (2_plot_using_gsn_function), issues are
>>>>
>>>> 1. even after mentioning lat/lon getting warning as follow
>>>> (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' 'deg
>>>> north'
>>>> (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' 'deg east'
>>>>
>>>> 2. after mentioning re at cnConstFEnableFill  = True, getting warning as
>>>> warning:ContourPlotInitialize: scalar field is constant; no contour
>>>> lines will appear; use cnConstFEnableFill to enable fill
>>>>
>>>> 3. I want all 9 plots on single panel with scales vertical, instead I
>>>> am getting it on two different pages
>>>>
>>>> I think, I have to manage or add more resources in pres1/pres2 such as (*vpXF
>>>> <https://www.ncl.ucar.edu/Document/Graphics/Resources/vp.shtml#vpXF>*
>>>> and *vpYF
>>>> <https://www.ncl.ucar.edu/Document/Graphics/Resources/vp.shtml#vpYF>*)
>>>> (*vpHeightF
>>>> <https://www.ncl.ucar.edu/Document/Graphics/Resources/vp.shtml#vpHeightF>*
>>>> and *vpWidthF
>>>> <https://www.ncl.ucar.edu/Document/Graphics/Resources/vp.shtml#vpWidthF>*)
>>>> , so that I may get 9 plots on single panel. If you know any link which
>>>> resembles like the plot i want,Please let me know. side by I will again go
>>>> through links given by you.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Sat, Sep 23, 2017 at 9:30 AM, swati shewale <
>>>> shewaleswati16 at gmail.com> wrote:
>>>>
>>>>> Thank you so much Mary....surely I will go through the link provided
>>>>> by you....If come across any problem, will let you know
>>>>>
>>>>> On Sat, Sep 23, 2017 at 12:36 AM, Mary Haley <haley at ucar.edu> wrote:
>>>>>
>>>>>> Please see this page:
>>>>>>
>>>>>> http://www.ncl.ucar.edu/Applications/wrfgsn.shtml
>>>>>>
>>>>>> and look at the first example (wrf_gsn_1.ncl and wrf_nogsn_1.ncl) and
>>>>>> the second example (wrf_gsn_2.ncl).
>>>>>>
>>>>>> These show how to use gsn to plot data and it compares the plot with
>>>>>> using WRF functions.
>>>>>>
>>>>>> In the wrf_gsn_1.ncl plot, you can see that the gsnLeft/RightString
>>>>>> resources are being set automatically, because the data has a description
>>>>>> and units attribute.
>>>>>>
>>>>>> Try this script as a start on your own data, and also look at
>>>>>> wrf_gsn_2.ncl to see how to further customize your plot.
>>>>>>
>>>>>> If you are unable to get the plot to look as nice as you want, email
>>>>>> ncl-talk at ucar.edu again with your new script and what you want it to
>>>>>> look like, and we can help further.
>>>>>>
>>>>>> Good luck,
>>>>>>
>>>>>> --Mary
>>>>>>
>>>>>>
>>>>>> On Fri, Sep 22, 2017 at 3:21 AM, swati shewale <
>>>>>> shewaleswati16 at gmail.com> wrote:
>>>>>>
>>>>>>> Thank you Mary... its wrf file, I just renamed it for my
>>>>>>> convenience. Actually I am able to plot it using wrf function but unable to
>>>>>>> put left/right/centre strings, as those are related to gsn functions. so to
>>>>>>> overcome the difficulty of left/right/centre, I thought to make a plot
>>>>>>> using gsn functions injstead of wrf functions. but inbuilt wrf functions
>>>>>>> gives nicer plots than gsn one.
>>>>>>>
>>>>>>> On Fri, Sep 22, 2017 at 3:48 AM, Mary Haley <haley at ucar.edu> wrote:
>>>>>>>
>>>>>>>> It's hard for somebody to simply look at a script to see if it's
>>>>>>>> correct or not.  I do see some errors, but even if I correct the errors, I
>>>>>>>> can't be sure it's 100% correct without having access to your data.
>>>>>>>>
>>>>>>>> The problems are:
>>>>>>>>
>>>>>>>> [1]
>>>>>>>>
>>>>>>>> Your data file is called "patna_data.nc". You are using wrf_xxxx
>>>>>>>> functions to plot this data. Since WRF-ARW output files are normally called
>>>>>>>> something like "wrfout_d02_2005-08-29_00:00:00", I can't be sure
>>>>>>>> that you are actually plotting WRF-ARW data. You can only use wrf_xxx
>>>>>>>> plotting functions on WRF-ARW data.
>>>>>>>>
>>>>>>>> [2]
>>>>>>>>
>>>>>>>> You have:
>>>>>>>>
>>>>>>>>  t   = a->T2(0:7,:,:)
>>>>>>>>  ter = dim_avg_n( ter1, 0 )
>>>>>>>>  ter = ter - 273
>>>>>>>>
>>>>>>>> I don't know what your objective, so I don't know if the above is
>>>>>>>> correct.  However, you are calling "dim_avg_n" on "ter1" which doesn't
>>>>>>>> exist.  Did you mean:
>>>>>>>>
>>>>>>>>  ter = dim_avg_n( t, 0 )
>>>>>>>>
>>>>>>>> The above will take an average of the first 8 times teps of your
>>>>>>>> data, assuming that the leftmost dimension of T2 represents time.
>>>>>>>>
>>>>>>>> Further, you should use the _Wrap version of this function, so
>>>>>>>> metadata is maintained:
>>>>>>>>
>>>>>>>>  ter = dim_avg_n_Wrap( t, 0 )
>>>>>>>>
>>>>>>>> [3]
>>>>>>>>
>>>>>>>> You have:
>>>>>>>>
>>>>>>>> ter = ter - 273
>>>>>>>>
>>>>>>>> Since you are changing the units, you should update the "units"
>>>>>>>> attribute to something like this:
>>>>>>>>
>>>>>>>> ter at units = "degC"
>>>>>>>>
>>>>>>>>
>>>>>>>> The rest of the script looks okay, but again, the wrf_contour and
>>>>>>>> wrf_map_overlays procedures will only work if you are actually plotting
>>>>>>>> WRF-ARW data.
>>>>>>>>
>>>>>>>> --Mary
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Sep 7, 2017 at 10:02 PM, swati shewale <
>>>>>>>> shewaleswati16 at gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Thank you. I will try with your script. yesterday I tried it with
>>>>>>>>> below script. Please have a look and let me know, whether it is correct or
>>>>>>>>> not.
>>>>>>>>>
>>>>>>>>> On Fri, Sep 8, 2017 at 12:54 AM, Mary Haley <haley at ucar.edu>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> If I understand you correctly, then you need to reshape your X
>>>>>>>>>> array so that it is NTIM x 8 x NLAT x NLON, and then you can average across
>>>>>>>>>> the second dimension from the left.
>>>>>>>>>>
>>>>>>>>>> I've attached a modified version of your script, which is
>>>>>>>>>> UNTESTED. You may need to modify it to do the right thing with regard to
>>>>>>>>>> copying over the required metadata.  I did this a little with copy_VarAtts,
>>>>>>>>>> and copy_coords.
>>>>>>>>>>
>>>>>>>>>> --Mary
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Thu, Sep 7, 2017 at 3:42 AM, swati shewale <
>>>>>>>>>> shewaleswati16 at gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hiii,
>>>>>>>>>>> using ncrcat I have single file containing 24 time step (3hrly,
>>>>>>>>>>> 3 days). Now I want to plot temperature variable (average for each day,
>>>>>>>>>>> spatial, panel plot). I am unable to take out time step for 1st day (0:7)
>>>>>>>>>>> and then do average of it...then second day (8:15) ...likewise for third
>>>>>>>>>>> day (16:23). I wrote a script, in that it takes average over all time
>>>>>>>>>>> steps. what changes should I make so that I can get average over specific
>>>>>>>>>>> time step? attached herewith script.
>>>>>>>>>>> summary of variable temperature is as follow.
>>>>>>>>>>>
>>>>>>>>>>> Variable: X
>>>>>>>>>>> Type: float
>>>>>>>>>>> Total Size: 5658552 bytes
>>>>>>>>>>>             1414638 values
>>>>>>>>>>> Number of Dimensions: 3
>>>>>>>>>>> Dimensions and sizes:    [Time | 23] x [south_north | 201] x
>>>>>>>>>>> [west_east | 306]
>>>>>>>>>>> Coordinates:
>>>>>>>>>>> Number Of Attributes: 6
>>>>>>>>>>>   FieldType :    104
>>>>>>>>>>>   MemoryOrder :    XY
>>>>>>>>>>>   description :    TEMP at 2 M
>>>>>>>>>>>   units :    K
>>>>>>>>>>>   stagger :
>>>>>>>>>>>   coordinates :    XLONG XLAT XTIME
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Thu, Sep 7, 2017 at 3:04 PM, swati shewale <
>>>>>>>>>>> shewaleswati16 at gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Thank you. I will try with it.
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Sep 6, 2017 at 8:39 PM, Mary Haley <haley at ucar.edu>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> The error message is telling you that there's something wrong
>>>>>>>>>>>>> with argument 0 passed to wrf_contour.  Argument 0 refers to the first
>>>>>>>>>>>>> argument in the list, which is "a(itime)" in this case.
>>>>>>>>>>>>>
>>>>>>>>>>>>> The issue is that when you use addfiles to open a series of
>>>>>>>>>>>>> files, you need to use square brackets, [], to access a single file, and
>>>>>>>>>>>>> not curved brackets, (). This is because addfiles returns a "List" object,
>>>>>>>>>>>>> and lists in NCL need to be access with square brackets.
>>>>>>>>>>>>>
>>>>>>>>>>>>> You have:
>>>>>>>>>>>>>
>>>>>>>>>>>>>         contour = wrf_contour(a(itime),wks,t,t_res)
>>>>>>>>>>>>>
>>>>>>>>>>>>> and this should be:
>>>>>>>>>>>>>
>>>>>>>>>>>>>         contour = wrf_contour(a[itime],wks,t,t_res)
>>>>>>>>>>>>>
>>>>>>>>>>>>> --Mary
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Mon, Sep 4, 2017 at 4:40 AM, swati shewale <
>>>>>>>>>>>>> shewaleswati16 at gmail.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hiiii
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I want to do panel plotting using WRF output. I have total 8
>>>>>>>>>>>>>> files, each contains single time step (one day, 3 hrly datafiles so total 8
>>>>>>>>>>>>>> files). out of eight times I want to plot 6 time step (panel plot) for
>>>>>>>>>>>>>> variable slp and temperature.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> It shows below error.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> fatal:Argument type mismatch on argument (0) of (wrf_contour)
>>>>>>>>>>>>>> can not coerce
>>>>>>>>>>>>>> fatal:["Execute.c":8567]:Execute: Error occurred at or near
>>>>>>>>>>>>>> line 44 in file temp.ncl
>>>>>>>>>>>>>> (0)    Error: gsn_panel: all of the plots passed to gsn_panel
>>>>>>>>>>>>>> appear to be invalid
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>  Attached herewith script.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thank you in advance. Any help will be appreciated
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>> 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/20171009/ce37f5f0/attachment.html>


More information about the ncl-talk mailing list