Re: some errors in EOF analysis

From: Dennis Shea <shea_at_nyahnyahspammersnyahnyah>
Date: Mon Jul 09 2012 - 08:59:05 MDT

Line 95 is
    wks = gsn_open_wks("ps","eof_test1")

Since 'wks' has not previously been defined, it is rather confusing
as to why you would get the error. The EOF looks like it was computed
successfully.

---
What version of NCL are you using? what OS (operating system(?
uname -a
ncl -V
On 7/9/12 8:42 AM, 鐜嬫捣 wrote:
> Hi all,
>
> I am a newer in using NCL. Recently I used NCL to analyze the cmip5 GFDL
> precipitation data and I want to get the EOF result of the Indo-Pacific
> region. But I encountered some errors that confused me.
>
> Below is the scripts:
> ==============================================================
>
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
>
> begin
> ; ==============================================================
> ; User defined parameters that specify region of globe and
> ; ==============================================================
> latS = -25.
> latN = 25.
> lonL = 40.
> lonR = 160.
>
> yrStrt = 1979
> yrLast = 2008
>
> season = "DJF" ; choose Dec-Jan-Feb seasonal mean
>
> neof = 1 ; number of EOFs
> optEOF = True
> optEOF@jopt = 0 ; This is the default; most commonly used; no need to
> specify.
> ;;optEOF@jopt = 1 ; **only** if the correlation EOF is desired
>
> optETS = False
>
> ; ==============================================================
> ; Open the file: Read only the user specified period
> ; ==============================================================
> fils = systemfunc("ls pr_Amon_GFDL-HIRAM-C180_amip_r1i1p1_*.nc")
> f = addfiles (fils,"r")
> ; printVarSummary(f)
>
> ListSetType (f,"cat") ; concatenate (=default)
>
> TIME = f[:]->time
> YYYY = cd_calendar(TIME,-1)/100 ; entire file
> iYYYY = ind(YYYY.ge.yrStrt .and. YYYY.le.yrLast)
>
> prate = f[:]->pr(iYYYY,:,:)
> printVarSummary(prate) ; variable overview
>
> ; ==============================================================
> ; compute desired global seasonal mean: month_to_season (contributed.ncl)
> ; ==============================================================
> prate=rmMonAnnCycTLL(prate)
> PRA= month_to_season (prate, season)
> nyrs = dimsizes(PRA&time)
> PRA= PRA*24*3600
> ; =================================================================
> ; create weights: sqrt(cos(lat)) [or sqrt(gw) ]
> ; =================================================================
> rad = 4.*atan(1.)/180.
> clat = f[1]->lat
> clat = sqrt( cos(rad*clat) ) ; gw for gaussian grid
> printVarSummary(clat)
> ; =================================================================
> ; weight all observations
> ; =================================================================
> wPRA = PRA ; copy meta data
> wPRA = (/dble2flt(PRA*conform(PRA, clat, 1))/)
> printVarSummary(wPRA)
> wPRA@long_name = "Wgt: "+wPRA@long_name
>
> ; =================================================================
> ; Reorder (lat,lon,time) the *weighted* input data
> ; Access the area of interest via coordinate subscripting
> ; =================================================================
> x = wPRA({lat|latS:latN},{lon|lonL:lonR},time|:)
>
> eof = eofunc_Wrap(x, neof, optEOF)
> eof_ts = eofunc_ts_Wrap (x, eof, optETS)
>
> printVarSummary( eof ) ; examine EOF variables
> printVarSummary( eof_ts )
>
> ; =================================================================
> ; Normalize time series: Sum spatial weights over the area of used
> ; =================================================================
> dimx = dimsizes( x )
> mln = dimx(1)
> sumWgt = mln*sum( clat({lat|latS:latN}) )
> eof_ts = eof_ts/sumWgt
>
> ; =================================================================
> ; Extract the YYYYMM from the time coordinate
> ; associated with eof_ts [same as PRA&time]
> ; =================================================================
>
> yyyymm = cd_calendar(eof_ts&time,-2)/100
> ;;yrfrac = yyyymm_to_yyyyfrac(yyyymm, 0.0); not used here
>
> ;============================================================
> ; PLOTS
> ;============================================================
> wks = gsn_open_wks("ps","eof_test1")
> gsn_define_colormap(wks,"BlWhRe") ; choose colormap
> plot = new(neof,graphic) ; create graphic array
> ; only needed if paneling
> ; EOF patterns
>
> res = True
> res@gsnDraw = False ; don't draw yet
> res@gsnFrame = False ; don't advance frame yet
>
> ;---This resource not needed in V6.1.0
> res@gsnSpreadColors = True ; spread out color table
>
> res@gsnAddCyclic = False ; plotted dataa are not cyclic
>
> res@mpFillOn = False ; turn off map fill
> res@mpMinLatF = latS ; zoom in on map
> res@mpMaxLatF = latN
> res@mpMinLonF = lonL
> res@mpMaxLonF = lonR
>
> res@cnFillOn = True ; turn on color fill
> res@cnLinesOn = False ; True is default
> ;res@cnLineLabelsOn = False ; True is default
> res@lbLabelBarOn = False ; turn off individual lb's
>
> ; set symmetric plot min/max
> symMinMaxPlt(eof, 16, False, res) ; contributed.ncl
>
> ; panel plot only resources
> resP = True ; modify the panel plot
> resP@gsnMaximize = True ; large format
> resP@gsnPanelLabelBar = True ; add common colorbar
> resP@lbLabelAutoStride = True ; auto stride on labels
> yStrt = yyyymm(0)/100
> yLast = yyyymm(nyrs-1)/100
> resP@tiMainString = "PRA: "+season+": "+yStrt+"-"+yLast
> ;*******************************************
> ; first plot
> ;*******************************************
> do n=0,neof-1
> res@gsnLeftString = "EOF "+(n+1)
> res@gsnRightString = sprintf("%5.1f", eof@pcvar(n)) +"%"
> plot(n)=gsn_csm_contour_map_ce(wks,eof(n,:,:),res)
> end do
> gsn_panel(wks,plot,(/neof,1/),resP) ; now draw as one plot
>
> ;*******************************************
> ; second plot
> ;*******************************************
> ; EOF time series [bar form]
>
> rts = True
> rts@gsnDraw = False ; don't draw yet
> rts@gsnFrame = False ; don't advance frame yet
> rts@gsnScale = True ; force text scaling
>
> ; these four rtsources allow the user to stretch the plot size, and
> ; decide exactly where on the page to draw it.
>
> rts@vpHeightF = 0.40 ; Changes the aspect ratio
> rts@vpWidthF = 0.85
> rts@vpXF = 0.10 ; change start locations
> rts@vpYF = 0.75 ; the plot
>
>
> rts@tiYAxisString = "mm/day" ; y-axis label
>
> rts@gsnYRefLine = 0. ; reference line
> rts@gsnXYBarChart = True ; create bar chart
> rts@gsnAboveYRefLineColor = "red" ; above ref line fill red
> rts@gsnBelowYRefLineColor = "blue" ; below ref line fill blue
>
> ; panel plot only resources
> rtsP = True ; modify the panel plot
> rtsP@gsnMaximize = True ; large format
> rtsP@tiMainString = "PRA: "+season+": "+yStrt+"-"+yLast
>
> year = yyyymm/100
>
> ; create individual plots
> do n=0,neof-1
> rts@gsnLeftString = "EOF "+(n+1)
> rts@gsnRightString = sprintf("%5.1f", eof@pcvar(n)) +"%"
> plot(n) = gsn_csm_xy (wks,year,eof_ts(n,:),rts)
> end do
> gsn_panel(wks,plot,(/neof,1/),rtsP) ; now draw as one plot
> end
> ************************************************************
> and the result is :
>
> Variable: prate
> Type: float
> Total Size: 298598400 bytes
> 74649600 values
> Number of Dimensions: 3
> Dimensions and sizes: [time | 360] x [lat | 360] x [lon | 576]
> Coordinates:
> time: [1111.5..12038.5]
> lat: [-89.75..89.75]
> lon: [0.3125..359.6875]
> Number Of Attributes: 11
> long_name : Precipitation
> units : kg m-2 s-1
> cell_methods : time: mean
> interp_method : conserve_order1
> missing_value : 1e+20
> _FillValue : 1e+20
> standard_name : precipitation_flux
> original_units : kg/m2/s
> original_name : precip
> cell_measures : area: areacella
> associated_files : baseURL:
> http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation areacella:
> areacella_fx_GFDL-HIRAM-C180_amip_r0i0p0.nc
>
> Variable: clat
> Type: double
> Total Size: 2880 bytes
> 360 values
> Number of Dimensions: 1
> Dimensions and sizes: [lat | 360]
> Coordinates:
> lat: [-89.75..89.75]
> Number Of Attributes: 5
> long_name : latitude
> units : degrees_north
> bounds : lat_bnds
> standard_name : latitude
> axis : Y
> warning:Dimension (0) has not been defined
> warning:Dimension (1) has not been defined
> warning:Dimension (2) has not been defined
>
> Variable: wPRA
> Type: float
> Total Size: 24883200 bytes
> 6220800 values
> Number of Dimensions: 3
> Dimensions and sizes: [time | 30] x [lat | 360] x [lon | 576]
> Coordinates:
> time: [1111.5..11703.5]
> lat: [-89.75..89.75]
> lon: [0.3125..359.6875]
> Number Of Attributes: 13
> NMO : 0
> _FillValue : 1e+20
> anomaly_op_ncl : Annual Cycle Removed: rmMonAnnCycTLL: contributed.ncl
> associated_files : baseURL:
> http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation areacella:
> areacella_fx_GFDL-HIRAM-C180_amip_r0i0p0.nc
> cell_measures : area: areacella
> original_name : precip
> original_units : kg/m2/s
> standard_name : precipitation_flux
> missing_value : 1e+20
> interp_method : conserve_order1
> cell_methods : time: mean
> units : kg m-2 s-1
> long_name : DJF: Precipitation
>
> Variable: eof
> Type: float
> Total Size: 76800 bytes
> 19200 values
> Number of Dimensions: 3
> Dimensions and sizes: [evn | 1] x [lat | 100] x [lon | 192]
> Coordinates:
> evn: [1..1]
> lat: [-24.75..24.75]
> lon: [40.3125..159.6875]
> Number Of Attributes: 7
> eval_transpose : 19.68391
> eval : 13030.75
> pcvar : 13.04149
> matrix : covariance
> method : transpose
> _FillValue : 1e+20
> long_name : EOF: Wgt: DJF: Precipitation
>
> Variable: eof_ts
> Type: float
> Total Size: 120 bytes
> 30 values
> Number of Dimensions: 2
> Dimensions and sizes: [evn | 1] x [time | 30]
> Coordinates:
> evn: [1..1]
> time: [1111.5..11703.5]
> Number Of Attributes: 4
> ts_mean : -0.7275095
> matrix : covariance
> _FillValue : 1e+20
> long_name : EOF: Amplitude: Wgt: DJF: Precipitation
> fatal:["NclVar.c":1376]:Assignment type mismatch, right hand side can't
> be coerced to type of left hand side
> fatal:Execute: Error occurred at or near line 95 in file eof_pra_gfdl.ncl
>
> ****************************************
> I would appreciate that if you could help me solve this problem. Thank
> you very much.
>
> Best regards,
>
> Hai
> ----------------
> Hai Wang
> College of Physical and Environmental Oceanography,
> Ocean University of China
> 238, Songling Road, Qingdao, Shandong, China, 266100
>
>
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Mon Jul 9 08:59:18 2012

This archive was generated by hypermail 2.1.8 : Mon Jul 09 2012 - 10:45:32 MDT