[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