[ncl-talk] problem with plotting

Adam Phillips asphilli at ucar.edu
Mon Apr 1 16:43:59 MDT 2019


Hi Anahita,
Are you getting any error messages? If so, what are they? Did you try to
address them? I'm suspecting that you're getting error messages as the
longitude labels of your plot are not correct. I would guess that something
is incorrect with your latitude/longitude coordinate variables. You can
verify this by using printVarSummary statements to look at the array that
is being plotted.

One aspect of your script that seems a bit odd:
There are numerous instances of you using both index and coordinate
subscripting:
sde_toa_sw1=FSNT(:,45:61,{-30:15})-FSNTC(:,45:61,{-30:15})

You can do that if you would like, but I am unsure if you meant to select
the 46-62nd latitude indices as opposed to coordinate subscripting
({-35:35}).

Finally when writing to ncl-talk it is always best to include clean, short
scripts illustrating the issue, as that helps contributors with diagnosing
the issue. As always, please respond to ncl-talk if you have further
questions.
Adam



On Mon, Apr 1, 2019 at 4:09 PM Anahita Amiri Farahani <aamir003 at ucr.edu>
wrote:

> Dear all,
>
> I try to extract some part of Africa and plot it but it does not work,
> here is the code and attached is the plot.
> 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"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
>
>
> ana=addfile("SDE_sw_lw_cam4_dust_base.nc","r")
> FSNT  = lonFlip(ana->FSNT)
> FSNTC  = lonFlip(ana->FSNTC)
> FLNT = lonFlip(ana->FLNT)
> FLNTC= lonFlip(ana->FLNTC)
> lat=ana->lat
> lon=ana->lon
> delete(ana)
>
>
> ana=addfile("SDE_sw_lw_cam4_dust.nc","r")
> FSNT_diff  = lonFlip(ana->FSNT)
> FSNTC_diff  = lonFlip(ana->FSNTC)
> FLNT_diff = lonFlip(ana->FLNT)
> FLNTC_diff = lonFlip(ana->FLNTC)
> delete(ana)
>
>
> ;************** AFRICA *****************
> lat1 = lat(45:61)
> lon1=fspan(-30,15,19)
>
> lat1 at units = "degrees_north"
> lon1 at units = "degrees_east"
>
> rad    = 4.0*atan(1.0)/180.0
> clat   = cos(lat1*rad)
> ;********************** BASE ******************************
> sde_toa_sw1=FSNT(:,45:61,{-30:15})-FSNTC(:,45:61,{-30:15})
> sde_toa_lw1=-1.*(FLNT(:,45:61,{-30:15})-FLNTC(:,45:61,{-30:15}))
>
> ;********************** Dust ******************************
> sde_toa_sw_diff1=FSNT_diff(:,45:61,{-30:15})-FSNTC_diff(:,45:61,{-30:15})
>
> sde_toa_lw_diff1=-1.*(FLNT_diff(:,45:61,{-30:15})-FLNTC_diff(:,45:61,{-30:15}))
> ; ******** Annual Global Mean CHANGES ********
>
> sde_toa_tot= sde_toa_sw1 + sde_toa_lw1
> sde_toa_tot_diff= sde_toa_sw_diff1 + sde_toa_lw_diff1
> sde_toa=sde_toa_tot_diff-sde_toa_tot
>
> ;copy_VarCoords(FSNT,sde_toa)
>
>
> sde_toa!2         = "lon"                  ; variable/dim name
> sde_toa&lon     =  lon1                   ; create coordinate variable
> sde_toa!1         = "lat"                  ; variable/dim name
> sde_toa&lat     =  lat1                   ; create coordinate variable
> sde_toa!0         = "time"
>
>
> copy_VarCoords(sde_toa,sde_toa_tot)
> copy_VarCoords(sde_toa,sde_toa_tot_diff)
>
>
> sde_toa_tot!0         = "time"                  ; variable/dim name
> sde_toa_tot_diff!0         = "time"                  ; variable/dim name
>
>
>
> ;toa_toa_area = avg(wgt_areaave(sde_toa, area, 1.0, 0))
> toa_toa_clat = avg(wgt_areaave(sde_toa, clat, 1.0, 0))
> ;print("sde_toa_tot="+toa_toa_area)
> print("sde_toa_tot="+toa_toa_clat)
>
> sde_toa_tot_annual = month_to_annual(sde_toa_tot, 1)
> sde_toa_tot_diff_annual = month_to_annual(sde_toa_tot_diff, 1)
>
>
> dsizesPD = dimsizes(sde_toa_tot_diff_annual)
> ntim     = dsizesPD(0)
> nlat     = dsizesPD(1)
> mlon     = dsizesPD(2)
>
>
> low_base = sde_toa_tot_annual(lat|:,lon|:,year|:)
> low_dust = sde_toa_tot_diff_annual(lat|:,lon|:,year|:)
>
> low_avebase = dim_avg(low_base)
> low_avedust = dim_avg(low_dust)
> low_varbase = dim_variance(low_base)
> low_vardust = dim_variance(low_dust)
> low_sPD   = conform_dims((/nlat,mlon/),ntim,-1)
> ;alpha = swPD(0,:,:)
> alpha =
> (1.0-ttest(low_avebase,low_varbase,low_sPD,low_avedust,low_vardust,low_sPD,False,False))
>
> alpha!0         = "lat"
> alpha&lat     =  lat1
> alpha!1         = "lon"
> alpha&lon     =  lon1
>
> ;***** Global Annual Significance ********
>
>
>
> low_base_area = wgt_areaave(sde_toa_tot_annual, clat, 1.0, 0)
> low_dust_area = wgt_areaave(sde_toa_tot_diff_annual, clat, 1.0, 0)
> low_avD      = avg(low_base_area)
> low_avI      = avg(low_dust_area)
> low_vaD      = variance(low_base_area)
> low_vaI      = variance(low_dust_area)
> low_sD       = ntim
>
> low_prob =
> 100.0*(1.0-ttest(low_avD,low_vaD,low_sD,low_avI,low_vaI,low_sD,False,False))
> print("Significance level of SDE_global = " + sprintf("%5.2f", low_prob))
>
>
>  low_AAE = dim_avg(sde_toa(lat|:,lon|:,time|:))
>
>  low_AAE!1         = "lon"                  ; variable/dim name
>  low_AAE&lon     =  lon1                   ; create coordinate variable
>  low_AAE!0         = "lat"                  ; variable/dim name
>  low_AAE&lat     =  lat1                   ; create coordinate variable
>
>
>
>
> wks = gsn_open_wks("eps","SDE_TOA_tot_ann")
> gsn_define_colormap(wks,"BlWhRe")   ; choose color
> ;gsn_define_colormap(wks,"BlAqGrYeOrRe")
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>   res                     = True               ; plot mods desired
>   res at cnFillOn            = True              ; turn on color
>   res at gsnSpreadColors     = True               ; use full color map
>   res at cnLinesOn           = False              ; no contour lines
>   res at cnLineLabelsOn      = False              ; no line labels
>
>   res at mpMaxLatF = 90                         ; specify the plot domain
>   res at mpMinLatF = -90                         ;
>   res at mpMinLonF = 0                        ;
>   res at mpMaxLonF = 357.5
>   res at mpCenterLonF= 0;178.75
>   ;res at gsnAddCyclic        = False
>
> ;res at cnLevelSelectionMode =  "AutomaticLevels"   ; AutomaticLevels
>
>   res at cnLevelSelectionMode =  "ManualLevels"   ; AutomaticLevels
>   res at cnMinLevelValF       = -4.              ; min level
>   res at cnMaxLevelValF       =  4.              ; max level
>   res at cnLevelSpacingF      =  0.2                ; interval
>
>
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> res at tiMainString        = "Annual changes SDE at TOA "
>
> res at gsnDraw              = False           ; Do not draw plot
> res at gsnFrame             = False           ; Do not advance frome
> plot = gsn_csm_contour_map_ce(wks,low_AAE(:,:), res)
>
> ; ========================= PLOT 2 ==============================
>   res2 = True                            ; res2 probability plots
>
>   res2 at gsnDraw             = False       ; Do not draw plot
>   res2 at gsnFrame            = False       ; Do not advance frome
>
>   res2 at cnLevelSelectionMode = "ManualLevels" ; set manual contour levels
>   res2 at cnMinLevelValF      = 0.00        ; set min contour level
>   res2 at cnMaxLevelValF      = 1.05        ; set max contour level
>   res2 at cnLevelSpacingF     = 0.05        ; set contour spacing
>
>   res2 at cnInfoLabelOn       = False       ; turn off info label
>   res2 at cnNoDataLabelOn     = False
>
>   res2 at cnLinesOn           = False       ; do not draw contour lines
>   res2 at cnLineLabelsOn      = False       ; do not draw contour labels
>   res2 at gsnLeftString = ""
>   res2 at gsnRightString = ""
>
>   res2 at cnFillScaleF        = 0.6         ; add extra density
>   res2 at cnLevelSpacingF     = 0.04        ; set contour spacing
>
>   plot2   = gsn_csm_contour(wks,gsn_add_cyclic_point(alpha(:,:)), res2)
>   plot2   = ShadeGtContour(plot2, 0.95, 17)  ; shade all areas less than
> the
>                                              ; 0.05 contour level
>   overlay (plot, plot2)
>
>   draw (plot)
>   frame(wks)
>  delete(wks)
>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>


-- 
Adam Phillips
Associate Scientist,  Climate and Global Dynamics Laboratory, NCAR
www.cgd.ucar.edu/staff/asphilli/   303-497-1726

<http://www.cgd.ucar.edu/staff/asphilli>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20190401/364f8011/attachment.html>


More information about the ncl-talk mailing list