Sie sind hier: Startseite / Services / Data Analysis and Visualization / Visualization / Software / NCL / examples / source_code / DKRZ NCL overlay small map on map plot example
Info
Alle Inhalte des Nutzerportal sind nur auf Englisch verfügbar.

DKRZ NCL overlay small map on map plot example

This example shows how to draw a small global map on top of a regional map for a better location of the sub-region.

Example script:

;-----------------------------------------------------------------
; 
;  DKRZ - NCL Example:   NCL_overlay_small_map_on_map_plot.ncl
;
;  04.03.16  meier-fleischer(at)dkrz.de
;-----------------------------------------------------------------
;load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
;load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"

begin
;-- read the data and define var
  f   =  addfile("$HOME/NCL/NCL_User_Guide/data/rectilinear_grid_2D.nc","r")
  var =  f->tsurf(0,:,:)

;-- define the workstation (plot type and name)
  wks_type = "png"
  wks_type@wkWidth  =  1024
  wks_type@wkHeight =  1024
  wks = gsn_open_wks(wks_type,"plot_small_map_section_on_map_plot_for_overview")

;-- set resources
  mres1                       =  True
  mres1@gsnDraw               =  False                  ;-- don't draw the plot yet
  mres1@gsnFrame              =  False                  ;-- don't advance the frame
  mres1@gsnMaximize           =  True                   ;-- maximize the plot output

  mres1@cnFillOn              =  True                   ;-- filled contours
  mres1@cnLinesOn             =  False                  ;-- don't draw contour lines
  mres1@cnFillPalette         = "rainbow"
  mres1@cnLevelSelectionMode  = "ManualLevels"          ;-- set contour levels manually
  mres1@cnMinLevelValF        =  250.                   ;-- minimum contour level
  mres1@cnMaxLevelValF        =  310.                   ;-- maximum contour level
  mres1@cnLevelSpacingF       =  1                      ;-- contour level spacing

  mres1@mpDataBaseVersion     = "MediumRes"             ;-- set map data base
  mres1@mpOutlineOn           =  True                   ;-- turn map outline on
  mres1@mpGeophysicalLineThicknessF = 2                 ;-- increase coastline thickness
  mres1@mpMinLonF             = -30.                    ;-- min lon
  mres1@mpMaxLonF             =  30.                    ;-- max lon
  mres1@mpMinLatF             =  30.                    ;-- min lat
  mres1@mpMaxLatF             =  80.                    ;-- max lat

  mres1@lbBoxMinorExtentF     =  0.15                   ;-- decrease height of labelbar

  mres1@tiMainString          = "DKRZ NCL workshop:  map annotation"   ;-- title string
  mres1@tiMainFontHeightF     =  0.02                   ;-- main title font size

;-- draw the main map
  map1 = gsn_csm_contour_map(wks, var, mres1)

;-- set resources for the smaller world map
  mres2                       =  True
  mres2@gsnDraw               =  False                  ;-- don't draw the plot yet
  mres2@gsnFrame              =  False                  ;-- don't advance the frame
  mres2@gsnLeftString         =  ""                     ;-- don't draw left string
  mres2@gsnRightString        =  ""                     ;-- don't draw right string

  mres2@vpWidthF              =  0.3                    ;-- set viewport width
  mres2@vpHeightF             =  0.3                    ;-- set viewport height

  mres2@mpLandFillColor       = "Gray75"                ;-- land fill color
  mres2@mpOceanFillColor      = "White"                 ;-- ocean fill color
  mres2@mpInlandWaterFillColor = "White"                ;-- inland water color 

  mres2@tmXBOn                =  False                  ;-- turn off tickmarks at bottom
  mres2@tmXTOn                =  False                  ;-- turn off tickmarks at top
  mres2@tmYLOn                =  False                  ;-- turn off tickmarks at left side
  mres2@tmYROn                =  False                  ;-- turn off tickmarks at right side

;-- draw the smaller world map
  map2 = gsn_csm_map(wks, mres2)

;-- set polyline resources
  pres                      =  True
  pres@gsLineThicknessF     =  2.0                      ;-- polyline thickness
  pres@gsLineColor          = "blue"                    ;-- polyline color

;-- attach polyline to map2
  pbox = gsn_add_polyline(wks, map2, (/-30,30,30,-30,-30/), (/30,30,80,80,30/), pres)

;-- set annotation resources                                      
  amres                     =  True
  amres@amJust              = "TopLeft"                ;-- labelbar justification
  amres@amParallelPosF      = -0.5                     ;-- move labelbar to the right of plot
  amres@amOrthogonalPosF    = -0.5                     ;-- move labelbar to the top of plot

;-- atach the labelbar to the plot
  annoid = gsn_add_annotation(map1,map2,amres)

;-- set text resources
  txres1                     =  True
  txres1@txFontHeightF       =  0.03
  txres1@txAngleF            =  40.                     ;-- rotate text string 40 degrees

;-- attach text to map1
  text1 = gsn_add_text(wks,map1,"Atlantic",-20,45,txres1)

;-- set text resources
  txres2                     =  True
  txres2@txFontHeightF       =  0.03
  txres2@txAngleF            =  -50.                     ;-- rotate text string 40 degrees

;-- attach text to map1
  text2 = gsn_add_text(wks,map1,"North Sea",1.0,61,txres2)

;-- draw the plot and advance the frame
  draw(map1)
  frame(wks)

end

Artikelaktionen