Benutzerspezifische Werkzeuge

##### Sektionen
Sie sind hier: DKRZ PyNGL Hovmoeller plot
Info
Alle Inhalte des Nutzerportal sind nur auf Englisch verfügbar.

# DKRZ PyNGL Hovmoeller plot

The example shows how to create a Hovmoeller plot.

Example script:

`##  File:#    hov_1.py##  Synopsis:#    Default black and white Hovmueller plot.##  Category:#    contour plot##  Based on NCL example:#    hov_1.ncl##  Author:#    Karin Meier-Fleischer#  #  Date of initial publication:#    November, 2018##  Description:#    This example shows how to create a default black and white Hovmueller plot.##  Effects illustrated:#    o  Creating a Hovmueller plot#    o  Using text function codes to generate umlauts##  Output:#     A single visualization is produced.     #'''  PyNGL Example:     hov_1.py  -  Creating a Hovmueller plot  -  Using text function codes to generate umlauts  '''from __future__ import print_functionimport numpy as npimport os, sysimport Ngl,Nio#-------------------------------------------------------#-- Function:    add_titles(wks,plot,resources,title,left,center,right)#-------------------------------------------------------def add_titles(wks,plot,title="",left="",center="",right=""):   vpx = Ngl.get_float(plot,"vpXF")             #-- retrieve value of res.vpXF from plot   vpy = Ngl.get_float(plot,"vpYF")             #-- retrieve value of res.vpYF from plot   vpw = Ngl.get_float(plot,"vpWidthF")         #-- retrieve value of res.vpWidthF from plot   vph = Ngl.get_float(plot,"vpHeightF")        #-- retrieve value of res.vpHeightF from plot      ymax = vpy+0.08                              #-- we need space for the title and strings      if(ymax > 0.98):     print("--> if you can't see the title use res.nglMaximize = False and/or set res.vpYF")#-- add title   if(title != ""):      tires = Ngl.Resources()      tires.txFontHeightF =  0.018      tires.txJust        = "CenterCenter"      tires.txFont        =  22                     #-- Font 22: Helvetica bold      if(left != "" or center != "" or right != ""):         y = vpy + 0.07      else:         y = vpy + 0.05      Ngl.text_ndc(wks, title, 0.5, y, tires)#-- add left, center and/or right string   txres = Ngl.Resources()   txres.txFontHeightF = 0.014                  #-- font size for left, center and right string   y = vpy + 0.035                              #-- y-position   if(left != ""):      txres.txJust = "CenterLeft"               #-- text justification      x = vpx                                   #-- x-position      Ngl.text_ndc(wks, left, x, y, txres)      #-- add text to wks         if(center != ""):      txres.txJust = "CenterCenter"             #-- text justification      Ngl.text_ndc(wks, center, 0.5, y, txres)  #-- add text to wks      if(right != ""):      txres.txJust = "CenterRight"              #-- text justification      x = vpx+vpw                               #-- x-position      Ngl.text_ndc(wks, right, x, y, txres)     #-- add text to wks#-------------------------------------------------------#--              MAIN#-------------------------------------------------------#-- data path and file namencarg_root = os.environ.get('NCARG_ROOT')diri  = ncarg_root + '/lib/ncarg/data/cdf/'fname = 'chi200_ud_smooth.nc'#-- open file and read variablesf     =  Nio.open_file(diri + fname,"r")    #-- open data filechi   =  f.variables['CHI'][:,:]            #-- read variable CHI[time,lon]lon   =  f.variables['lon'][:]time  =  f.variables['time'][:]scale =  1.0e6chi   =  chi/scale#-- create the plotwks =  Ngl.open_wks('png','plot_hovmueller')                                            #-- open workstation#-- set resourcesres                       =  Ngl.Resourcesres.nglFrame              =  Falseres.nglMaximize           =  False           #-- maximize plot output#res.tiMainString          = 'Default Hovmu~H-13V2F35~H~FV-2H3~ller' #-- titleres.sfXArray              =  lon            #-- scalar field xres.sfYArray              =  time           #-- scalar field y res.tiYAxisString         = 'elapsed time'res.tmYLLabelFontHeightF  =  0.015res.nglPointTickmarksOutward = True         #-- point tickmarks outplot = Ngl.contour(wks,chi,res)             #-- draw contours #-- delete resources because they will cause warnings (Why?)del([res.sfXArray,res.sfYArray,res.tiYAxisString,res.tmYLLabelFontHeightF])     #-- add the title and left, center and/or right stringtitle     = "Default Hovmu~H-13V2F35~H~FV-2H3~ller"long_name = f.variables["CHI"].attributes['long_name']units     = f.variables["CHI"].attributes['units']add_titles(wks,plot,title,left=long_name,right=units)#-- advance the frameNgl.frame(wks)#-- endNgl.end()`

Result:

Artikelaktionen