load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" wks = gsn_open_wks("png","curved_map_text") ;---Resources for the map res = True res@mpProjection = "orthographic" res@mpCenterLatF = 30. res@mpCenterLonF = 160. res@mpCenterRotF = 60. res@mpLabelsOn = False res@mpPerimOn = False res@gsnFrame = False plot = gsn_csm_map(wks,res) ; Draw the map, but don't advance frame yet ;---Resource list for markers, lines, and polygons gsres = True gsres@gsLineColor = "black" gsres@gsLineThicknessF = 2.0 gsres@gsLineLabelFontHeightF = 0.02 gsres@gsLineLabelFontColor = "black" gsres@gsMarkerIndex = 15 ; circle with an "x" gsres@gsMarkerSizeF = 0.02 gsres@gsMarkerThicknessF = 2.0 ; double thick circle and x outline ; ; Draw polygons representing the 5 major zones of the globe, beginning ; with the tropical zone. ; Turn edges off and set the marker color. ; gsres@gsMarkerColor = "black" ; black is the default px = (/360.,360.,0.,0.,360./) py = (/-23.5,23.5,23.5,-23.5,-23.5/) gsres@gsFillColor = "green" gsn_polygon(wks,plot,px,py,gsres) ;---Draw the north and south temperate zones gsres@gsFillColor = "red" py(0:4) = (/ 23.5 , 66.5 , 66.5 , 23.5 , 23.5/) px(0:4) = (/ 360. , 360. , 0. , 0. , 360./) gsn_polygon(wks,plot,px,py,gsres) py(0:4) = (/ -23.5 , -66.5 , -66.5 , -23.5 , -23.5 /) px(0:4) = (/ 360. , 360. , 0. , 0. , 360. /) gsn_polygon(wks,plot,px,py,gsres) ;---Draw the frigid zones gsres@gsFillColor = "lightblue" py(0:4) = (/ 90. , 66.5 , 66.5 , 90. , 90. /) px(0:4) = (/ 360. , 360. , 0. , 0. , 360. /) gsn_polygon(wks,plot,px,py,gsres) py(0:4) = (/ -90. , -66.5 , -66.5 , -90. , -90./) px(0:4) = (/ 360. , 360. , 0. , 0. , 360./) gsn_polygon(wks,plot,px,py,gsres) ;---Draw markers at each pole px(0:1) = 0. py(0:1) = (/90., -90./) gsn_polymarker(wks,plot,px(:1),py(:1),gsres) ; ; Draw polylines at each of the major latitudinal boundary lines, ; beginning with the equator. Use the line label to name each of the ; lines. The '|' character is inserted between each label character ; to allow the labels to track the curve of each line more precisely. ; gsres@gsLineLabelFontColor = "black" gsres@gsLineLabelString = "e|q|u|a|t|o|r" px(0:1) = (/360.,0/) py(0:1) = 0. gsn_polyline(wks,plot,px(:1),py(:1),gsres) ;---Tropic of cancer gsres@gsLineLabelString = "t|r|o|p|i|c o|f c|a|n|c|e|r" px(0:1) = (/360., 0./) py(0:1) = 23.5 gsn_polyline(wks,plot,px(:1),py(:1),gsres) ; ; Tropic of capricorn (Note: currently there is a limit on the ; number of characters in a line label that prevents the '|' ; character from being used between each letter in a label ; of this length). ; gsres@gsLineLabelString = "tr|o|p|ic of c|a|p|r|i|c|o|rn" py(0:1) = -23.5 gsn_polyline(wks,plot,px(:1),py(:1),gsres) ;---Arctic circle gsres@gsLineLabelString = "a|r|c|t|i|c c|i|r|c|l|e" py(0:1) = 66.5 gsn_polyline(wks,plot,px(:1),py(:1),gsres) ;---Antarctic circle gsres@gsLineLabelString = "|a|n|t|a|r|c|t|i|c c|i|r|c|l|e" py(0:1) = -66.5 gsn_polyline(wks,plot,px(:1),py(:1),gsres) frame(wks)