[ncl-talk] Plotting over the ocean

Grace Choi gracesh27 at gmail.com
Thu Feb 8 14:00:21 MST 2018


Hello,

I have been trying to find and apply a function that allows me to plot over
the ocean as well as the land, but I have not been able to succeed.

If someone could direct me to a reference where mapping over the ocean is
talked about, or help me with the script itself, I would really appreciate
it.

I am attaching the script and the netCDF file I am working with here for
reference:

begin


;************************************************************

; START user input

;************************************************************


datadir = "./"

filename = "Dalhousie_PM2.5_2011.nc"


; specify latitude and longitude bounds for plot:

; latitude spans -54.75 degrees to 69.75 degrees

minlat = 25

maxlat = 50


; longitude spans -179.95 to 179.95 degrees

minlon = -130

maxlon = -70


title_string = "Dalhousie PM2.5 2011" ; whatever you want the title on the
plot to be


plot_name = "dalhousie_ocean_PM25_2011"   ; what you want the plot file
name to be (less the extension/format)

plotfiletype = "pdf" ; check NCL documentation for other plot output file
formats

                     ; options include "pdf" and "png"


showgrid = "yes"     ; options are "yes" (plot will show grid size and look
blocky)

                     ; or "no" (plot will show smoothed-out data)


;************************************************************

; read in the file:

;************************************************************


fin = addfile(datadir+filename,"r")

; now read in the variables. I found the variable names using the following
lines:

; varnames = getfilevarnames(fin)

; print(varnames)

; then used the resulting names below:

lats = fin->LAT

lons = fin->LON

PM25data = fin->PM25


printVarSummary(PM25data) ; will tell us the shape of the PM2.5 array

; that tells us it's arranged (lat,lon) and has units of ug/m3

; you can comment out that line, if you want!


; this dataset has IEEE NaN "values," which NCL doesn't like.

;print(num(isnan_ieee(PM25data)))

; so let's replace them with something NCL can handle better:

if (any(isnan_ieee(PM25data))) then

   value = -999.

   replace_ieeenan(PM25data,value,0)

   PM25data at _FillValue = value

end if


; this will print out the min and max of the -whole- dataset (not just the
part you sample)

; which can be helpful for picking out contour levels (res at cnLevels, below)

printVarSummary(PM25data)

printMinMax(PM25data,True)

;**********************************************************************

; plot section

;**********************************************************************

res = True


res at tiMainString = "Dalhousie PM2.5 2011"

name = plot_name

print("Dalhousie PM2.5 2011 "+name)

wks   = gsn_open_wks("pdf", name)


res at cnLevelSelectionMode = "ExplicitLevels"  ; Set contour levels manually

res at cnFillOn             = True                ; turn on color

if (showgrid.eq."yes") then

   res at cnFillMode           = "CellFill"

end if

res at gsnSpreadColors      = True                ; use full colormap

res at cnLinesOn            = False               ; turn off contour lines


; specify color table you want:

gsn_define_colormap(wks,"sunshine_9lev")


; specify which values bound color changes in the plot:

res at cnLevels = (/0.1,0.25,0.5,1.,2.,3.,4.,5.,7.5,10.,12.,14.,16.,18./); the
original

;res at cnLevels = (/0.25, 9.3, 11.0, 13.2/)


res at gsnMaximize          = True

res at gsnPaperOrientation  = "Landscape"


res at mpLimitMode = "Corners"

res at mpLeftCornerLatF = minlat

res at mpLeftCornerLonF = minlon

res at mpRightCornerLatF = maxlat

res at mpRightCornerLonF = maxlon


res at mpFillOn = False ; this will give you a white background

res at mpOutlineOn = True                 ; Turn on map outlines

res at mpOutlineBoundarySets = "GeophysicalAndUSStates"  ; Turn on US states


res at lbBoxLinesOn = False             ; Turn off labelbar box lines

res at lbLabelAutoStride = True ; so there aren't overlapping numbers

res at lbTitleOn                = True     ; turn on label bar title

res at lbTitleString = (PM25data at units)    ; label bar title

res at pmLabelBarOrthogonalPosF = .20      ; move label bar down


plot = gsn_csm_contour_map(wks,PM25data,res)


end   ; end of script



Sincerely,

Grace
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20180208/d2f0e70c/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Dalhousie_PM2.5_2011.nc
Type: application/x-netcdf
Size: 638510 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20180208/d2f0e70c/attachment-0001.nc>


More information about the ncl-talk mailing list