<div dir="ltr">Hi Sri,<div>The error messages you are receiving are very likely due to equiv_sample_size returning sample sizes less than 3 (as the message states). It is your choice whether to use equiv_sample_size or not. I personally always use it, as you generally do not want to include points with very low sample sizes as part of your t-test plots. Did you examine your probt array to see what the range of values is? Are there any values greater than 95%? You can use <a href="https://www.ncl.ucar.edu/Document/Functions/Contributed/stat_dispersion.shtml">stat_dispersion</a> to help you with this. You are only attempting to plot those values higher than 99%, so there's a chance that no point reaches that threshold.</div><div><br></div><div>For the record: I don't see anything amiss with your coding. </div><div>If you have any further questions please respond to ncl-talk.</div><div>Adam </div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Jun 18, 2018 at 3:27 AM Sri Nandini <<a href="mailto:snandini@marum.de" target="_blank">snandini@marum.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Hello All<br><br>I am using the ttest routine on monthly climatology, and plotting only those
values that are significant to the 95% level but the error i get is <br><br>warning:ttest: encountered 4692 cases where s1 and/or s2 were less than 2. Output set to missing values in these cases<br><br>Upon various searches online i came to understand it means: <br><br>This message just indicates that you have spatial locations in your
input arrays which have no non-missing values, and the 'ttest' function
will set the output to missing as well.
<br>Does this mean performing ttest on monthly climatologies or getting the equiv_sample_size is not a good idea?<br><br>In the end my plot doesn't contain any stippling dots for ttest values.<br><br>my coding looks something
like this:<br><br><br>f= addfile("Total_eva_PI.nc", "r") ;<br>T41 = f->QFLUX(:,:,:)<br>T41@_FillValue = -9.96921e+36 ; (12,lat,lon) <br>printVarSummary(T41) <br> <br>aveX = dim_avg_n_Wrap(T41,0) ; (lat,lon)<br>printVarSummary(aveX) <br><br>varX = dim_variance_n_Wrap(T41,0) ; compute variance the 0th dim<br>printVarSummary(varX) ; (lat,lon) <br><br>;=================================================================================<br> yrStrt = 0950<br> yrLast = 1000<br><br>f1 = addfile("Total_eva_9ka.nc", "r") ;<br>TIME1 = f1->time<br>TIME1 = TIME1-31<br><br> YYYY1 = cd_calendar(TIME1,-1)/100 ; entire file<br> iYYYY1 = ind(YYYY1.ge.yrStrt .and. YYYY1.le.yrLast)<br><br>air22 = f1->QFLUX(iYYYY1,:,:)<br>air22@_FillValue = -9.96921e+36 <br> <br>T2M_4 = clmMonLLT(air22(lat|:,lon|:,time|:)) ; monthly climatology<br>printVarSummary(T2M_4) ; (12,lat,lon) <br><br>aveY = dim_avg_n_Wrap(T2M_4,2) <br>printVarSummary(aveY) ; (lat,lon)<br><br>varY = dim_variance_n_Wrap(T2M_4,2) ; compute variance<br>printVarSummary(varY) ; (lat,lon) <br><br><br><br><br><br>;================================================================================<br>;equiv_sample_size: Estimates the number of independent values of a series of correlated observations. Specify a critical significance level to test the lag-one auto-correlation coefficien. Use annual means.<br>;(Generally, there is no significant year-to-year autocorrelation of monthly data [e.g. successive Januaries].) So here, xX and sY are scalars indicating the number of years used.<br>;=================================================================================<br> sigr = 0.05 ; critical sig lvl for r<br><br> xEqv = new(dimsizes(aveY),typeof(aveY),aveY@_FillValue)<br>printVarSummary(xEqv) ; (lat,lon) <br><br> xEqv = equiv_sample_size (T41(lat|:,lon|:,time|:), sigr,0) <br> copy_VarMeta(aveY,xEqv)<br>printVarSummary(xEqv) ; (lat,lon) <br><br> yEqv = new(dimsizes(aveY),typeof(aveY),aveY@_FillValue)<br>printVarSummary(yEqv) <br> ; (lat,lon) <br> yEqv = equiv_sample_size (T2M_4(lat|:,lon|:,month|:), sigr,0)<br>copy_VarMeta(aveY,yEqv)<br>printVarSummary(yEqv) ; (lat,lon) <br><br>;==================================================================================<br>;Use "ttest" to compute the probabilities <br>;==================================================================================<br> probt = new(dimsizes(varY),typeof(varY),varY@_FillValue)<br><br> iflag= False ; population variance similar?<br><br>probt = 100.*(1. -ttest(aveY,varY,xEqv,aveX,varX,yEqv,iflag,False)) ; all areas whose value > 95 are significant<br>;printVarSummary(probt) ; (lat,lon) <br><br>copy_VarMeta(varY,probt)<br>printVarSummary(probt) ; (lat,lon) <br> printMinMax(probt,0) ; min=0.0001486018726404303 max=100<br><br>;====================================================================<br>;calculate the T2M difference <br>;==================================================================== <br>T2diff = new(dimsizes(aveY),typeof(aveY),aveY@_FillValue)<br><br>copy_VarMeta(aveY,T2diff)<br><br>T2diff=aveY-aveX<br><br><br>outfile = addfile("E_9_Diff.nc","c") ;<br>outfile->T1diff = T2diff<br><br>;====================================================================<br>;Here is a section of my code that draws a color fill plot, and then<br>;overlays contours of statistical significance.<br>;====================================================================<br> wks = gsn_open_wks("pdf","QFLUX_ttest_9ka_PI99%1")<br><br><br> res = True<br> res@cnFillOn = True ; turn on color<br> res@gsnSpreadColors = True ; use full colormap<br><br> res@cnLinesOn = False ; turn off contour lines<br><br> res@cnLevelSelectionMode = "ManualLevels" ; set manual contour levels<br> res@cnMinLevelValF = -4 ; set min contour level<br> res@cnMaxLevelValF = 4 ; set max contour level<br> res@cnLevelSpacingF = .5 ; set contour spacing<br><br> res@gsnDraw = False ; Do not draw plot<br> res@gsnFrame = False ; Do not advance frome<br><br> res@tiMainString = "QFLUX: 9ka-PI"<br> res@tiMainOffsetYF = 0.02 ; Move title up a little<br> res@gsnCenterString = " "<br> res@gsnLeftString = " "<br> res@gsnRightString = " "<br><br> res@cnRasterModeOn = True ; Raster mode shows grid cells<br><br> res@lbBoxEndCapStyle = "TriangleBothEnds" ; Added in NCL V6.4.0<br> res@lbTitlePosition = "bottom" ; title position<br> res@lbTitleFontHeightF = .01 ; make title smaller<br> res@lbTitleDirection = "Across" ; title direction<br> res@lbLabelFontHeightF = 0.01<br><br> minlat = 30. ; min lat to mask<br> maxlat = 80. ; max lat to mask<br> minlon = -70. ; min lon to mask<br> maxlon = 63. ; max lon to mask<br><br> res@mpProjection = "LambertConformal" ; choose projection<br><br>;---masked plot<br> res@gsnAddCyclic = True ; regional plot<br><br> res@mpMinLatF = minlat ; min lat to mask<br> res@mpMaxLatF = maxlat ; max lat to mask<br> res@mpMinLonF = minlon ; min lon to mask<br> res@mpMaxLonF = maxlon ; max lon to mask<br><br> res@gsnMaskLambertConformal = True ; turn on lc masking<br><br> plot = gsn_csm_contour_map(wks,T2diff,res)<br><br> add_lc_labels(wks,plot,minlat,maxlat,minlon,maxlon) ; attach latitude labels<br><br>;=====================================================================<br>;Second plot resources and overlay onto first<br>;=====================================================================<br> res2 = True ; res2 probability plots<br> res2@gsnDraw = False ; Do not draw plot<br> res2@gsnFrame = False ; Do not advance frome<br><br> res2@cnLevelSelectionMode = "ExplicitLevels" ; set explicit cnlev<br> res2@cnLevels = (/99./) ; only have 1 contour level<br> res2@cnInfoLabelOn = False<br> res2@cnLinesOn = False ; do not draw contour lines<br> res2@cnLineLabelsOn = False ; do not draw contour labels<br> res2@cnFillScaleF = 0.6 ; add extra density<br><br> res2@gsnRightString = "" ; Turn off subtitles<br> res2@gsnLeftString = "" <br> res@gsnAddCyclic = True ; add cyclic point<br> plot2 = gsn_csm_contour(wks,probt(:,:),res2) <br><br> opt = True ; set up parameters for pattern fill<br> opt@gsnShadeFillType = "pattern" ; specify pattern fill<br> opt@gsnShadeHigh = 17 ; stipple pattern<br> opt@gsnShadeDotSizeF = 1 ; make dots larger<br><br>;=====================================Attach the polylines<br>ADD_SHAPEFILE_OUTLINES = True<br> sname = "Caspian_Basin.shp"<br><br> pres = True<br> pres@gsLineColor = "black"<br> pres@gsLineThicknessF = 2.0 ; 3x thickness<br> shp1 = gsn_add_shapefile_polylines(wks,plot,sname,pres) <br> printVarSummary(shp1)<br>;=====================================<br><br> plot2 = gsn_contour_shade(plot2,1,99., opt) ; stipple all areas >= 90 contour <br> overlay (plot, plot2)<br><br> draw (plot)<br> frame(wks)<br><br>end<br></div>
_______________________________________________<br>
ncl-talk mailing list<br>
<a href="mailto:ncl-talk@ucar.edu" target="_blank">ncl-talk@ucar.edu</a><br>
List instructions, subscriber options, unsubscribe:<br>
<a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank">http://mailman.ucar.edu/mailman/listinfo/ncl-talk</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="m_1902559926005768331gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div><div><span><font color="#888888">Adam Phillips <br></font></span></div><span><font color="#888888">Associate Scientist, </font></span><span><font color="#888888">Climate and Global Dynamics Laboratory, NCAR<br></font></span></div></div><div><span><font color="#888888"><a href="http://www.cgd.ucar.edu/staff/asphilli/" target="_blank">www.cgd.ucar.edu/staff/asphilli/</a> </font></span><span><font color="#888888">303-497-1726 </font></span></div><span><font color="#888888"></font></span><div><div><span><font color="#888888"><br></font></span><div><span><font color="#888888"><a href="http://www.cgd.ucar.edu/staff/asphilli" target="_blank"></a></font></span></div></div></div></div></div></div></div></div></div></div></div>