[ncl-talk] Problems with gsn_csm_xy

Jack Ogaja jack.ogaja at gmail.com
Thu Aug 27 10:57:11 MDT 2015


Lara,

That error message can also be generated by the function “gsn_csm_x2y2”, and it does not necessarily means it is caused by your second plot(plot2). You should also print out the inputs of the first plot function, dt_old, dt2, T_old, and T to see whether they have the same dimsizes. Furthermore you can easily know which plotting is erroneous by just commenting out one of them.

Jack

> On 27 Aug 2015, at 16:13, Lara Gunn <lara.n.gunn at gmail.com> wrote:
> 
> Hi
> 
> 
> 
> I am running ncl 6.2.1 in cygwin
> 
>  
> I am running a plot script which seems to be working but I get this error.
> 
>  
> (0)        gsn_csm_xy: Fatal: X and Y must have the same dimensions sizes, or one must be one-dimensional and both have the same rightmost dimension.
> 
>  
> However when I print out the two variables I am plotting I get this
> 
>  
> Variable: dt
> 
> Type: float
> 
> Total Size: 12 bytes
> 
>             3 values
> 
> Number of Dimensions: 1
> 
> Dimensions and sizes:   [3]
> 
> Coordinates:
> 
> Number Of Attributes: 1
> 
>   _FillValue :  9.96921e+36
> 
> (0)      0
> 
> (1)      3
> 
> (2)      6
> 
>  
>  
> Variable: T_dif
> 
> Type: float
> 
> Total Size: 12 bytes
> 
>             3 values
> 
> Number of Dimensions: 1
> 
> Dimensions and sizes:   [3]
> 
> Coordinates:
> 
> Number Of Attributes: 1
> 
>   _FillValue :  9.96921e+36
> 
> (0)     0.1149902
> 
> (1)     -0.3859797
> 
> (2)     -0.0739994
> 
>  
> The line of code is as follows
> 
>  
>                          res3 = res
> 
>                          res3 at tiMainString       = ""
> 
>                          res3 at tiXAxisString      = "Time Step"
> 
>                          res3 at tiYAxisString      = "Temperature Difference (C)"
> 
>                          res3 at trYMinF            = -3
> 
>                          res3 at trYMaxF            = 3
> 
>                          res3 at trXMinF            = 0
> 
>                          res3 at trXMaxF            = 240
> 
>                          res3 at vpXF               = 0.1
> 
>                          res3 at gsnYRefLine        = 0.0
> 
>                          res3 at gsnAboveYRefLineColor = "red"
> 
>                          res3 at gsnBelowYRefLineColor = "blue"
> 
>  
>                          polyres                  = True
> 
>                          polyres at gsLineThicknessF = 3.0
> 
>  
>                          if (dimsizes(T).gt.1).and.(dimsizes(T).lt.240) then
> 
>                                 plot2 = gsn_csm_xy(wks,dt,T_dif,res3)
> 
>                                 gsn_polyline(wks,plot,dt,T_dif,polyres)
> 
>                                 psres = True
> 
>                                 gsn_panel(wks,(/plot,plot2/),(/1,2/),psres)
> 
>                          end if
> 
>  
> Obviously this isn’t the whole piece of code but the other graph in the image using gsn_csm_x2y2 so that can’t be the cause of the error. There do seem to be some errors in this because the gsn_polyline is on plot2 not plot one on the image it creates, but if I put plot there instead it draws a mysterious line of the first plot. All in all I am quite confused what I have done.
> 
>  
> I have attached the full script just incase that help shed light on my coding.
> 
>  
> Thanks in advance
> 
> Lara
> 
>                         load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
> 
>                         load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
> 
>  
>                         grib_in = addfile("$file1","r")
> 
>                         names = getfilevarnames(grib_in)
> 
>  
>                         ncdf_out = addfile("$file2","c")
> 
>                         do i=0,dimsizes(names)-1
> 
>                                 ncdf_out->$extra(i)$ = grib_in->$extra(i) $
> 
>                         end do
> 
>  
>                         setfileoption("nc","FileStructure","Advanced")
> 
>                         fn = "$file2"
> 
>                         fi = addfile(fn,"r")
> 
>  
>                         t2m = fi->TMP_P0_L103_GLL0
> 
>                         lat = fi->lat_0
> 
>                         lon = fi->lon_0
> 
>  
>                          T_london=t2m(154,0)
> 
>                          T_birmingham=t2m(150,1432)
> 
>                          T_manchester=t2m(146,1431)
> 
>                          T_glasgow=t2m(137,1421)
> 
>  
>                          T_UK = (0.44*(T_london)+0.18*T_birmingham+0.27*(T_manchester)+0.11*(T_glasgow))-272.15
> 
>                          asciiwrite ("T_UK_$i",T_UK)
> 
>                          asciiwrite ("dt_$i",$i)
> 
>                          system("cat T_UK_* > T_UK")
> 
>                          system("cat dt_* > datefile")
> 
>  
>                          T_old=asciiread("T_00z",-1,"float")
> 
>                          dt_old=asciiread("DATEFILE_00z",-1,"float")
> 
>                          T=asciiread("T_UK",-1,"float")
> 
>                          dt=asciiread("datefile",-1,"float")
> 
>                          dt2=dt+6
> 
>  
>  
>                          if (dimsizes(T).lt.240) then
> 
>                                  T_dif = T(0:dimsizes(T)-1)-T_old(2:(2+dimsizes(T))-1)
> 
>                          end if
> 
>  
>                          filename="$a"
> 
>                          wks = gsn_open_wks("png",filename)
> 
>  
>                          res                            = True
> 
>                          res at gsnFrame                   = False
> 
>                          res at gsnDraw                    = False
> 
>                          res at tiMainString               = "GFS 06z op UK Temperatures"
> 
>                          res at tiXAxisString              = "Time Step"
> 
>                          res at tiYAxisString              = "Temperature (C)"
> 
>                          res at trYMinF                    = min(T_old)-2
> 
>                          res at trYMaxF                    = max(T_old)+2
> 
>                          res at trXMinF                    = 0
> 
>                          res at trXMaxF                    = 390
> 
>                          res at xyLineColor                = "black"
> 
>                          res at xyLineThicknessF           = 4
> 
>                          res at xyDashPattern              = 4
> 
>                          res2                           = True
> 
>                          res2 at gsnFrame                  = False
> 
>                          res2 at gsnDraw                   = False
> 
>                          res2 at trYMinF                   = min(T_old)-2
> 
>                          res2 at trYMaxF                   = max(T_old)+2
> 
>                          res2 at trXMinF                   = 0
> 
>                          res2 at trXMaxF                   = 390
> 
>                          res2 at xyLineColor               = "red"
> 
>                          res2 at xyLineThicknessF          = 4
> 
>                          res2 at xyDashPattern             = 0
> 
>  
>  
>                          if (dimsizes(T).gt.1) then
> 
>                                 plot = gsn_csm_x2y2(wks,dt_old,dt2,T_old,T,res,res2)
> 
>                          end if
> 
>  
>                          res3 = res
> 
>                          res3 at tiMainString       = ""
> 
>                          res3 at tiXAxisString      = "Time Step"
> 
>                          res3 at tiYAxisString      = "Temperature Difference (C)"
> 
>                          res3 at trYMinF            = -3
> 
>                          res3 at trYMaxF            = 3
> 
>                          res3 at trXMinF            = 0
> 
>                          res3 at trXMaxF            = 240
> 
>                          res3 at vpXF               = 0.1
> 
>                          res3 at gsnYRefLine        = 0.0
> 
>                          res3 at gsnAboveYRefLineColor = "red"
> 
>                          res3 at gsnBelowYRefLineColor = "blue"
> 
>  
>                          polyres                  = True
> 
>                          polyres at gsLineThicknessF = 3.0
> 
>  
>                          if (dimsizes(T).gt.1).and.(dimsizes(T).lt.240) then
> 
>                                 plot2 = gsn_csm_xy(wks,dt,T_dif,res3)
> 
>                                 gsn_polyline(wks,plot,dt,T_dif,polyres)
> 
>                                 psres = True
> 
>                                 gsn_panel(wks,(/plot,plot2/),(/1,2/),psres)
> 
>                          end if
> 
> _______________________________________________
> 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/20150827/484f2f6a/attachment.html 


More information about the ncl-talk mailing list